52 lines
3.3 KiB
Lua
52 lines
3.3 KiB
Lua
-- authors: Luxinia Dev (Eike Decker & Christoph Kubisch)
|
|
---------------------------------------------------------
|
|
|
|
-- function helpers
|
|
|
|
local function fn (description)
|
|
local description2,returns,args = description:match("(.+)%-%s*(%b())%s*(%b())")
|
|
if not description2 then
|
|
return {type="function",description=description,
|
|
returns="(?)"}
|
|
end
|
|
returns = returns:gsub("^%s+",""):gsub("%s+$","")
|
|
local ret = returns:sub(2,-2)
|
|
local vt = ret:match("^%[?string") and "string"
|
|
vt = vt or ret:match("^%[?table") and "table"
|
|
vt = vt or ret:match("^%[?file") and "io"
|
|
return {type="function",description=description2,
|
|
returns=returns, args = args, valuetype = vt}
|
|
end
|
|
|
|
local function val (description)
|
|
return {type="value",description = description}
|
|
end
|
|
|
|
---------------------------
|
|
|
|
local api = {
|
|
ffi = {
|
|
description = "FFI",
|
|
type = "lib",
|
|
childs = {
|
|
cdef = fn "Adds multiple C declarations for types or external symbols - ()(string)",
|
|
load = fn "This loads the dynamic library given by name and returns a new C library namespace which binds to its symbols. On POSIX systems, if global is true, the library symbols are loaded into the global namespace, too. - (userdata)(string,[global])",
|
|
new = fn "The following API functions create cdata objects (type() returns 'cdata'). All created cdata objects are garbage collected. - (cdata)(string/ctype,nelement,init...)",
|
|
typeof = fn "Creates a ctype object for the given ct. - (ctype)(ct)",
|
|
cast = fn "Creates a scalar cdata object for the given ct. The cdata object is initialized with init according to C casting rules. - (cdata)(ctype,cdata init)",
|
|
metatype = fn "Creates a ctype object for the given ct and associates it with a metatable. Only struct/union types, complex numbers and vectors are allowed. Other types may be wrapped in a struct, if needed. - (cdata)(ct,table meta)",
|
|
gc = fn "Associates a finalizer with a pointer or aggregate cdata object. The cdata object is returned unchanged. - (cdata)(ct,function finalizer)",
|
|
sizeof = fn "Returns the size of ct in bytes. Returns nil if the size is not known. - (number)(ct,[nelem])",
|
|
alignof = fn "Returns the minimum required alignment for ct in bytes. - (number)(ct)",
|
|
offsetof = fn "Returns the offset (in bytes) of field relative to the start of ct, which must be a struct. Additionally returns the position and the field size (in bits) for bit fields. - (number)(ct, field)",
|
|
istype = fn "Returns true if obj has the C type given by ct. Returns false otherwise. - (boolean)(ct,obj)",
|
|
string = fn "Creates an interned Lua string from the data pointed to by ptr. If the optional argument len is missing, ptr is converted to a 'char *' and the data is assumed to be zero-terminated. The length of the string is computed with strlen(). - (string)(ptr, [number len])",
|
|
copy = fn "Copies the data pointed to by src to dst. dst is converted to a 'void *' and src is converted to a 'const void *'. - ()(dst,[src,len] / [string])",
|
|
fill = fn "Fills the data pointed to by dst with len constant bytes, given by c. If c is omitted, the data is zero-filled. - ()(dst, len, [c])",
|
|
abi = fn "Returns true if param (a Lua string) applies for the target ABI (Application Binary Interface). Returns false otherwise. 32bit 64bit lq be fpu softfp hardfp eabi win. - (boolean)(string)",
|
|
os = val "string value of OS",
|
|
}
|
|
},
|
|
}
|
|
|
|
return api |