aboutsummaryrefslogtreecommitdiffstats
path: root/c/gbos.h
blob: 47f75ad2f3496002662db2e60b09b0b48a1ccf93 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* gbos userland C API (thin wrappers over rst $30 syscalls; see c/libc.s) */
#ifndef GBOS_H
#define GBOS_H
#define EOF 4                 /* readc() returns this at end of input */

void          writes(const char *buf, unsigned char len);
void          putc(char c);
void          puts(const char *s);        /* write a NUL-terminated string */
void          nl(void);                   /* newline (CRLF)                */
unsigned char strlen(const char *s);
char         *getargs(void);              /* this program's argument string */
char          readc(void);                /* one input byte, EOF at end    */
void          sexit(unsigned char code);
unsigned char getpid(void);

/* helpers (c/libc.c) */
void          putu(unsigned int n);              /* print decimal          */
unsigned char atou(const char *s);               /* parse decimal          */
unsigned char argv_parse(char **argv, unsigned char maxv); /* argc/argv     */
unsigned char hasflag(char **argv, unsigned char argc, char f);   /* -x flag  */
char         *optval(char **argv, unsigned char argc, char opt);  /* -x VALUE */
#endif