xref: /src/sys/tools/syscalls/core/scret.lua (revision 9ded074e875c29cb92d5f643801990d7bb23cca4)
19ded074eSagge3--
29ded074eSagge3-- SPDX-License-Identifier: BSD-2-Clause
39ded074eSagge3--
49ded074eSagge3-- Copyright (c) 2024 Tyler Baxter <agge@FreeBSD.org>
59ded074eSagge3-- Copyright (c) 2023 Warner Losh <imp@bsdimp.com>
69ded074eSagge3-- Copyright (c) 2019 Kyle Evans <kevans@FreeBSD.org>
79ded074eSagge3--
89ded074eSagge3
99ded074eSagge3local util = require("tools.util")
109ded074eSagge3
119ded074eSagge3local scret = {}
129ded074eSagge3
139ded074eSagge3scret.__index = scret
149ded074eSagge3
159ded074eSagge3-- Processes this return type.
169ded074eSagge3function scret:process()
179ded074eSagge3	local words = util.split(self.scret, "%S+")
189ded074eSagge3	self.scret = words[1]
199ded074eSagge3	-- Pointer incoming.
209ded074eSagge3	if words[2]:sub(1,1) == "*" then
219ded074eSagge3		self.scret = self.scret .. " "
229ded074eSagge3	end
239ded074eSagge3	while words[2]:sub(1,1) == "*" do
249ded074eSagge3		words[2] = words[2]:sub(2)
259ded074eSagge3		self.scret = self.scret .. "*"
269ded074eSagge3	end
279ded074eSagge3end
289ded074eSagge3
299ded074eSagge3-- To add this return type to the system call.
309ded074eSagge3function scret:add()
319ded074eSagge3	self:process()
329ded074eSagge3	return self.scret
339ded074eSagge3end
349ded074eSagge3
359ded074eSagge3function scret:new(obj, line)
369ded074eSagge3	obj = obj or { }
379ded074eSagge3	setmetatable(obj, self)
389ded074eSagge3	self.__index = self
399ded074eSagge3
409ded074eSagge3	self.scret = line
419ded074eSagge3
429ded074eSagge3	return obj
439ded074eSagge3end
449ded074eSagge3
459ded074eSagge3return scret
46