]> gitweb.factorcode.org Git - factor.git/blob - extra/magic/ffi/ffi.factor
Switch to https urls
[factor.git] / extra / magic / ffi / ffi.factor
1 ! Copyright (C) 2014 John Benediktsson
2 ! See https://factorcode.org/license.txt for BSD license
3
4 USING: alien alien.c-types alien.destructors alien.libraries
5 alien.syntax combinators literals system ;
6
7 IN: magic.ffi
8
9 << "magic" {
10     { [ os macosx? ] [ "libmagic.dylib" ] }
11     { [ os unix? ] [ "libmagic.so" ] }
12 } cond cdecl add-library >>
13
14 LIBRARY: magic
15
16 CONSTANT: MAGIC_NONE 0x000000
17 CONSTANT: MAGIC_DEBUG 0x000001
18 CONSTANT: MAGIC_SYMLINK 0x000002
19 CONSTANT: MAGIC_COMPRESS 0x000004
20 CONSTANT: MAGIC_DEVICES 0x000008
21 CONSTANT: MAGIC_MIME_TYPE 0x000010
22 CONSTANT: MAGIC_CONTINUE 0x000020
23 CONSTANT: MAGIC_CHECK 0x000040
24 CONSTANT: MAGIC_PRESERVE_ATIME 0x000080
25 CONSTANT: MAGIC_RAW 0x000100
26 CONSTANT: MAGIC_ERROR 0x000200
27 CONSTANT: MAGIC_MIME_ENCODING 0x000400
28 CONSTANT: MAGIC_MIME flags{ MAGIC_MIME_TYPE MAGIC_MIME_ENCODING }
29 CONSTANT: MAGIC_NO_CHECK_COMPRESS 0x001000
30 CONSTANT: MAGIC_NO_CHECK_TAR 0x002000
31 CONSTANT: MAGIC_NO_CHECK_SOFT 0x004000
32 CONSTANT: MAGIC_NO_CHECK_APPTYPE 0x008000
33 CONSTANT: MAGIC_NO_CHECK_ELF 0x010000
34 CONSTANT: MAGIC_NO_CHECK_ASCII 0x020000
35 CONSTANT: MAGIC_NO_CHECK_TROFF 0x040000
36 CONSTANT: MAGIC_NO_CHECK_FORTRAN 0x080000
37 CONSTANT: MAGIC_NO_CHECK_TOKENS 0x100000
38
39 TYPEDEF: void* magic_t
40 FUNCTION: magic_t magic_open ( int flags )
41 FUNCTION: void magic_close ( magic_t magic )
42
43 FUNCTION: c-string magic_file ( magic_t magic, c-string path )
44 FUNCTION: c-string magic_descriptor ( magic_t magic, int fd )
45 FUNCTION: c-string magic_buffer ( magic_t magic, void* buffer, size_t size )
46
47 FUNCTION: c-string magic_error ( magic_t magic )
48 FUNCTION: int magic_setflags ( magic_t magic, int flags )
49
50 FUNCTION: int magic_load ( magic_t magic, c-string path )
51 FUNCTION: int magic_compile ( magic_t magic, c-string path )
52 FUNCTION: int magic_check ( magic_t magic, c-string path )
53 FUNCTION: int magic_errno ( magic_t magic )
54
55 DESTRUCTOR: magic_close