aboutsummaryrefslogtreecommitdiffstats
path: root/include/gbos.inc
diff options
context:
space:
mode:
Diffstat (limited to 'include/gbos.inc')
-rw-r--r--include/gbos.inc9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/gbos.inc b/include/gbos.inc
index 9b44b33..aca92e3 100644
--- a/include/gbos.inc
+++ b/include/gbos.inc
@@ -125,7 +125,8 @@ DEF SYS_BPEEK EQU 24 ; [debug] read a disk block (B=block, E=off -> A)
DEF SYS_MKDIR EQU 25 ; make a directory (DE=path -> A=0/$FF)
DEF SYS_CHDIR EQU 26 ; change directory (DE=path -> A=0/$FF)
DEF SYS_OPENDIR EQU 27 ; point ls at a directory (DE=path -> A=0/$FF)
-DEF SYS_MAX EQU 28
+DEF SYS_PIPE EQU 28 ; make a pipe (-> A=read fd; write=A+1)
+DEF SYS_MAX EQU 29
; SYS_KILL (9) is now implemented (B=pid -> A=0/$FF; pid 1 is immortal)
; (SYS_OPEN=4 / SYS_CLOSE=5 are now implemented by the filesystem)
@@ -179,6 +180,11 @@ DEF OF_MODE EQU 2
DEF OF_POS EQU 3
DEF OF_SIZE EQU 5
+; anonymous pipes
+DEF PIPE_MAX EQU 2 ; concurrent pipes
+DEF PIPE_BUFSZ EQU 64 ; ring buffer bytes per pipe
+DEF PIPE_FD_BASE EQU $F0 ; pipe fds: $F0+idx*2 (read), +1 (write); $FF=console
+
; -----------------------------------------------------------------------------
; Program table indices (see programs.asm). exec() takes one of these in B.
; -----------------------------------------------------------------------------
@@ -204,5 +210,6 @@ DEF PROG_SPIN EQU 18
DEF PROG_BLK EQU 19
DEF PROG_MKDIR EQU 20
DEF PROG_COUNT EQU 21
+DEF PROG_PTEST EQU 22
ENDC