Passing socket struct between kernel threads - module programming
I write kernel module with kernel threads using
linux/kthread.h on 2.6.* kernel
I tried to passing data between two kernel threads
with data argument of kthread_run( fun, data , NAME );
but this is not work I dont know why. I tried many possibility
and nothing works.
So I thought that maybe something like this will work
but not.
Iam sure that fun1 thread was executed before fun2, I used semaphores ( actually completion mechanism ).
Hi Everyone!
How can we make a socket() system call from a linux module executing in kernel space?
If any one knows, kindly tell me. It will be great.
I want to use the socket interface in linux kernel space for sending raw packets over the network.
Hamayun (0 Replies)
Hi All,
Is there a max number of slabs that can be used per kernel module? I'm having a tough time finding out that kind of information, but the array 'node_zonelists' (mmzone.h) has a size of 5. I just want to avoid buffer overruns and other bad stuff.
Cheers,
Brendan (4 Replies)
Hi all,
I am working on USB data monitoring on Fedora Core 9. Kernel 2.6.25 has a built-in module (the one that isn't loadable, but compiles and links statically with the kernel during compilation) to snoop USB data. It is in <kernel_source_code>/drivers/usb/mon/.
I need to know if I can... (0 Replies)
hi masters,
I am new to kernel programming and learning its trade. I am writing a module for lan bandwidth manager. I designed one module successfully for 2.4 kernel . But when I tried to upgrade it for 2.6 kernel I found that struct tq_struct is missing . Is there any suitable replacement for... (0 Replies)
EDIT: Nevermind, called a friend who is good at this stuff and he figured it out :D
Hi all,
So I'm trying to teach myself to write programs for unix in c. I am currently creating a program, and I need to pass a struct through a pipe, but I can't figure out how.
The struct I want to pass... (0 Replies)
Hi, i'm trying to copy a struct into a binary file using the unix instruction write, so i declare and fill the struct "superbloque" in one function "initSB" and then i pass the pointer to another function called bwrite (for block write) which calls write. The problem is that i call the function... (2 Replies)
Hi,
1)i wrote a program which acts lik a client gateway serving clients request and sending probe msg`s to server to chech if its active..
2)both moduels interact when run independently my problem is that when i tr to run them as two different threads in a single program(client_gateway prog to... (4 Replies)
hi there
so, i was given an assignment: implement a linux system call that blocks all packets that are sent to a given IP (i have to do it without using iptables)
i'm really new to kernel programming btw (and i'm enjoying it a lot)
so, my syscall is called ip_block() and receives a... (1 Reply)
Hi all!
I am trying to register a device in an existing device class, but I am
having trouble getting the pointer to an existing class.
I can create a class in a module, get the pointer to it and then use
it to register the device with:
*cl = class_create(THIS_MODULE, className);... (0 Replies)
Hi everyone,
I am trying to prevent the ehci_hcd kernel module to load at boot time.
Here's what I've tried so far:
1) Add the following line to /etc/modprobe.d/blacklist.conf (as suggested here):
2) Blacklisted the module by adding the following string to
3) Tried to blacklist the module... (0 Replies)
Discussion started by: gacanepa
0 Replies
LEARN ABOUT OSF1
kernel_isrthread
kernel_isrthread(9r)kernel_isrthread(9r)NAME
kernel_isrthread - General: Starts a fixed priority kernel thread dedicated to interrupt service
SYNOPSIS
thread_t kernel_isrthread(
task_t task,
void (*start) (void),
int pri );
ARGUMENTS
Specifies a pointer to a task structure. This pointer identifies the task in which the kernel_isrthread routine starts the newly created
kernel thread dedicated to interrupt service handling. Specifies a pointer to an routine that is the entry point for the newly created
kernel thread. Specifies the scheduling priority level for the newly created kernel thread. See the DESCRIPTION section for the priority
usage table that describes the possible scheduling priorities.
DESCRIPTION
The kernel_isrthread routine creates and starts a kernel thread at the specified entry point. This kernel thread handles only interrupt
service requests in the specified task and at the specified priority level. A kernel module should always attach a kernel thread to the
``first task.''
The following priority usage table describes the possible scheduling priorities. The first column shows a range of priorities. The second
column shows an associated scheduling priority constant defined in <src/kernel/kern/sched.h> (if applicable). The third column describes
the usage of the priority ranges. To specify a scheduling priority of 38, you pass the constant BASEPRI_SYSTEM. To specify a scheduling
priority of 33, you can pass the following: BASEPRI_HIGHEST + 1.
--------------------------------------------------------------
Priority Constant Usage
--------------------------------------------------------------
0--31 N/A Realtime kernel threads
32--38 BASEPRI_HIGHEST -- Operating system kernel
BASEPRI_SYSTEM threads
44--64 BASEPRI_USER -- User kernel threads
BASEPRI_LOWEST
--------------------------------------------------------------
RETURN VALUES
Upon successful completion, kernel_isrthread returns a pointer to the thread structure associated with the kernel thread started at the
specified entry point. Kernel modules can use this pointer as a handle to a specific kernel thread in calls to other kernel threads-related
routines.
SEE ALSO
Routines: kernel_thread_w_arg(9r)
Data Structures: task(9s), thread(9s)kernel_isrthread(9r)