如何在用户空间和没有文件支持的内核之间共享内存?如果使用MAP_ANON完成mmap,如何与内核空间共享?
我有一个数据结构
struct data {
int x;
char* y;
};
此数据结构由用户进程和内核更新。如果我使用mmap,我没有备份的文件。我该怎么做。此外,我不能使用copy_from_user,因为内核和用户进程定期更新结构。请告知
答案 0 :(得分:0)
我可以在类似的路线上建议你,但我不确定这是否是你需要的:我在PowerPC上开发了这个。
限制内核可以看到的内存(比之前少2MB),即如果原始内存为1GB,则新内存为1022MB,在bootargs的帮助下为mem = 1022M
现在在内核中通过ioremap(起始地址= 0x3FE00000,大小= 2MB)以1022MB创建此结构。
struct data * data_kernel = ioremap(...)
使用/更新用户空间中的mmap(起始地址= 0x3FE0 0000,大小2MB)
struct data * data_user = mmap(...)
答案 1 :(得分:0)