Annotation of lucent/sys/src/boot/pc/dat.h, revision 1.1.1.1

1.1       root        1: typedef struct List {
                      2:        void    *next;
                      3: } List;
                      4: 
                      5: typedef struct Alarm {
                      6:        List;
                      7:        int     busy;
                      8:        long    dt;
                      9:        void    (*f)(void*);
                     10:        void    *arg;
                     11: } Alarm;
                     12: 
                     13: typedef struct IOQ IOQ;
                     14: typedef struct IOQ {
                     15:        uchar   buf[4096];
                     16:        uchar   *in;
                     17:        uchar   *out;
                     18:        int     state;
                     19:        int     (*getc)(IOQ*);
                     20:        int     (*putc)(IOQ*, int);
                     21:        void    *ptr;
                     22: };
                     23: 
                     24: enum {
                     25:        Eaddrlen        = 6,
                     26:        ETHERMINTU      = 60,           /* minimum transmit size */
                     27:        ETHERMAXTU      = 1514,         /* maximum transmit size */
                     28:        ETHERHDRSIZE    = 14,           /* size of an ethernet header */
                     29: 
                     30:        MaxEther        = 2,
                     31: };
                     32: 
                     33: typedef struct {
                     34:        uchar   d[Eaddrlen];
                     35:        uchar   s[Eaddrlen];
                     36:        uchar   type[2];
                     37:        uchar   data[1500];
                     38:        uchar   crc[4];
                     39: } Etherpkt;
                     40: 
                     41: enum {
                     42:        Maxxfer         = 16*1024,      /* maximum transfer size/cmd */
                     43:        Npart           = 8+2,          /* 8 sub partitions, disk, and partition */
                     44: };
                     45: 
                     46: typedef struct {
                     47:        ulong   start;
                     48:        ulong   end;
                     49:        char    name[NAMELEN+1];
                     50: } Partition;
                     51: 
                     52: typedef struct {
                     53:        int     online;
                     54:        int     npart;          /* number of real partitions */
                     55:        Partition p[Npart];
                     56:        ulong   offset;
                     57:        Partition *current;     /* current partition */
                     58: 
                     59:        ulong   cap;            /* total bytes */
                     60:        int     bytes;          /* bytes/sector */
                     61:        int     sectors;        /* sectors/track */
                     62:        int     heads;          /* heads/cyl */
                     63:        long    cyl;            /* cylinders/drive */
                     64: 
                     65:        char    lba;            /* true if drive has logical block addressing */
                     66:        char    multi;          /* non-zero if drive does multiple block xfers */
                     67: } Disc;
                     68: 
                     69: enum {
                     70:        ScsiTestunit    = 0x00,
                     71:        ScsiExtsens     = 0x03,
                     72:        ScsiInquiry     = 0x12,
                     73:        ScsiModesense   = 0x1a,
                     74:        ScsiStartunit   = 0x1B,
                     75:        ScsiStopunit    = 0x1B,
                     76:        ScsiGetcap      = 0x25,
                     77:        ScsiRead        = 0x08,
                     78:        ScsiWrite       = 0x0a,
                     79:        ScsiExtread     = 0x28,
                     80:        ScsiExtwrite    = 0x2a,
                     81: 
                     82:        /* data direction */
                     83:        ScsiIn          = 1,
                     84:        ScsiOut         = 0,
                     85: };
                     86: 
                     87: typedef struct Scsibuf Scsibuf;
                     88: typedef struct Scsibuf {
                     89:        void*           virt;
                     90:        void*           phys;
                     91:        Scsibuf*        next;
                     92: };
                     93: 
                     94: typedef struct Scsidata {
                     95:        uchar*          base;
                     96:        uchar*          lim;
                     97:        uchar*          ptr;
                     98: } Scsidata;
                     99: 
                    100: typedef struct Ureg Ureg;
                    101: 
                    102: typedef struct Scsi {
                    103:        ulong           pid;
                    104:        ushort          target;
                    105:        ushort          lun;
                    106:        ushort          rflag;
                    107:        ushort          status;
                    108:        Scsidata        cmd;
                    109:        Scsidata        data;
                    110:        Scsibuf*        b;
                    111:        uchar*          save;
                    112:        uchar           cmdblk[16];
                    113: } Scsi;
                    114: 
                    115: typedef struct Segdesc {
                    116:        ulong   d0;
                    117:        ulong   d1;
                    118: } Segdesc;
                    119: 
                    120: typedef struct Mach {
                    121:        ulong   ticks;                  /* of the clock since boot time */
                    122:        void    *alarm;                 /* alarms bound to this clock */
                    123: } Mach;
                    124: 
                    125: extern Mach *m;
                    126: 
                    127: #define I_MAGIC                ((((4*11)+0)*11)+7)
                    128: 
                    129: typedef struct Exec Exec;
                    130: struct Exec
                    131: {
                    132:        uchar   magic[4];               /* magic number */
                    133:        uchar   text[4];                /* size of text segment */
                    134:        uchar   data[4];                /* size of initialized data */
                    135:        uchar   bss[4];                 /* size of uninitialized data */
                    136:        uchar   syms[4];                /* size of symbol table */
                    137:        uchar   entry[4];               /* entry point */
                    138:        uchar   spsz[4];                /* size of sp/pc offset table */
                    139:        uchar   pcsz[4];                /* size of pc/line number table */
                    140: };
                    141: 
                    142: /*
                    143:  *  bootline passed by boot program
                    144:  */
                    145: #define BOOTLINE ((char *)0x80000100)
                    146: 
                    147: /*
                    148:  * Where we leave configuration info.
                    149:  */
                    150: #define BOOTARGS       ((char*)(KZERO|1024))
                    151: #define        BOOTARGSLEN     1024
                    152: #define        MAXCONF         32
                    153: 
                    154: typedef struct  ISAConf {
                    155:        char    type[NAMELEN];
                    156:        ulong   port;
                    157:        ulong   irq;
                    158:        ulong   mem;
                    159:        ulong   size;
                    160:        uchar   ea[6];
                    161: } ISAConf;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.