我制作了一个小型库,它将检测我何时为用户空间和何时为内核空间构建并定义正确的malloc
/ kmalloc
| free
/kfree
方法。
例子:
#ifdef __KERNEL__
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#else
#include <stdlib.h>
#include <stdio.h>
#endif
void *new(size_t sz){
#ifdef __KERNEL__
return kmalloc(sz, GFP_KERNEL);
#else
return malloc(sz);
#endif
}
这很好用。或者它#include <linux/netlink.h>
曾经__KERNEL__
... _kmalloc
malloc
有什么方法可以可靠地检测我何时为内核态构建以及何时为用户态构建?如何?