47 lines
1.9 KiB
Markdown
47 lines
1.9 KiB
Markdown
|
# 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*
|