2

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

谁能告诉我如何在内核编程中使用它。最好提供一些样品。非常感谢。

4

2 回答 2

2

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

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

于 2011-08-18T10:58:33.763 回答
0

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

于 2011-08-18T08:13:22.820 回答