factor/basis/compression/zlib/ffi/ffi.factor

89 lines
2.2 KiB
Factor
Raw Normal View History

! Copyright (C) 2009 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: alien alien.c-types alien.libraries alien.syntax
classes.struct combinators system ;
IN: compression.zlib.ffi
<< "zlib" {
{ [ os windows? ] [ "zlib1.dll" ] }
{ [ os macosx? ] [ "libz.dylib" ] }
{ [ os unix? ] [ "libz.so" ] }
2010-03-31 22:20:35 -04:00
} cond cdecl add-library >>
LIBRARY: zlib
CONSTANT: Z_OK 0
CONSTANT: Z_STREAM_END 1
CONSTANT: Z_NEED_DICT 2
CONSTANT: Z_ERRNO -1
CONSTANT: Z_STREAM_ERROR -2
CONSTANT: Z_DATA_ERROR -3
CONSTANT: Z_MEM_ERROR -4
CONSTANT: Z_BUF_ERROR -5
CONSTANT: Z_VERSION_ERROR -6
TYPEDEF: void Bytef
TYPEDEF: ulong uLongf
TYPEDEF: ulong uLong
FUNCTION: int compress ( Bytef* dest, uLongf* destLen, Bytef* source, uLong sourceLen ) ;
FUNCTION: int compress2 ( Bytef* dest, uLongf* destLen, Bytef* source, uLong sourceLen, int level ) ;
FUNCTION: int uncompress ( Bytef* dest, uLongf* destLen, Bytef* source, uLong sourceLen ) ;
STRUCT: z_stream
{ next_in uchar* }
{ avail_in uint }
{ total_in ulong }
{ next_out uchar* }
{ avail_out uint }
{ total_out ulong }
{ msg char* }
{ state void* }
{ zalloc void* }
{ zfree void* }
{ opaque void* }
{ data_type int }
{ adler ulong }
{ reserved ulong } ;
TYPEDEF: z_stream* z_streamp
STRUCT: gz_header
{ text int }
{ time ulong }
{ xflags int }
{ os int }
{ extra uchar* }
{ extra_len uint }
{ extra_max uint }
{ name uchar* }
{ name_max uint }
{ comment uchar* }
{ comm_max uint }
{ hcrc int }
{ done int } ;
TYPEDEF: gz_header* gz_headerp
CONSTANT: ZLIB_VERSION "1.2.5"
FUNCTION: int inflateInit_ ( z_streamp strm, c-string version, int stream_size ) ;
FUNCTION: int inflateInit2_ ( z_streamp strm, int windowBits, c-string version, int stream_size ) ;
FUNCTION: int inflateReset ( z_streamp strm ) ;
FUNCTION: int inflateEnd ( z_streamp strm ) ;
CONSTANT: Z_NO_FLUSH 0
CONSTANT: Z_PARTIAL_FLUSH 1
CONSTANT: Z_SYNC_FLUSH 2
CONSTANT: Z_FULL_FLUSH 3
CONSTANT: Z_FINISH 4
CONSTANT: Z_BLOCK 5
CONSTANT: Z_TREES 6
FUNCTION: int inflate ( z_streamp strm, int flush ) ;
FUNCTION: int inflateGetHeader ( z_streamp strm, gz_headerp head ) ;