我想在mac os上开发网络内核扩展。我在函数sf_data_in()中获得了一些gzip格式的数据。我包含名为<libkern/zlib.h>
的头文件,在我使用“kextload”加载kext后运行下面的代码时,我的mac崩溃了。
z_stream strm;
bzero(&strm, sizeof(z_stream));
if (Z_OK != inflateInit2(&strm))
{
printf("inflateInit error.\n");
inflateEnd(&strm);
return 0;
}
谁能告诉我如何在内核编程中使用它。给一些样品要好得多。 非常感谢。
答案 0 :(得分:2)
您将错误数量的参数传递给inflateInit2()
,它需要指向流的指针和以位为单位的窗口大小。如果您不想设置后者,请改用inflateInit()
。
您可能还想使用zlib查看一些内核代码,ppp_deflate.c,ipcomp_core.c
答案 1 :(得分:0)
我在arch/powerpc/boot/gunzip_util.c文件中发现了一些zlib内核库的使用,也许它将是你代码的一个很好的起点。