1 /* 2 * @(#)cp.h 7.1 (Berkeley) 05/21/88 3 */ 4 5 /* 6 * Tahoe console processor interface 7 */ 8 9 /* 10 * Reduced DCB layout for byte communication. 11 */ 12 #define CPBUFLEN 200 /* Output buffer length */ 13 #ifndef LOCORE 14 struct cphdr { 15 char cp_unit; /* Done bit & unit # */ 16 char cp_comm; /* Command */ 17 short cp_count; /* Counter (when relevant) */ 18 }; 19 20 struct cpdcb_o { /* Output structure */ 21 struct cphdr cp_hdr; 22 char cp_buf[CPBUFLEN]; /* Buffer for output or 'stty' */ 23 }; 24 25 struct cpdcb_i { /* Structure for input */ 26 struct cphdr cp_hdr; 27 char cpi_buf[4]; /* Buffer for input */ 28 }; 29 #endif 30 31 #define CPDONE 0x80 /* 'Done' bit in cp_unit */ 32 #define CPTAKE 0x40 /* CP 'ack' to this cpdcb */ 33 34 /* unit values */ 35 #define CPUNIT 0 /* the CP itself */ 36 #define CPCONS 1 /* console line */ 37 #define CPREMOT 2 /* remote line */ 38 #define CPCLOCK 4 /* realtime clock */ 39 40 /* commands */ 41 #define CPRESET 0 42 #define CPWRITE 1 /* write device or register */ 43 #define CPREAD 2 /* read device or register */ 44 #define CPSTTY 3 /* set terminal configuration */ 45 #define CPBOOT 4 /* reboot system */ 46 47 /* 48 * CP specific locations 49 */ 50 #define CPBFLG 0xc0000500 /* System bootflag flags */ 51 #define CPYFLG 0xc0000504 /* Copy of the Y flag */ 52 #define CPOPTS 0xc0000508 /* copy of CP options */ 53 #define CPRSRV 0xc000050c /* reserved for CP usage */ 54 #define CPBDEV 0xc0000510 /* Bootstrap device, saved on boot */ 55 #define CPEDEV 0xc000052f /* End of device name */ 56 57 #if !defined(LOCORE) && defined(KERNEL) 58 struct cphdr *cnlast; /* last command sent to cp */ 59 #endif 60