]> gitweb.factorcode.org Git - factor.git/blob - extra/gdbm/ffi/ffi.factor
factor: Make source files/resources 644 instead of 755.
[factor.git] / extra / gdbm / ffi / ffi.factor
1 ! Copyright (C) 2010 Dmitry Shubin.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien alien.c-types alien.libraries alien.libraries.finder
4 alien.syntax classes.struct combinators kernel system ;
5 IN: gdbm.ffi
6
7 << "libgdbm"
8 { "gdbm" "gdbm3" "libgdbm-3" } find-library-from-list
9 cdecl add-library >>
10
11 LIBRARY: libgdbm
12
13 C-GLOBAL: c-string gdbm_version
14
15 CONSTANT: GDBM_SYNC   0x20
16 CONSTANT: GDBM_NOLOCK 0x40
17
18 CONSTANT: GDBM_INSERT  0
19 CONSTANT: GDBM_REPLACE 1
20
21 CONSTANT: GDBM_CACHESIZE    1
22 CONSTANT: GDBM_SYNCMODE     3
23 CONSTANT: GDBM_CENTFREE     4
24 CONSTANT: GDBM_COALESCEBLKS 5
25
26 STRUCT: datum { dptr char* } { dsize int } ;
27
28 C-TYPE: _GDBM_FILE
29 TYPEDEF: _GDBM_FILE* GDBM_FILE
30
31 CALLBACK: void fatal_func_cb ( )
32 FUNCTION: GDBM_FILE gdbm_open ( c-string name, int block_size, int read_write, int mode, fatal_func_cb fatal_func )
33 FUNCTION-ALIAS: gdbm-close void gdbm_close ( GDBM_FILE dbf )
34 FUNCTION: int gdbm_store ( GDBM_FILE dbf, datum key, datum content, int flag )
35 FUNCTION: datum gdbm_fetch ( GDBM_FILE dbf, datum key )
36 FUNCTION: int gdbm_delete ( GDBM_FILE dbf, datum key )
37 FUNCTION: datum gdbm_firstkey ( GDBM_FILE dbf )
38 FUNCTION: datum gdbm_nextkey ( GDBM_FILE dbf, datum key )
39 FUNCTION: int gdbm_reorganize ( GDBM_FILE dbf )
40 FUNCTION: void gdbm_sync ( GDBM_FILE dbf )
41 FUNCTION: int gdbm_exists ( GDBM_FILE dbf, datum key )
42 FUNCTION: int gdbm_setopt ( GDBM_FILE dbf, int option, int* value, int size )
43 FUNCTION: int gdbm_fdesc ( GDBM_FILE dbf )
44
45 ! Removed in gdbm 1.14
46 C-GLOBAL: int gdbm_errno
47 ! Added in gdbm 1.14
48 FUNCTION: int *gdbm_errno_location ( )
49
50 FUNCTION: c-string gdbm_strerror ( int errno )