OC-PsychOS/docs/api.md

3.1 KiB

API

Functions

system

spawn(name, function, environment)

Spawns a process from function called name with environment.

os

os.getenv(k)

Gets the k environment variable for the current process.

os.setenv(k, v)

Sets the k environment variable to v for the current process.

os.tasks()

Returns a list of current processes running, the key being the pid and the value being the name.

os.taskinfo(pid)

Returns the name, parent process, and user ID for process pid.

event

event.get()

Gets the next event in the event queue for the process.

event.pull(type)

Gets, and possibly waits, for an event, optionally with *type

buffer

buffer.create(w, c)

Creates a buffer with worker function w and close function c. w is called on creation with the buffer as the argument.

filesystem

fs.mount(mp, pr)

Mounts the component proxy pr to mountpoint mp.

fs.simplify(path)

Simplifies path by resolving .. and . and similar.

fs.resolve(path)

Resolves path to a table of path elements, a mountpoint and a relative filesystem path.

fs.open(path,mode)

Returns a system file handle usable by other fs functions for path in mode. Modes can be r, w, a, rb, wb, ab.

fs.close(handle)

Closes a system file handle.

fs.read(handle,length)

Reads length bytes of data from handle. length is usually limited to 2048.

fs.write(handle,data)

Writes data to handle.

fs.readall(handle)

Returns as much data as can be read from handle.

io

write(...) or io.write(...)

Writes its arguments to the I/O device.

print(...)

Writes its arguments to the I/O device, with a newline after each.

readln(rch) or io.read(...)

Reads a line from the I/O device, optionally replacing the echoed characters with rch.a

io.open(path,mode)

Returns a file object for path in mode.

fobj:read(len)

If len is a number, reads len bytes from fobj. If len is "*a", it reads all the data from fobj. If len is "*l", it reads a line from fobj.

fobj:write(data)

Writes data to fobj (if in write mode)

fobj:close()

Closes fobj, flushing buffers and removing the object from memory.

drivers

tty(gA, sA, sI, fg, bg)

Creates a GPU driver instance for GPU gA and screen sA attached to session sI, optionally with foreground and background colours fg and bg.

kbd(kA, sI)

Creates a keyboard driver instance for keyboard kA attached to session sI.

Events

Network

net_msg, from, port, message

Queued when the system receives message message from from on port port.

Terminal I/O

key, session, char, code

A key with value char and code code was pressed and parsed by a keyboard handler attached to session session

display, session, text

This is triggered to make a tty driver attached to session write text to the screen. Ideally, use write(), not the raw event.

Applications

luash(sI)

Spawns a luash instance for session sI