1
1
mirror of https://git.shadowkat.net/izaya/OC-PsychOS2.git synced 2024-11-24 20:27:39 -05:00

added auto-rewind and an no-rewind node for tape-devfs

This commit is contained in:
XeonSquared 2019-12-22 01:35:55 +11:00
parent 0d01b03ddc
commit 054f58609b

View File

@ -3,6 +3,11 @@ local td = {}
local function addNode(addr) local function addNode(addr)
devfs.register("tape"..tonumber(counter),function() devfs.register("tape"..tonumber(counter),function()
local tape = component.proxy(addr) local tape = component.proxy(addr)
tape.seek(-math.huge)
return tape.read, tape.write, function() end, tape.seek
end)
devfs.register("tapen"..tonumber(counter),function()
local tape = component.proxy(addr)
return tape.read, tape.write, function() end, tape.seek return tape.read, tape.write, function() end, tape.seek
end) end)
td[addr] = counter td[addr] = counter
@ -14,7 +19,7 @@ end
while true do while true do
local tE = {coroutine.yield()} local tE = {coroutine.yield()}
if tE[1] == "component_added" and tE[3] == "tape_drive" then if tE[1] == "component_added" and tE[3] == "tape_drive" then
addNode[tE[2]] addNode(tE[2])
elseif tE[1] == "component_removed" and tE[3] == "tape_drive" then elseif tE[1] == "component_removed" and tE[3] == "tape_drive" then
if td[tE[2]] then if td[tE[2]] then
fs.remove("/dev/tape"..tostring(td[tE[2]])) fs.remove("/dev/tape"..tostring(td[tE[2]]))