ljx

FORK: LuaJIT with native 5.2 and 5.3 support
git clone https://git.neptards.moe/neptards/ljx.git
Log | Files | Refs | README

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