【问题标题】:How to use zlib in kernel extension projects for mac os x?如何在 mac os x 的内核扩展项目中使用 zlib?
【发布时间】:2011-08-18 07:46:55
【问题描述】:

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

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

【问题讨论】:

    标签: c macos zlib inflate kernel-extension


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的帮助。但是gunzip适用于Linux,请告诉我如何在Mac OS X或其他解决方案中使用zlib作为内核扩展。再次感谢!
      • @kyle : 哦,我没注意到那是在 OSX 内核中,我只是注意到内核字... :(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 2014-12-30
      相关资源
      最近更新 更多