Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F109572276
D39709.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
21 KB
Referenced Files
None
Subscribers
None
D39709.diff
View Options
diff --git a/sys/tools/makesyscalls.lua b/sys/tools/makesyscalls.lua
--- a/sys/tools/makesyscalls.lua
+++ b/sys/tools/makesyscalls.lua
@@ -352,66 +352,66 @@
nval = nval << 1
for _, v in pairs(compat_options) do
- if v["stdcompat"] ~= nil then
- local stdcompat = v["stdcompat"]
- v["definition"] = "COMPAT_" .. stdcompat:upper()
- v["compatlevel"] = tonumber(stdcompat:match("([0-9]+)$"))
- v["flag"] = stdcompat:gsub("FREEBSD", "COMPAT")
- v["prefix"] = stdcompat:lower() .. "_"
- v["descr"] = stdcompat:lower()
+ if v.stdcompat ~= nil then
+ local stdcompat = v.stdcompat
+ v.definition = "COMPAT_" .. stdcompat:upper()
+ v.compatlevel = tonumber(stdcompat:match("([0-9]+)$"))
+ v.flag = stdcompat:gsub("FREEBSD", "COMPAT")
+ v.prefix = stdcompat:lower() .. "_"
+ v.descr = stdcompat:lower()
end
- local tmpname = "sys" .. v["flag"]:lower()
+ local tmpname = "sys" .. v.flag:lower()
local dcltmpname = tmpname .. "dcl"
files[tmpname] = io.tmpfile()
files[dcltmpname] = io.tmpfile()
- v["tmp"] = tmpname
- v["dcltmp"] = dcltmpname
+ v.tmp = tmpname
+ v.dcltmp = dcltmpname
- known_flags[v["flag"]] = nval
- v["mask"] = nval
+ known_flags[v.flag] = nval
+ v.mask = nval
nval = nval << 1
- v["count"] = 0
+ v.count = 0
end
end
local function process_abi_flags()
- local flags, mask = config["abi_flags"], 0
+ local flags, mask = config.abi_flags, 0
for txtflag in flags:gmatch("([^|]+)") do
if known_abi_flags[txtflag] == nil then
abort(1, "Unknown abi_flag: " .. txtflag)
end
- mask = mask | known_abi_flags[txtflag]["value"]
+ mask = mask | known_abi_flags[txtflag].value
end
- config["abi_flags_mask"] = mask
+ config.abi_flags_mask = mask
end
local function process_obsol()
- local obsol = config["obsol"]
+ local obsol = config.obsol
for syscall in obsol:gmatch("([^ ]+)") do
- config["obsol_dict"][syscall] = true
+ config.obsol_dict[syscall] = true
end
end
local function process_unimpl()
- local unimpl = config["unimpl"]
+ local unimpl = config.unimpl
for syscall in unimpl:gmatch("([^ ]+)") do
- config["unimpl_dict"][syscall] = true
+ config.unimpl_dict[syscall] = true
end
end
local function process_syscall_abi_change()
- local changes_abi = config["syscall_abi_change"]
+ local changes_abi = config.syscall_abi_change
for syscall in changes_abi:gmatch("([^ ]+)") do
- config["sys_abi_change"][syscall] = true
+ config.sys_abi_change[syscall] = true
end
- local no_changes = config["syscall_no_abi_change"]
+ local no_changes = config.syscall_no_abi_change
for syscall in no_changes:gmatch("([^ ]+)") do
- config["sys_no_abi_change"][syscall] = true
+ config.sys_no_abi_change[syscall] = true
end
end
@@ -420,11 +420,11 @@
abort(1, "abi_changes: unknown flag: " .. name)
end
- return config["abi_flags_mask"] & known_abi_flags[name]["value"] ~= 0
+ return config.abi_flags_mask & known_abi_flags[name].value ~= 0
end
local function strip_abi_prefix(funcname)
- local abiprefix = config["abi_func_prefix"]
+ local abiprefix = config.abi_func_prefix
local stripped_name
if funcname == nil then
return nil
@@ -469,7 +469,7 @@
-- to work both before and after the substitution
local function isptrtype(type)
return type:find("*") or type:find("caddr_t") or
- type:find("intptr_t") or type:find(config['abi_intptr_t'])
+ type:find("intptr_t") or type:find(config.abi_intptr_t)
end
local function isptrarraytype(type)
@@ -486,7 +486,7 @@
-- These patterns are processed in order on any line that isn't empty.
local pattern_table = {
{
- pattern = "%s*$" .. config['os_id_keyword'],
+ pattern = "%s*$" .. config.os_id_keyword,
process = function(_, _)
-- Ignore... ID tag
end,
@@ -521,8 +521,8 @@
dump_prevline = true,
pattern = "%%ABI_HEADERS%%",
process = function()
- if config['abi_headers'] ~= "" then
- line = config['abi_headers'] .. "\n"
+ if config.abi_headers ~= "" then
+ line = config.abi_headers .. "\n"
write_line('sysinc', line)
end
end,
@@ -572,9 +572,9 @@
local function do_match(nextline, prevline)
local pattern, handler, dump
for _, v in pairs(pattern_table) do
- pattern = v['pattern']
- handler = v['process']
- dump = v['dump_prevline']
+ pattern = v.pattern
+ handler = v.process
+ dump = v.dump_prevline
if nextline:match(pattern) then
if dump and prevline then
process_syscall_def(prevline)
@@ -648,7 +648,7 @@
local function check_abi_changes(arg)
for k, v in pairs(known_abi_flags) do
- local exprs = v["exprs"]
+ local exprs = v.exprs
if abi_changes(k) and exprs ~= nil then
for _, e in pairs(exprs) do
if arg:find(e) then
@@ -684,26 +684,26 @@
-- is removed
changes_abi = changes_abi or (abi_changes("pair_64bit") and is64bittype(argtype))
- argtype = argtype:gsub("intptr_t", config["abi_intptr_t"])
- argtype = argtype:gsub("semid_t", config["abi_semid_t"])
+ argtype = argtype:gsub("intptr_t", config.abi_intptr_t)
+ argtype = argtype:gsub("semid_t", config.abi_semid_t)
if isptrtype(argtype) then
- argtype = argtype:gsub("size_t", config["abi_size_t"])
- argtype = argtype:gsub("^long", config["abi_long"]);
- argtype = argtype:gsub("^u_long", config["abi_u_long"]);
- argtype = argtype:gsub("^const u_long", "const " .. config["abi_u_long"]);
+ argtype = argtype:gsub("size_t", config.abi_size_t)
+ argtype = argtype:gsub("^long", config.abi_long);
+ argtype = argtype:gsub("^u_long", config.abi_u_long);
+ argtype = argtype:gsub("^const u_long", "const " .. config.abi_u_long);
elseif argtype:find("^long$") then
- argtype = config["abi_long"]
+ argtype = config.abi_long
end
- if isptrarraytype(argtype) and config["abi_ptr_array_t"] ~= "" then
+ if isptrarraytype(argtype) and config.abi_ptr_array_t ~= "" then
-- `* const *` -> `**`
argtype = argtype:gsub("[*][ ]*const[ ]*[*]", "**")
-- e.g., `struct aiocb **` -> `uint32_t *`
- argtype = argtype:gsub("[^*]*[*]", config["abi_ptr_array_t"] .. " ", 1)
+ argtype = argtype:gsub("[^*]*[*]", config.abi_ptr_array_t .. " ", 1)
end
-- XX TODO: Forward declarations? See: sysstubfwd in CheriBSD
if arg_abi_change then
- local abi_type_suffix = config["abi_type_suffix"]
+ local abi_type_suffix = config.abi_type_suffix
argtype = argtype:gsub("(struct [^ ]*)", "%1" ..
abi_type_suffix)
argtype = argtype:gsub("(union [^ ]*)", "%1" ..
@@ -741,9 +741,9 @@
auditev, syscallret, funcname, funcalias, funcargs, argalias)
local argssize
- if flags & known_flags["SYSMUX"] ~= 0 then
+ if flags & known_flags.SYSMUX ~= 0 then
argssize = "0"
- elseif #funcargs > 0 or flags & known_flags["NODEF"] ~= 0 then
+ elseif #funcargs > 0 or flags & known_flags.NODEF ~= 0 then
argssize = "AS(" .. argalias .. ")"
else
argssize = "0"
@@ -762,7 +762,7 @@
case %d:
]], funcname, sysnum))
- if #funcargs > 0 and flags & known_flags["SYSMUX"] == 0 then
+ if #funcargs > 0 and flags & known_flags.SYSMUX == 0 then
write_line("systracetmp", "\t\tswitch (ndx) {\n")
write_line("systrace", string.format(
"\t\tstruct %s *p = params;\n", argalias))
@@ -771,8 +771,8 @@
local argtype, argname, desc, padding
padding = ""
for idx, arg in ipairs(funcargs) do
- argtype = arg["type"]
- argname = arg["name"]
+ argtype = arg.type
+ argname = arg.name
argtype = trim(argtype:gsub("__restrict$", ""), nil)
if argtype == "int" and argname == "_pad" and abi_changes("pair_64bit") then
@@ -795,7 +795,7 @@
if isptrtype(argtype) then
write_line("systrace", string.format(
"\t\tuarg[a++] = (%s)p->%s; /* %s */\n",
- config["ptr_intptr_t_cast"],
+ config.ptr_intptr_t_cast,
argname, argtype))
elseif argtype == "union l_semun" then
write_line("systrace", string.format(
@@ -831,7 +831,7 @@
]], syscallret))
end
local n_args = #funcargs
- if flags & known_flags["SYSMUX"] ~= 0 then
+ if flags & known_flags.SYSMUX ~= 0 then
n_args = 0
end
write_line("systrace", string.format(
@@ -844,7 +844,7 @@
write_line("sysarg", string.format("struct %s {\n",
argalias))
for _, v in ipairs(funcargs) do
- local argname, argtype = v["name"], v["type"]
+ local argname, argtype = v.name, v.type
if argtype == "int" and argname == "_pad" and abi_changes("pair_64bit") then
write_line("sysarg", "#ifdef PAD64_REQUIRED\n")
end
@@ -879,20 +879,20 @@
end
write_line("sysdcl", ";\n")
write_line("sysaue", string.format("#define\t%sAUE_%s\t%s\n",
- config['syscallprefix'], funcalias, auditev))
+ config.syscallprefix, funcalias, auditev))
end
write_line("sysent",
string.format("\t{ .sy_narg = %s, .sy_call = (sy_call_t *)", argssize))
local column = 8 + 2 + #argssize + 15
- if flags & known_flags["SYSMUX"] ~= 0 then
+ if flags & known_flags.SYSMUX ~= 0 then
write_line("sysent", string.format(
"nosys, .sy_auevent = AUE_NULL, " ..
".sy_flags = %s, .sy_thrcnt = SY_THR_STATIC },",
sysflags))
column = column + #"nosys" + #"AUE_NULL" + 3
- elseif flags & known_flags["NOSTD"] ~= 0 then
+ elseif flags & known_flags.NOSTD ~= 0 then
write_line("sysent", string.format(
"lkmressys, .sy_auevent = AUE_NULL, " ..
".sy_flags = %s, .sy_thrcnt = SY_THR_ABSENT },",
@@ -920,9 +920,9 @@
write_line("sysnames", string.format("\t\"%s\",\t\t\t/* %d = %s */\n",
funcalias, sysnum, funcalias))
- if flags & known_flags["NODEF"] == 0 then
+ if flags & known_flags.NODEF == 0 then
write_line("syshdr", string.format("#define\t%s%s\t%d\n",
- config['syscallprefix'], funcalias, sysnum))
+ config.syscallprefix, funcalias, sysnum))
write_line("sysmk", string.format(" \\\n\t%s.o",
funcalias))
end
@@ -947,36 +947,36 @@
auditev, funcname, funcalias, funcargs, argalias)
local argssize, out, outdcl, wrap, prefix, descr
- if #funcargs > 0 or flags & known_flags["NODEF"] ~= 0 then
+ if #funcargs > 0 or flags & known_flags.NODEF ~= 0 then
argssize = "AS(" .. argalias .. ")"
else
argssize = "0"
end
for _, v in pairs(compat_options) do
- if flags & v["mask"] ~= 0 then
- if config["mincompat"] > v["compatlevel"] then
+ if flags & v.mask ~= 0 then
+ if config.mincompat > v.compatlevel then
funcname = strip_abi_prefix(funcname)
- funcname = v["prefix"] .. funcname
+ funcname = v.prefix .. funcname
return handle_obsol(sysnum, funcname, funcname)
end
- v["count"] = v["count"] + 1
- out = v["tmp"]
- outdcl = v["dcltmp"]
- wrap = v["flag"]:lower()
- prefix = v["prefix"]
- descr = v["descr"]
+ v.count = v.count + 1
+ out = v.tmp
+ outdcl = v.dcltmp
+ wrap = v.flag:lower()
+ prefix = v.prefix
+ descr = v.descr
goto compatdone
end
end
::compatdone::
local dprotoflags = get_mask({"NOPROTO", "NODEF"})
- local nargflags = dprotoflags | known_flags["NOARGS"]
+ local nargflags = dprotoflags | known_flags.NOARGS
if #funcargs > 0 and flags & nargflags == 0 then
write_line(out, string.format("struct %s {\n", argalias))
for _, v in ipairs(funcargs) do
- local argname, argtype = v["name"], v["type"]
+ local argname, argtype = v.name, v.type
write_line(out, string.format(
"\tchar %s_l_[PADL_(%s)]; %s %s; char %s_r_[PADR_(%s)];\n",
argname, argtype,
@@ -993,11 +993,11 @@
"%s\t%s%s(struct thread *, struct %s *);\n",
rettype, prefix, funcname, argalias))
write_line("sysaue", string.format(
- "#define\t%sAUE_%s%s\t%s\n", config['syscallprefix'],
+ "#define\t%sAUE_%s%s\t%s\n", config.syscallprefix,
prefix, funcname, auditev))
end
- if flags & known_flags['NOSTD'] ~= 0 then
+ if flags & known_flags.NOSTD ~= 0 then
write_line("sysent", string.format(
"\t{ .sy_narg = %s, .sy_call = (sy_call_t *)%s, " ..
".sy_auevent = %s, .sy_flags = 0, " ..
@@ -1024,9 +1024,9 @@
write_line("syshdr", string.format(
"\t\t\t\t/* %d is %s %s */\n",
sysnum, descr, funcalias))
- elseif flags & known_flags["NODEF"] == 0 then
+ elseif flags & known_flags.NODEF == 0 then
write_line("syshdr", string.format("#define\t%s%s%s\t%d\n",
- config['syscallprefix'], prefix, funcalias, sysnum))
+ config.syscallprefix, prefix, funcalias, sysnum))
write_line("sysmk", string.format(" \\\n\t%s%s.o",
prefix, funcalias))
end
@@ -1104,7 +1104,7 @@
abort(1, "Range only allowed with RESERVED and UNIMPL: " .. line)
end
- if (flags & known_flags["NOTSTATIC"]) ~= 0 then
+ if (flags & known_flags.NOTSTATIC) ~= 0 then
thr_flag = "SY_THR_ABSENT"
end
@@ -1195,37 +1195,37 @@
funcname = trim(funcname)
- if config["obsol_dict"][funcname] then
+ if config.obsol_dict[funcname] then
local compat_prefix = ""
for _, v in pairs(compat_options) do
- if flags & v["mask"] ~= 0 then
- compat_prefix = v["prefix"]
+ if flags & v.mask ~= 0 then
+ compat_prefix = v.prefix
goto obsol_compat_done
end
end
::obsol_compat_done::
args = nil
- flags = known_flags['OBSOL']
+ flags = known_flags.OBSOL
funcomment = compat_prefix .. funcname
end
- if config["unimpl_dict"][funcname] then
- flags = known_flags['UNIMPL']
+ if config.unimpl_dict[funcname] then
+ flags = known_flags.UNIMPL
funcomment = funcname
end
sysflags = "0"
-- NODEF events do not get audited
- if flags & known_flags['NODEF'] ~= 0 then
+ if flags & known_flags.NODEF ~= 0 then
auditev = 'AUE_NULL'
end
-- If applicable; strip the ABI prefix from the name
local stripped_name = strip_abi_prefix(funcname)
- if flags & known_flags['CAPENABLED'] ~= 0 or
- config["capenabled"][funcname] ~= nil or
- config["capenabled"][stripped_name] ~= nil then
+ if flags & known_flags.CAPENABLED ~= 0 or
+ config.capenabled[funcname] ~= nil or
+ config.capenabled[stripped_name] ~= nil then
sysflags = "SYF_CAPENABLED"
end
@@ -1234,17 +1234,17 @@
if args ~= nil then
funcargs, changes_abi = process_args(args)
end
- if config["sys_no_abi_change"][funcname] then
+ if config.sys_no_abi_change[funcname] then
changes_abi = false
end
- local noproto = config["abi_flags"] ~= "" and not changes_abi
+ local noproto = config.abi_flags ~= "" and not changes_abi
local argprefix = ''
local funcprefix = ''
if abi_changes("pointer_args") then
for _, v in ipairs(funcargs) do
- if isptrtype(v["type"]) then
- if config["sys_no_abi_change"][funcname] then
+ if isptrtype(v.type) then
+ if config.sys_no_abi_change[funcname] then
print("WARNING: " .. funcname ..
" in syscall_no_abi_change, but pointers args are present")
end
@@ -1254,14 +1254,14 @@
end
::ptrfound::
end
- if config["sys_abi_change"][funcname] then
+ if config.sys_abi_change[funcname] then
changes_abi = true
end
if changes_abi then
-- argalias should be:
-- COMPAT_PREFIX + ABI Prefix + funcname
- argprefix = config['abi_func_prefix']
- funcprefix = config['abi_func_prefix']
+ argprefix = config.abi_func_prefix
+ funcprefix = config.abi_func_prefix
funcalias = funcprefix .. funcname
noproto = false
end
@@ -1275,11 +1275,11 @@
if argalias == nil and funcname ~= nil then
argalias = funcname .. "_args"
for _, v in pairs(compat_options) do
- local mask = v["mask"]
+ local mask = v.mask
if (flags & mask) ~= 0 then
-- Multiple aliases doesn't seem to make
-- sense.
- argalias = v["prefix"] .. argalias
+ argalias = v.prefix .. argalias
goto out
end
end
@@ -1291,17 +1291,17 @@
local ncompatflags = get_mask({"STD", "NODEF", "NOARGS", "NOPROTO",
"NOSTD"})
local compatflags = get_mask_pat("COMPAT.*")
- if noproto or flags & known_flags["SYSMUX"] ~= 0 then
- flags = flags | known_flags["NOPROTO"];
+ if noproto or flags & known_flags.SYSMUX ~= 0 then
+ flags = flags | known_flags.NOPROTO;
end
- if flags & known_flags["OBSOL"] ~= 0 then
+ if flags & known_flags.OBSOL ~= 0 then
handle_obsol(sysnum, funcname, funcomment)
- elseif flags & known_flags["RESERVED"] ~= 0 then
+ elseif flags & known_flags.RESERVED ~= 0 then
handle_reserved(sysnum, sysstart, sysend)
- elseif flags & known_flags["UNIMPL"] ~= 0 then
+ elseif flags & known_flags.UNIMPL ~= 0 then
handle_unimpl(sysnum, sysstart, sysend, funcomment)
elseif flags & compatflags ~= 0 then
- if flags & known_flags['STD'] ~= 0 then
+ if flags & known_flags.STD ~= 0 then
abort(1, "Incompatible COMPAT/STD: " .. line)
end
handle_compat(sysnum, thr_flag, flags, sysflags, rettype,
@@ -1342,7 +1342,7 @@
end
end
-local compat_set = config['compat_set']
+local compat_set = config.compat_set
if compat_set ~= "" then
if not compat_option_sets[compat_set] then
abort(1, "Undefined compat set: " .. compat_set)
@@ -1354,18 +1354,18 @@
end
-- We ignore errors here if we're relying on the default configuration.
-if not config_modified["capenabled"] then
- config["capenabled"] = grab_capenabled(config['capabilities_conf'],
- config_modified["capabilities_conf"] == nil)
-elseif config["capenabled"] ~= "" then
+if not config_modified.capenabled then
+ config.capenabled = grab_capenabled(config.capabilities_conf,
+ config_modified.capabilities_conf == nil)
+elseif config.capenabled ~= "" then
-- Due to limitations in the config format mostly, we'll have a comma
-- separated list. Parse it into lines
local capenabled = {}
- -- print("here: " .. config["capenabled"])
- for sysc in config["capenabled"]:gmatch("([^,]+)") do
+ -- print("here: " .. config.capenabled)
+ for sysc in config.capenabled:gmatch("([^,]+)") do
capenabled[sysc] = true
end
- config["capenabled"] = capenabled
+ config.capenabled = capenabled
end
process_compat()
process_abi_flags()
@@ -1403,7 +1403,7 @@
/* The casts are bogus but will do for now. */
struct sysent %s[] = {
-]], config['switchname']))
+]], config.switchname))
write_line("syssw", string.format([[/*
* System call switch table.
@@ -1412,7 +1412,7 @@
* $%s$
*/
-]], generated_tag, config['os_id_keyword']))
+]], generated_tag, config.os_id_keyword))
write_line("sysarg", string.format([[/*
* System call prototypes.
@@ -1450,8 +1450,8 @@
#define PADR_(t) 0
#endif
-]], generated_tag, config['os_id_keyword'], config['sysproto_h'],
- config['sysproto_h']))
+]], generated_tag, config.os_id_keyword, config.sysproto_h,
+ config.sysproto_h))
if abi_changes("pair_64bit") then
write_line("sysarg", string.format([[
#if !defined(PAD64_REQUIRED) && !defined(__amd64__)
@@ -1467,7 +1467,7 @@
]]))
end
for _, v in pairs(compat_options) do
- write_line(v["tmp"], string.format("\n#ifdef %s\n\n", v["definition"]))
+ write_line(v.tmp, string.format("\n#ifdef %s\n\n", v.definition))
end
write_line("sysnames", string.format([[/*
@@ -1478,7 +1478,7 @@
*/
const char *%s[] = {
-]], generated_tag, config['os_id_keyword'], config['namesname']))
+]], generated_tag, config.os_id_keyword, config.namesname))
write_line("syshdr", string.format([[/*
* System call numbers.
@@ -1487,12 +1487,12 @@
* $%s$
*/
-]], generated_tag, config['os_id_keyword']))
+]], generated_tag, config.os_id_keyword))
write_line("sysmk", string.format([[# FreeBSD system call object files.
# DO NOT EDIT-- this file is automatically %s.
# $%s$
-MIASM = ]], generated_tag, config['os_id_keyword']))
+MIASM = ]], generated_tag, config.os_id_keyword))
write_line("systrace", string.format([[/*
* System call argument to DTrace register array converstion.
@@ -1508,7 +1508,7 @@
int64_t *iarg = (int64_t *)uarg;
int a = 0;
switch (sysnum) {
-]], generated_tag, config['os_id_keyword']))
+]], generated_tag, config.os_id_keyword))
write_line("systracetmp", [[static void
systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
@@ -1533,7 +1533,7 @@
"\n#define AS(name) (sizeof(struct name) / sizeof(syscallarg_t))\n")
for _, v in pairs(compat_options) do
- if v["count"] > 0 then
+ if v.count > 0 then
write_line("sysinc", string.format([[
#ifdef %s
@@ -1541,11 +1541,11 @@
#else
#define %s(n, name) .sy_narg = 0, .sy_call = (sy_call_t *)nosys
#endif
-]], v["definition"], v["flag"]:lower(), v["prefix"], v["flag"]:lower()))
+]], v.definition, v.flag:lower(), v.prefix, v.flag:lower()))
end
- write_line(v["dcltmp"], string.format("\n#endif /* %s */\n\n",
- v["definition"]))
+ write_line(v.dcltmp, string.format("\n#endif /* %s */\n\n",
+ v.definition))
end
write_line("sysprotoend", string.format([[
@@ -1555,14 +1555,14 @@
#undef PADR_
#endif /* !%s */
-]], config["sysproto_h"]))
+]], config.sysproto_h))
write_line("sysmk", "\n")
write_line("sysent", "};\n")
write_line("sysnames", "};\n")
-- maxsyscall is the highest seen; MAXSYSCALL should be one higher
write_line("syshdr", string.format("#define\t%sMAXSYSCALL\t%d\n",
- config["syscallprefix"], maxsyscall + 1))
+ config.syscallprefix, maxsyscall + 1))
write_line("systrace", [[
default:
*n_args = 0;
@@ -1596,8 +1596,8 @@
write_line("sysproto", read_file("sysarg"))
write_line("sysproto", read_file("sysdcl"))
for _, v in pairs(compat_options) do
- write_line("sysproto", read_file(v["tmp"]))
- write_line("sysproto", read_file(v["dcltmp"]))
+ write_line("sysproto", read_file(v.tmp))
+ write_line("sysproto", read_file(v.dcltmp))
end
write_line("sysproto", read_file("sysaue"))
write_line("sysproto", read_file("sysprotoend"))
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Feb 7, 9:25 PM (13 h, 37 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16516819
Default Alt Text
D39709.diff (21 KB)
Attached To
Mode
D39709: makesyscalls.lua: Make more luaish
Attached
Detach File
Event Timeline
Log In to Comment