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 */