summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules3
m---------meta/3rd/ffi-reflect0
-rw-r--r--meta/3rd/ffi-reflect/config.json3
-rw-r--r--meta/3rd/ffi-reflect/library/reflect.lua128
4 files changed, 3 insertions, 131 deletions
diff --git a/.gitmodules b/.gitmodules
index 61867904..37990df7 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -55,3 +55,6 @@
[submodule "meta/3rd/skynet"]
path = meta/3rd/skynet
url = https://github.com/LuaCATS/skynet.git
+[submodule "meta/3rd/ffi-reflect"]
+ path = meta/3rd/ffi-reflect
+ url = git@github.com:LuaCATS/ffi-reflect.git
diff --git a/meta/3rd/ffi-reflect b/meta/3rd/ffi-reflect
new file mode 160000
+Subproject e9037efca4021a15552b281f5e91418afd370d8
diff --git a/meta/3rd/ffi-reflect/config.json b/meta/3rd/ffi-reflect/config.json
deleted file mode 100644
index 544b7b4d..00000000
--- a/meta/3rd/ffi-reflect/config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-
-} \ No newline at end of file
diff --git a/meta/3rd/ffi-reflect/library/reflect.lua b/meta/3rd/ffi-reflect/library/reflect.lua
deleted file mode 100644
index 8a9b759c..00000000
--- a/meta/3rd/ffi-reflect/library/reflect.lua
+++ /dev/null
@@ -1,128 +0,0 @@
----@meta
-
----@alias ffi.typeinfo.what "int"
----|"void"
----|"float"
----|"enum"
----|"constant"
----|"ptr"
----|"ref"
----|"array"
----|"struct"
----|"union"
----|"func"
----|"field"
----|"bitfield"
----|"typedef"
-
----@class ffi.typeinfo
----@field what ffi.typeinfo.what
-
----@class ffi.enuminfo : ffi.typeinfo
----@field name string?
----@field size number|string
----@field alignment number
----@field type ffi.typeinfo
-local enuminfo = {}
-
----@return ffi.constantinfo[]
-function enuminfo:values()
-end
-
----@return ffi.constantinfo
-function enuminfo:value(name_or_index)
-end
-
----@class ffi.funcinfo : ffi.typeinfo
----@field name string?
----@field sym_name string?
----@field return_type ffi.funcinfo
----@field nargs integer
----@field vararg boolean
----@field sse_reg_params boolean
----@field convention "cdecl"|"thiscall"|"fastcall"|"stdcall"
-local funcinfo = {}
-
----@return ffi.fieldinfo[]
-function funcinfo:arguments()
-end
-
----@return ffi.fieldinfo
-function funcinfo:argument(name_or_index)
-end
-
----@class ffi.unioninfo : ffi.typeinfo
----@field name string?
----@field size integer
----@field alignment number
----@field const boolean
----@field volatile boolean
----@field transparent boolean
-local unioninfo = {}
-
----@return ffi.typeinfo[]
-function unioninfo:members()
-end
-
----@return ffi.typeinfo
-function unioninfo:member(name_or_index)
-end
-
----@class ffi.structinfo : ffi.unioninfo
----@field vla boolean
-
----@class ffi.floatinfo : ffi.typeinfo
----@field size integer
----@field alignment number
----@field const boolean
----@field volatile boolean
-
----@alias ffi.voidinfo ffi.floatinfo
-
----@class ffi.intinfo : ffi.floatinfo
----@field bool boolean
----@field unsigned boolean
----@field long boolean
-
----@class ffi.constantinfo : ffi.typeinfo
----@field name string?
----@field type ffi.typeinfo
----@field value integer
-
----@class ffi.ptrinfo : ffi.typeinfo
----@field size integer
----@field alignment number
----@field const boolean
----@field volatile boolean
----@field element_type ffi.typeinfo
-
----@alias ffi.refinfo ffi.ptrinfo
-
----@class ffi.arrayinfo : ffi.ptrinfo
----@field vla boolean
----@field vector boolean
----@field complex boolean
-
----@class ffi.fieldinfo : ffi.typeinfo
----@field name string?
----@field offset number
----@field type ffi.typeinfo
-
----@class ffi.bitfield : ffi.fieldinfo
----@field size integer|string
-
-local reflect = {}
-
----reflection cdata c defined
----@param v ffi.cdata*
----@return ffi.typeinfo
-function reflect.typeof(v)
-end
-
----try get cdata metatable
----@param v ffi.cdata*
----@return table
-function reflect.getmetatable(v)
-end
-
-return reflect \ No newline at end of file