Results 1 to 2 of 2
Hi,
Sorry, my question was not clear. Is it possbile to call msgsnd() from kernel space to user space?
Thank you.
Kind Regards....
Enjoy an ad free experience by logging in. Not a member yet? Register.
- 09-06-2005 #1Just Joined!
- Join Date
- Sep 2005
- Posts
- 2
send message from kernel to user application
Hi,
Sorry, my question was not clear. Is it possbile to call msgsnd() from kernel space to user space?
Thank you.
Kind Regards.
- 09-06-2005 #2Just Joined!
- Join Date
- Sep 2005
- Posts
- 3
copy_from_user/copy_to_user may meet your need.
But I myself am confusing about these functions. I hope someone give me some explanation.
Here is prototype of the function:
unsigned long copy_to_user (void __user * to, const void * from, unsigned long n);
I see that function appears in kernel driver's file operations like the following:
In this case the to pointer transfered into the function copy_to_user is buffer. At this point I know that when callingCode:char data; /*kernel driver global variabe*/ ssize_t device_read (struct file *filp, char *buffer, size_t length, loff_t *ppos) { copy_to_user(buffer,&data, 1); return 1; }from userspace, user_space_buffer will be buffer in the file operation read of kernel driver. I don't know how this user_space_buffer in userspace is transfered to the file operation read in kernel driver. Just think it's some kernel implementation. But my wonder is, if I want to get a pointer of userspace address from within kernel module in general case (not in file operations of a driver), how can I do it?Code:read(some_file_hande, user_space_buffer)



