1: /* Function prototypes. */ 2: 3: #ifndef PROTO_H 4: #define PROTO_H 5: 6: /* Struct declarations. */ 7: struct dpeth; 8: struct proc; 9: struct tty; 10: 11: /* at_wini.c, bios_wini.c, esdi_wini.c, ps_wini.c, xt_wini.c, wini.c */ 12: _PROTOTYPE( void at_winchester_task, (void) ); 13: _PROTOTYPE( void bios_winchester_task, (void) ); 14: _PROTOTYPE( void esdi_winchester_task, (void) ); 15: _PROTOTYPE( void ps_winchester_task, (void) ); 16: _PROTOTYPE( void xt_winchester_task, (void) ); 17: 18: /* aha1540.c */ 19: _PROTOTYPE( void aha1540_scsi_task, (void) ); 20: 21: /* fatfile.c, dosfile.c */ 22: _PROTOTYPE( void fatfile_task, (void) ); 23: _PROTOTYPE( void dosfile_task, (void) ); 24: _PROTOTYPE( void dosfile_stop, (void) ); 25: 26: /* clock.c */ 27: _PROTOTYPE( void clock_task, (void) ); 28: _PROTOTYPE( void clock_stop, (void) ); 29: _PROTOTYPE( clock_t get_uptime, (void) ); 30: _PROTOTYPE( void syn_alrm_task, (void) ); 31: #define tmr_inittimer(tp) (void)((tp)->tmr_exp_time = TMR_NEVER) 32: _PROTOTYPE( void tmr_settimer, (timer_t *tp, int task, clock_t exp_time, 33: tmr_func_t fp) ); 34: _PROTOTYPE( void tmr_clrtimer, (timer_t *tp) ); 35: #define tmr_arg(tp) (&(tp)->tmr_arg) 36: _PROTOTYPE( void tmr_exptimers, (void) ); 37: _PROTOTYPE( void cancel_alarm, (int proc_nr) ); 38: 39: /* dmp.c */ 40: _PROTOTYPE( void map_dmp, (void) ); 41: _PROTOTYPE( void p_dmp, (void) ); 42: _PROTOTYPE( void reg_dmp, (struct proc *rp) ); 43: 44: /* dp8390.c */ 45: _PROTOTYPE( void dp8390_task, (void) ); 46: _PROTOTYPE( void dp8390_dump, (void) ); 47: _PROTOTYPE( void dp8390_stop, (void) ); 48: 49: /* rtl8139.c */ 50: _PROTOTYPE( void rtl8139_task, (void) ); 51: _PROTOTYPE( void rtl8139_dump, (void) ); 52: _PROTOTYPE( void rtl8139_stop, (void) ); 53: 54: /* driver.c */ 55: _PROTOTYPE( void nop_task, (void) ); 56: 57: /* floppy.c, stfloppy.c */ 58: _PROTOTYPE( void floppy_task, (void) ); 59: _PROTOTYPE( void floppy_stop, (void) ); 60: 61: /* main.c, stmain.c */ 62: _PROTOTYPE( void main, (void) ); 63: _PROTOTYPE( void panic, (const char *s, int n) ); 64: 65: /* mcd.c */ 66: _PROTOTYPE( void mcd_task, (void) ); 67: 68: /* memory.c */ 69: _PROTOTYPE( void mem_task, (void) ); 70: 71: /* misc.c */ 72: _PROTOTYPE( int env_parse, (char *env, char *fmt, int field, 73: long *param, long min, long max) ); 74: _PROTOTYPE( void env_panic, (char *env) ); 75: _PROTOTYPE( int env_prefix, (char *env, char *prefix) ); 76: 77: #if ENABLE_PCI 78: /* pci.c */ 79: _PROTOTYPE( void pci_init, (void) ); 80: _PROTOTYPE( int pci_find_dev, (U8_t bus, U8_t dev, U8_t func, 81: int *devindp) ); 82: _PROTOTYPE( int pci_first_dev, (int *devindp, u16_t *vidp, u16_t *didp) ); 83: _PROTOTYPE( int pci_next_dev, (int *devindp, u16_t *vidp, u16_t *didp) ); 84: _PROTOTYPE( void pci_reserve, (int devind) ); 85: _PROTOTYPE( void pci_ids, (int devind, u16_t *vidp, u16_t *didp) ); 86: _PROTOTYPE( char *pci_slot_name, (int devind) ); 87: _PROTOTYPE( char *pci_dev_name, (U16_t vid, U16_t did) ); 88: _PROTOTYPE( u8_t pci_attr_r8, (int devind, int port) ); 89: _PROTOTYPE( u16_t pci_attr_r16, (int devind, int port) ); 90: _PROTOTYPE( u32_t pci_attr_r32, (int devind, int port) ); 91: _PROTOTYPE( void pci_attr_w16, (int devind, int port, U16_t value) ); 92: _PROTOTYPE( void pci_attr_w32, (int devind, int port, u32_t value) ); 93: 94: /* rtl8029.c */ 95: _PROTOTYPE( int rtl_probe, (struct dpeth *dep) ); 96: #endif /* ENABLE_PCI */ 97: 98: /* printer.c, stprint.c */ 99: _PROTOTYPE( void printer_task, (void) ); 100: 101: /* proc.c */ 102: _PROTOTYPE( void interrupt, (int task) ); 103: _PROTOTYPE( int lock_mini_send, (struct proc *caller_ptr, 104: int dest, message *m_ptr) ); 105: _PROTOTYPE( void lock_pick_proc, (void) ); 106: _PROTOTYPE( void lock_ready, (struct proc *rp) ); 107: _PROTOTYPE( void lock_sched, (void) ); 108: _PROTOTYPE( void lock_unready, (struct proc *rp) ); 109: _PROTOTYPE( int sys_call, (int function, int src_dest, message *m_ptr) ); 110: _PROTOTYPE( void unhold, (void) ); 111: 112: /* rs232.c */ 113: _PROTOTYPE( void rs_init, (struct tty *tp) ); 114: 115: /* sb16_dsp.c */ 116: _PROTOTYPE( void sb16_task, (void) ); 117: 118: /* sb16_mixer.c */ 119: _PROTOTYPE( void sb16mixer_task, (void) ); 120: 121: /* system.c */ 122: _PROTOTYPE( void cause_sig, (int proc_nr, int sig_nr) ); 123: _PROTOTYPE( void inform, (void) ); 124: _PROTOTYPE( phys_bytes numap, (int proc_nr, vir_bytes vir_addr, 125: vir_bytes bytes) ); 126: _PROTOTYPE( void sys_task, (void) ); 127: _PROTOTYPE( phys_bytes umap, (struct proc *rp, int seg, vir_bytes vir_addr, 128: vir_bytes bytes) ); 129: _PROTOTYPE( int vir_copy, (int src_proc, vir_bytes src_vir, 130: int dst_proc, vir_bytes dst_vir, vir_bytes bytes) ); 131: 132: /* table.c */ 133: _PROTOTYPE( void mapdrivers, (void) ); 134: 135: /* tty.c */ 136: _PROTOTYPE( void handle_events, (struct tty *tp) ); 137: _PROTOTYPE( void sigchar, (struct tty *tp, int sig) ); 138: _PROTOTYPE( void tty_task, (void) ); 139: _PROTOTYPE( int in_process, (struct tty *tp, char *buf, int count) ); 140: _PROTOTYPE( void out_process, (struct tty *tp, char *bstart, char *bpos, 141: char *bend, int *icount, int *ocount) ); 142: _PROTOTYPE( void tty_wakeup, (clock_t now) ); 143: _PROTOTYPE( void tty_reply, (int code, int replyee, int proc_nr, 144: int status) ); 145: _PROTOTYPE( void tty_devnop, (struct tty *tp) ); 146: 147: /* library */ 148: _PROTOTYPE( void *memcpy, (void *_s1, const void *_s2, size_t _n) ); 149: 150: #if (CHIP == INTEL) 151: 152: /* 3c503.c */ 153: _PROTOTYPE( int el2_probe, (struct dpeth *dep) ); 154: 155: /* clock.c */ 156: _PROTOTYPE( void micro_start, (struct micro_state *msp) ); 157: _PROTOTYPE( unsigned long micro_elapsed, (struct micro_state *msp) ); 158: _PROTOTYPE( void micro_delay, (unsigned long usecs) ); 159: #define milli_delay(n) micro_delay((n) * 1000UL) 160: 161: /* console.c */ 162: _PROTOTYPE( void cons_stop, (void) ); 163: _PROTOTYPE( void putk, (int c) ); 164: _PROTOTYPE( void scr_init, (struct tty *tp) ); 165: _PROTOTYPE( void toggle_scroll, (void) ); 166: _PROTOTYPE( int con_loadfont, (phys_bytes user_phys) ); 167: _PROTOTYPE( void select_console, (int cons_line) ); 168: 169: /* cstart.c */ 170: _PROTOTYPE( void cstart, (U16_t cs, U16_t ds, U16_t mds, 171: U16_t parmoff, U16_t parmsize) ); 172: 173: /* exception.c */ 174: _PROTOTYPE( void exception, (unsigned vec_nr) ); 175: 176: /* i8259.c */ 177: _PROTOTYPE( void put_irq_handler, (irq_hook_t *hook, int irq, 178: irq_handler_t handler) ); 179: _PROTOTYPE( void intr_handle, (irq_hook_t *hook) ); 180: _PROTOTYPE( void intr_init, (int mine) ); 181: 182: /* keyboard.c */ 183: _PROTOTYPE( void kb_init, (struct tty *tp) ); 184: _PROTOTYPE( int kbd_loadmap, (phys_bytes user_phys) ); 185: _PROTOTYPE( void wreboot, (int how) ); 186: 187: /* klib*.s */ 188: _PROTOTYPE( void int86, (void) ); 189: _PROTOTYPE( void cp_mess, (int src,phys_clicks src_clicks,vir_bytes src_offset, 190: phys_clicks dst_clicks, vir_bytes dst_offset) ); 191: _PROTOTYPE( void enable_irq, (irq_hook_t *hook) ); 192: _PROTOTYPE( int disable_irq, (irq_hook_t *hook) ); 193: _PROTOTYPE( u16_t mem_rdw, (U16_t segm, vir_bytes offset) ); 194: _PROTOTYPE( void phys_copy, (phys_bytes source, phys_bytes dest, 195: phys_bytes count) ); 196: _PROTOTYPE( void phys_insb, (Port_t port, phys_bytes buf, size_t count) ); 197: _PROTOTYPE( void phys_insw, (Port_t port, phys_bytes buf, size_t count) ); 198: _PROTOTYPE( void phys_outsb, (Port_t port, phys_bytes buf, size_t count)); 199: _PROTOTYPE( void phys_outsw, (Port_t port, phys_bytes buf, size_t count)); 200: _PROTOTYPE( void reset, (void) ); 201: _PROTOTYPE( void vid_vid_copy, (unsigned src, unsigned dst, unsigned count)); 202: _PROTOTYPE( void mem_vid_copy, (u16_t *src, unsigned dst, unsigned count)); 203: _PROTOTYPE( void level0, (void (*func)(void)) ); 204: _PROTOTYPE( void monitor, (void) ); 205: 206: /* misc.c */ 207: _PROTOTYPE( void mem_init, (void) ); 208: 209: /* mpx*.s */ 210: _PROTOTYPE( void idle_task, (void) ); 211: _PROTOTYPE( void restart, (void) ); 212: 213: /* The following are never called from C (pure asm procs). */ 214: 215: /* Exception handlers (real or protected mode), in numerical order. */ 216: void _PROTOTYPE( int00, (void) ), _PROTOTYPE( divide_error, (void) ); 217: void _PROTOTYPE( int01, (void) ), _PROTOTYPE( single_step_exception, (void) ); 218: void _PROTOTYPE( int02, (void) ), _PROTOTYPE( nmi, (void) ); 219: void _PROTOTYPE( int03, (void) ), _PROTOTYPE( breakpoint_exception, (void) ); 220: void _PROTOTYPE( int04, (void) ), _PROTOTYPE( overflow, (void) ); 221: void _PROTOTYPE( int05, (void) ), _PROTOTYPE( bounds_check, (void) ); 222: void _PROTOTYPE( int06, (void) ), _PROTOTYPE( inval_opcode, (void) ); 223: void _PROTOTYPE( int07, (void) ), _PROTOTYPE( copr_not_available, (void) ); 224: void _PROTOTYPE( double_fault, (void) ); 225: void _PROTOTYPE( copr_seg_overrun, (void) ); 226: void _PROTOTYPE( inval_tss, (void) ); 227: void _PROTOTYPE( segment_not_present, (void) ); 228: void _PROTOTYPE( stack_exception, (void) ); 229: void _PROTOTYPE( general_protection, (void) ); 230: void _PROTOTYPE( page_fault, (void) ); 231: void _PROTOTYPE( copr_error, (void) ); 232: 233: /* Hardware interrupt handlers. */ 234: _PROTOTYPE( void hwint00, (void) ); 235: _PROTOTYPE( void hwint01, (void) ); 236: _PROTOTYPE( void hwint02, (void) ); 237: _PROTOTYPE( void hwint03, (void) ); 238: _PROTOTYPE( void hwint04, (void) ); 239: _PROTOTYPE( void hwint05, (void) ); 240: _PROTOTYPE( void hwint06, (void) ); 241: _PROTOTYPE( void hwint07, (void) ); 242: _PROTOTYPE( void hwint08, (void) ); 243: _PROTOTYPE( void hwint09, (void) ); 244: _PROTOTYPE( void hwint10, (void) ); 245: _PROTOTYPE( void hwint11, (void) ); 246: _PROTOTYPE( void hwint12, (void) ); 247: _PROTOTYPE( void hwint13, (void) ); 248: _PROTOTYPE( void hwint14, (void) ); 249: _PROTOTYPE( void hwint15, (void) ); 250: 251: /* Software interrupt handlers, in numerical order. */ 252: _PROTOTYPE( void trp, (void) ); 253: _PROTOTYPE( void s_call, (void) ), _PROTOTYPE( p_s_call, (void) ); 254: _PROTOTYPE( void level0_call, (void) ); 255: 256: /* ne2000.c */ 257: _PROTOTYPE( int ne_probe, (struct dpeth *dep) ); 258: 259: /* printer.c */ 260: _PROTOTYPE( void pr_restart, (void) ); 261: 262: /* protect.c */ 263: _PROTOTYPE( void prot_init, (void) ); 264: _PROTOTYPE( void init_codeseg, (struct segdesc_s *segdp, phys_bytes base, 265: vir_bytes size, int privilege) ); 266: _PROTOTYPE( void init_dataseg, (struct segdesc_s *segdp, phys_bytes base, 267: vir_bytes size, int privilege) ); 268: _PROTOTYPE( phys_bytes seg2phys, (U16_t seg) ); 269: _PROTOTYPE( void phys2seg, (u16_t *seg, vir_bytes *off, phys_bytes phys)); 270: _PROTOTYPE( void enable_iop, (struct proc *pp) ); 271: 272: /* pty.c */ 273: _PROTOTYPE( void do_pty, (struct tty *tp, message *m_ptr) ); 274: _PROTOTYPE( void pty_init, (struct tty *tp) ); 275: 276: /* system.c */ 277: _PROTOTYPE( void alloc_segments, (struct proc *rp) ); 278: 279: /* wdeth.c */ 280: _PROTOTYPE( int wdeth_probe, (struct dpeth *dep) ); 281: 282: #endif /* (CHIP == INTEL) */ 283: 284: #if (CHIP == M68000) 285: 286: /* cstart.c */ 287: _PROTOTYPE( void cstart, (char *parmoff, size_t parmsize) ); 288: 289: /* stfloppy.c */ 290: _PROTOTYPE( void fd_timer, (void) ); 291: 292: /* stmain.c */ 293: _PROTOTYPE( void none, (void) ); 294: _PROTOTYPE( void rupt, (void) ); 295: _PROTOTYPE( void trap, (void) ); 296: _PROTOTYPE( void checksp, (void) ); 297: _PROTOTYPE( void aciaint, (void) ); 298: _PROTOTYPE( void fake_int, (const char *s, int t) ); 299: _PROTOTYPE( void timint, (int t) ); 300: _PROTOTYPE( void mdiint, (void) ); 301: _PROTOTYPE( void iob, (int t) ); 302: _PROTOTYPE( void idle_task, (void) ); 303: 304: /* rs232.c */ 305: _PROTOTYPE( void siaint, (int type) ); 306: 307: /* stcon.c */ 308: _PROTOTYPE( void func_key, (void) ); 309: _PROTOTYPE( void dump, (void) ); 310: _PROTOTYPE( void putk, (int c) ); 311: 312: /* stdma.c */ 313: _PROTOTYPE( void dmagrab, (int p, dmaint_t func) ); 314: _PROTOTYPE( void dmafree, (int p) ); 315: _PROTOTYPE( void dmaint, (void) ); 316: _PROTOTYPE( void dmaaddr, (phys_bytes ad) ); 317: _PROTOTYPE( int dmardat, (int mode, int delay) ); 318: _PROTOTYPE( void dmawdat, (int mode, int data, int delay) ); 319: _PROTOTYPE( void dmawcmd, (int data, unsigned mode) ); 320: _PROTOTYPE( void dmacomm, (int mode, int data, int delay) ); 321: _PROTOTYPE( int dmastat, (int mode, int delay) ); 322: 323: /* stdskclk.c */ 324: _PROTOTYPE( int do_xbms, (phys_bytes address, int count, int rw, int minor) ); 325: 326: /* stkbd.c */ 327: _PROTOTYPE( void kbdint, (void) ); 328: _PROTOTYPE( void kb_timer, (void) ); 329: _PROTOTYPE( int kb_read, (int minor, char **bufindirect) ); 330: _PROTOTYPE( void kb_init, (int minor) ); 331: 332: /* stvdu.c */ 333: _PROTOTYPE( void flush, (struct tty *tp) ); 334: _PROTOTYPE( void console, (struct tty *tp) ); 335: _PROTOTYPE( void out_char, (struct tty *tp, int c) ); 336: _PROTOTYPE( void scr_init, (int minor) ); 337: _PROTOTYPE( void vduswitch, (struct tty *tp) ); 338: _PROTOTYPE( void vdusetup, (unsigned int vres, char *vram, 339: unsigned short *vrgb) ); 340: _PROTOTYPE( void vbl, (void) ); 341: _PROTOTYPE( int vdu_loadfont, (message *m_ptr) ); 342: 343: /* stwini.c */ 344: _PROTOTYPE( int wini_open, (message *mp) ); 345: _PROTOTYPE( int wini_rdwt, (message *mp) ); 346: _PROTOTYPE( int wini_hvrdwt, (message *mp) ); 347: _PROTOTYPE( int wini_transfer, (int rw, int pnr, int minor, 348: long pos, int count, vir_bytes vadr) ); 349: _PROTOTYPE( int wini_ioctl, (message *mp) ); 350: _PROTOTYPE( int wini_close, (message *mp) ); 351: 352: /* stacsi.c */ 353: _PROTOTYPE( int acsi_cmd, (int drive, unsigned char *cmd, int cmdlen, 354: phys_bytes address, phys_bytes data_len, int rw) ); 355: 356: /* stscsi.c */ 357: _PROTOTYPE( void scsi_task, (void) ); 358: _PROTOTYPE( void scsidmaint, (void) ); 359: _PROTOTYPE( void scsiint, (void) ); 360: _PROTOTYPE( int scsi_cmd, (int drive, unsigned char *cmd, int cmdlen, 361: phys_bytes address, phys_bytes data_len, int rw) ); 362: 363: /* klib68k.s */ 364: _PROTOTYPE( void flipclicks, (phys_clicks c1, phys_clicks c2, phys_clicks n) ); 365: _PROTOTYPE( void copyclicks, (phys_clicks src, phys_clicks dest, 366: phys_clicks nclicks) ); 367: _PROTOTYPE( void zeroclicks, (phys_clicks dest, phys_clicks nclicks) ); 368: _PROTOTYPE( void phys_copy, (phys_bytes src, phys_bytes dest, phys_bytes n) ); 369: 370: /* stdskclks.s */ 371: _PROTOTYPE( int rd1byte, (void) ); 372: _PROTOTYPE( int wr1byte, (int) ); 373: _PROTOTYPE( long getsupra, (void) ); 374: _PROTOTYPE( long geticd, (void) ); 375: 376: /* mpx.s */ 377: _PROTOTYPE( int lock, (void) ); 378: _PROTOTYPE( void unlock, (void) ); 379: _PROTOTYPE( void restore, (int oldsr) ); 380: _PROTOTYPE( void reboot, (void) ); 381: _PROTOTYPE( int test_and_set, (char *flag) ); 382: _PROTOTYPE( unsigned long get_mem_size, (char *start_addr) ); 383: 384: /* stprint.c */ 385: #ifdef DEBOUT 386: _PROTOTYPE( void prtc, (int c) ); 387: #endif 388: 389: #ifdef FPP 390: /* fpp.c */ 391: _PROTOTYPE( void fppinit, (void) ); 392: _PROTOTYPE( void fpp_new_state, (struct proc *rp) ); 393: _PROTOTYPE( void fpp_save, (struct proc *rp, struct cpu_state *p) ); 394: _PROTOTYPE( struct cpu_state *fpp_restore, (struct proc *rp) ); 395: 396: /* fpps.s */ 397: _PROTOTYPE( void _fppsave, (struct state_frame *p) ); 398: _PROTOTYPE( void _fppsavereg, (struct fpp_model *p) ); 399: _PROTOTYPE( void _fpprestore, (struct state_frame *p) ); 400: _PROTOTYPE( void _fpprestreg, (struct fpp_model *p) ); 401: #endif 402: 403: /* pmmu.c */ 404: _PROTOTYPE(void pmmuinit , (void) ); 405: _PROTOTYPE(void pmmu_init_proc , (struct proc *rp ) ); 406: _PROTOTYPE(void pmmu_restore , (struct proc *rp ) ); 407: _PROTOTYPE(void pmmu_delete , (struct proc *rp ) ); 408: _PROTOTYPE(void pmmu_flush , (struct proc *rp ) ); 409: 410: #endif /* (CHIP == M68000) */ 411: 412: #endif /* PROTO_H */