1*529c1f20SDavid du Colombier /* handy strings in l.s */ 2*529c1f20SDavid du Colombier extern char origin[]; 3*529c1f20SDavid du Colombier extern char uart; 4*529c1f20SDavid du Colombier extern char hex[]; 5*529c1f20SDavid du Colombier extern char bootname[]; 6*529c1f20SDavid du Colombier 7*529c1f20SDavid du Colombier /* l.s */ 8*529c1f20SDavid du Colombier void start(void *sp); 9*529c1f20SDavid du Colombier void cgaputc(int c); 10*529c1f20SDavid du Colombier int kbdgetc(void); 11*529c1f20SDavid du Colombier void usleep(int t); 12*529c1f20SDavid du Colombier void halt(void); 13*529c1f20SDavid du Colombier void jump(void *pc); 14*529c1f20SDavid du Colombier 15*529c1f20SDavid du Colombier int read(void *f, void *data, int len); 16*529c1f20SDavid du Colombier int readn(void *f, void *data, int len); 17*529c1f20SDavid du Colombier void close(void *f); 18*529c1f20SDavid du Colombier void unload(void); 19*529c1f20SDavid du Colombier 20*529c1f20SDavid du Colombier int getc(void); 21*529c1f20SDavid du Colombier void putc(int c); 22*529c1f20SDavid du Colombier 23*529c1f20SDavid du Colombier void memset(void *p, int v, int n); 24*529c1f20SDavid du Colombier void memmove(void *dst, void *src, int n); 25*529c1f20SDavid du Colombier int memcmp(void *src, void *dst, int n); 26*529c1f20SDavid du Colombier int strlen(char *s); 27*529c1f20SDavid du Colombier char *strchr(char *s, int c); 28*529c1f20SDavid du Colombier char *strrchr(char *s, int c); 29*529c1f20SDavid du Colombier void print(char *s); 30*529c1f20SDavid du Colombier 31*529c1f20SDavid du Colombier char *configure(void *f, char *path); 32*529c1f20SDavid du Colombier char *bootkern(void *f); 33*529c1f20SDavid du Colombier 34*529c1f20SDavid du Colombier /* a20.s */ 35*529c1f20SDavid du Colombier int a20(void); 36*529c1f20SDavid du Colombier 37*529c1f20SDavid du Colombier /* e820.s */ 38*529c1f20SDavid du Colombier ulong e820(ulong bx, void *p); 39*529c1f20SDavid du Colombier 40*529c1f20SDavid du Colombier /* apm.s */ 41*529c1f20SDavid du Colombier void apm(int id); 42*529c1f20SDavid du Colombier 43*529c1f20SDavid du Colombier /* uart.s */ 44*529c1f20SDavid du Colombier void uartinit(int p, int c); 45*529c1f20SDavid du Colombier void uartputc(int p, int c); 46*529c1f20SDavid du Colombier int uartgetc(int p); 47