|
|
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 - downloadIndex: T U
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