Annotation of lucent/sys/src/boot/pc/dat.h, revision 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.