如何在mac os x的内核扩展项目中使用zlib?

时间:2011-08-18 07:46:55

标签: c macos zlib inflate kernel-extension

我想在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;
}

谁能告诉我如何在内核编程中使用它。给一些样品要好得多。 非常感谢。

2 个答案:

答案 0 :(得分:2)

您将错误数量的参数传递给inflateInit2(),它需要指向流的指针和以位为单位的窗口大小。如果您不想设置后者,请改用inflateInit()

您可能还想使用zlib查看一些内核代码,ppp_deflate.cipcomp_core.c

答案 1 :(得分:0)

我在arch/powerpc/boot/gunzip_util.c文件中发现了一些zlib内核库的使用,也许它将是你代码的一个很好的起点。