|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 4558 (0x11ce) Types: TextFile Notes: Uncompressed file
└─⟦ce621b962⟧ Bits:30004623 Controller Environment R. 1.2 (5.25 inch) └─⟦ce621b962⟧ UNIX Filesystem └─⟦490a766d9⟧ »CTENV.ISC/new/usr/include/sys/card.h.Z« └─⟦490a766d9⟧ »CTENV.SCO/new/usr/include/sys/card.h.Z« └─⟦e03896eec⟧ Bits:30004624 Controller Environment R. 1.2 (3.5 inch) └─⟦e03896eec⟧ UNIX Filesystem └─⟦490a766d9⟧ »CTENV.ISC/new/usr/include/sys/card.h.Z« └─⟦490a766d9⟧ »CTENV.SCO/new/usr/include/sys/card.h.Z« └─⟦this⟧
#ident "@(#)card.h 1.1 - 91/07/18" #define CD_CMD 'C' #define CD_CARDS (CD_CMD<<8|'C') /* card.h 87.05.13 */ #define MAXUNITS 16 #define TYPES 4 #define SUP_BUF_SIZE 1024 #define SUP_BUF 1024 #define BWNAMESIZE 10 /* The languages we support */ #define IMC_LANG 0 #define TCI_LANG 1 #define CCI_LANG 2 #define PCI_LANG 3 #ifdef INKERNEL /* description of a window */ /* offset */ struct window { /* 0H */ ushort w_offset; /* 2H */ ushort w_no; /* physaddr = w_no<<16 + w_offset */ /* 4H */ ushort w_size; /* w_offset + w_size <= 64k */ /* 6H */ }; /* layout of the primary window between 386 and a controller board */ #define PARAMSIZE 0x216 /* SUP_BUF - sizeof(struct coupling) -2 */ /* - MAXUNITS - 6*TYPES*MAXUNITS -2 -BWNAMESIZE */ /* offset */ struct boot_window { /* 0H */ struct coupling bw_cp; /* 4CH */ unchar bw_unno; /* 4DH */ unchar bw_untyp; /* 4EH */ unchar bw_cptab[MAXUNITS]; /* 5EH */ struct window bw_wtab[MAXUNITS][TYPES]; /* 1DEH */ ushort bw_memsize; /* 1E0H */ unchar bw_hostname[BWNAMESIZE]; /* 1EAH */ unchar bw_params[PARAMSIZE]; /* 400H */ unchar bw_sup[SUP_BUF_SIZE]; /* 800H */ }; #define CJFOFFSET 0xFFF0 #endif /* INKERNEL */ /* contents of a configuration output */ /* offset */ struct board_init { /* 0H */ ushort bi_unno; /* unit number */ /* 2H */ ushort bi_type; /* unit type */ /* 4H */ ushort bi_window; /* index of primary window */ /* 6H */ ushort bi_appetite; /* number of interaction */ /* descriptions to follow */ /* 8H */ }; /* description of an interaction (window part) between two boards */ /* one of the boards is the one being configured */ /* offset */ struct interaction { /* 0H */ unchar i_unit; /* the other board */ /* 1H */ unchar i_type; /* language: IMC = 0, TCI = 1 */ /* 2H */ unchar i_cp; /* if nonzero the window */ /* contains the coupling */ /* 3H */ unchar i_window; /* index of window, */ /* not the 64k address */ /* 4H */ ushort i_offset; /* offset of interaction data */ /* 6H */ ushort i_size; /* size of interaction data */ /* 8H */ }; /* card read/write message */ /* offset */ struct sup_msg { /* 0H,1H */ unchar sm_unit, sm_gate; /* 2H */ ushort sm_type; /* 4H */ ushort sm_ident; /* 6H */ ushort sm_offset; /* 8H */ ushort sm_size; /* CH */ uint sm_address; /* 10H */ char sm_fill[16]; /* 20H */ }; struct c_trace { unsigned tracebuffer[1024]; int traceno, tracefirst; }; #define CARD_TR_OPEN 1 #define CARD_TR_CLOSE 2 #define CARD_TR_READ 3 /* followed by UOFFSET */ #define CARD_TR_WRITE 4 /* followed by UOFFSET */ #define CARD_TR_SETBOOT 5 #define CARD_TR_XSEND 6 #define CARD_TR_INTR 7 #define CARD_TR_INTTO386 8 #define CARD_TR_FAULT 9 #define CARD_TR_CREDIT 10 #define CARD_TR_BUFFER 11 #define CARD_TR_TRANSF 12 #define CARD_TR_DROP 13 #define CARD_TR_UOFFSET 14 #define CARD_TR_RELAYINT 15 #define CARD_TR_DELAYINT 16 #define CARD_TR_SENDINT 17 #define CARD_TR_RELEASE 18 /* description of a card */ /* An array of these are initialized from sdevice defines */ /* The unit field contains information on: card type 2'nd unit no for values of card type se msl.h RCxxx_TYPE */ #define CARD_2ND 0x100 struct card_desc { char c_ctype; /* card type */ char c_dmano; /* dma channel */ short c_intno; /* int number */ int c_start; /* io start addr */ int c_reset; /* io reset addr */ int c_intack; /* int ack io addr */ int c_intaddr; /* int io addr */ int (*c_initprog)(); /* init routine */ }; /* This structure descripes a interaction for a driver. card_inter(uno, lang, &inter_info) will initialize it. */ struct inter_info { caddr_t ii_addr; /* 386 virtual address of window */ int ii_size; /* size of the window */ ushort ii_segment; /* 64k physical memory segment */ ushort ii_offset; /* 64k physical memory offset in segment */ int ii_res_i; char ii_type; /* The card type */ char ii_res[3]; }; #if 0 /* This structure is used to descripe the memory that has been allocated for the cards. */ struct card_win_map { caddr_t wm_virt; /* 386 virtual address of the window */ paddr_t wm_phys; /* Physical memory address of the window */ int wm_size; /* the size of the window */ int wm_flag; /* Status' */ }; #define CWM_NONE 0x1 /* Unused slot */ #define CWM_FREE 0x2 /* Allocated memory unused */ #define CWM_USED 0x3 /* Allocated memory used */ #endif