lj_clib.h (791B)
1 /* 2 ** FFI C library loader. 3 ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h 4 */ 5 6 #ifndef _LJ_CLIB_H 7 #define _LJ_CLIB_H 8 9 #include "lj_obj.h" 10 11 #if LJ_HASFFI 12 13 /* Namespace for C library indexing. */ 14 #define CLNS_INDEX ((1u<<CT_FUNC)|(1u<<CT_EXTERN)|(1u<<CT_CONSTVAL)) 15 16 /* C library namespace. */ 17 typedef struct CLibrary { 18 void *handle; /* Opaque handle for dynamic library loader. */ 19 GCtab *cache; /* Cache for resolved symbols. Anchored in ud->env. */ 20 #ifdef __MSYS__ 21 int system; 22 #endif 23 } CLibrary; 24 25 LJ_FUNC TValue *lj_clib_index(lua_State *L, CLibrary *cl, GCstr *name); 26 LJ_FUNC void lj_clib_load(lua_State *L, GCtab *mt, GCstr *name, int global); 27 LJ_FUNC void lj_clib_unload(CLibrary *cl); 28 LJ_FUNC void lj_clib_default(lua_State *L, GCtab *mt); 29 30 #endif 31 32 #endif