OC-PsychOS/docs/api.md

1.9 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.

I/O stuff

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)

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

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