我的问题是有关从内核将数据传递到用户空间程序。 我想实现一个系统调用“GET_DATA(大小,字符* BUFF,字符** meta_buf)”。 在这个调用,BUFF是由用户空间程序分配和它的长度在尺寸参数传递。 然而,meta_buf是分配(在用户空间程序的VM页)和内核填补了可变长度的缓冲器。 用户空间程序会释放此区域。
(我不能分配在用户空间中的数据作为用户空间程序不知道meta_buff的尺寸。此外,用户空间程序不能分配固定的内存量,并再次和再次调用系统调用来读取整个的元数据。meta_data具有在一个单一的系统调用返回)
- 如何从内核线程用户空间程序分配内存? (我甚至希望如果你可以点我到任何其他系统调用,它类似的操作 - 在分配内核和用户空间中释放)
- 这是界面权利或是否有更好的办法做到这一点?