1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
--- Copy from Lua Sumneko Lua
--- @meta ffi
--- @version JIT
--- @class ffi.namespace*: table
--- @field [string] function
--- @class ffi.ctype*: userdata
--- @overload fun(init?: any, ...): ffi.cdata*
--- @overload fun(nelem?: integer, init?: any, ...): ffi.cdata*
local ctype
--- @class ffi.cdecl*: string
--- @class ffi.cdata*: userdata
--- @alias ffi.ct* ffi.ctype* | ffi.cdecl* | ffi.cdata*
--- @class ffi.cb*: ffi.cdata*
local cb
--- @class ffi.VLA*: userdata
--- @class ffi.VLS*: userdata
--- @version JIT
--- @class ffilib
--- @field C ffi.namespace*
--- @field os string
--- @field arch string
local ffi =
--- @param def string
--- @param params? any
--- @param name string
--- @param global? boolean
--- @return ffi.namespace* clib
--- @nodiscard
--- @overload fun(ct: ffi.ct*, init: any, ...): ffi.cdata*
--- @param ct ffi.ct*
--- @param nelem? integer
--- @param init? any
--- @return ffi.cdata* cdata
--- @nodiscard
--- @param ct ffi.ct*
--- @param params? any
--- @return ffi.ctype* ctype
--- @nodiscard
--- @param ct ffi.ct*
--- @param init any
--- @return ffi.cdata* cdata
--- @nodiscard
--- @param ct ffi.ct*
--- @param metatable table
--- @return ffi.ctype* ctype
--- @param cdata ffi.cdata*
--- @param finalizer? function
--- @return ffi.cdata* cdata
--- @param ct ffi.ct*
--- @param nelem? integer
--- @return integer|nil size
--- @nodiscard
--- @param ct ffi.ct*
--- @return integer align
--- @nodiscard
--- @param ct ffi.ct*
--- @param field string
--- @return integer ofs
--- @return integer? bpos
--- @return integer? bsize
--- @nodiscard
--- @param ct ffi.ct*
--- @param obj any
--- @return boolean status
--- @nodiscard
--- @param newerr? integer
--- @return integer err
--- @nodiscard
--- @param ptr any
--- @param len? integer
--- @return string str
--- @overload fun(dst: any, str: string)
--- @param dst any
--- @param src any
--- @param len integer
--- @param dst any
--- @param len integer
--- @param c? any
--- @param param string
--- @return boolean status
--- @param func function
return ffi