⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 osst.h

📁 讲述linux的初始化过程
💻 H
📖 第 1 页 / 共 2 页
字号:
/* *	$Header: /home/cvsroot/Driver/osst.h,v 1.9 2000/10/08 03:09:43 riede Exp $ */#include <asm/byteorder.h>#include <linux/config.h>#ifdef CONFIG_DEVFS_FS#include <linux/devfs_fs_kernel.h>#endif/*	FIXME - rename and use the following two types or delete them! *              and the types really should go to st.h anyway... *	INQUIRY packet command - Data Format (From Table 6-8 of QIC-157C) */typedef struct {	unsigned	device_type	:5;	/* Peripheral Device Type */	unsigned	reserved0_765	:3;	/* Peripheral Qualifier - Reserved */	unsigned	reserved1_6t0	:7;	/* Reserved */	unsigned	rmb		:1;	/* Removable Medium Bit */	unsigned	ansi_version	:3;	/* ANSI Version */	unsigned	ecma_version	:3;	/* ECMA Version */	unsigned	iso_version	:2;	/* ISO Version */	unsigned	response_format :4;	/* Response Data Format */	unsigned	reserved3_45	:2;	/* Reserved */	unsigned	reserved3_6	:1;	/* TrmIOP - Reserved */	unsigned	reserved3_7	:1;	/* AENC - Reserved */	u8		additional_length;	/* Additional Length (total_length-4) */	u8		rsv5, rsv6, rsv7;	/* Reserved */	u8		vendor_id[8];		/* Vendor Identification */	u8		product_id[16];		/* Product Identification */	u8		revision_level[4];	/* Revision Level */	u8		vendor_specific[20];	/* Vendor Specific - Optional */	u8		reserved56t95[40];	/* Reserved - Optional */						/* Additional information may be returned */} idetape_inquiry_result_t;/* *	READ POSITION packet command - Data Format (From Table 6-57) */typedef struct {	unsigned	reserved0_10	:2;	/* Reserved */	unsigned	bpu		:1;	/* Block Position Unknown */		unsigned	reserved0_543	:3;	/* Reserved */	unsigned	eop		:1;	/* End Of Partition */	unsigned	bop		:1;	/* Beginning Of Partition */	u8		partition;		/* Partition Number */	u8		reserved2, reserved3;	/* Reserved */	u32		first_block;		/* First Block Location */	u32		last_block;		/* Last Block Location (Optional) */	u8		reserved12;		/* Reserved */	u8		blocks_in_buffer[3];	/* Blocks In Buffer - (Optional) */	u32		bytes_in_buffer;	/* Bytes In Buffer (Optional) */} idetape_read_position_result_t;/* *      Follows structures which are related to the SELECT SENSE / MODE SENSE *      packet commands.  */#define COMPRESSION_PAGE           0x0f#define COMPRESSION_PAGE_LENGTH    16#define CAPABILITIES_PAGE          0x2a#define CAPABILITIES_PAGE_LENGTH   20#define TAPE_PARAMTR_PAGE          0x2b#define TAPE_PARAMTR_PAGE_LENGTH   16#define NUMBER_RETRIES_PAGE        0x2f#define NUMBER_RETRIES_PAGE_LENGTH 4#define BLOCK_SIZE_PAGE            0x30#define BLOCK_SIZE_PAGE_LENGTH     4#define BUFFER_FILLING_PAGE        0x33#define BUFFER_FILLING_PAGE_LENGTH #define VENDOR_IDENT_PAGE          0x36#define VENDOR_IDENT_PAGE_LENGTH   8#define LOCATE_STATUS_PAGE         0x37#define LOCATE_STATUS_PAGE_LENGTH  0#define MODE_HEADER_LENGTH         4/* *	REQUEST SENSE packet command result - Data Format. */typedef struct {	unsigned	error_code	:7;	/* Current of deferred errors */	unsigned	valid		:1;	/* The information field conforms to QIC-157C */	u8		reserved1	:8;	/* Segment Number - Reserved */	unsigned	sense_key	:4;	/* Sense Key */	unsigned	reserved2_4	:1;	/* Reserved */	unsigned	ili		:1;	/* Incorrect Length Indicator */	unsigned	eom		:1;	/* End Of Medium */	unsigned	filemark 	:1;	/* Filemark */	u32		information __attribute__ ((packed));	u8		asl;			/* Additional sense length (n-7) */	u32		command_specific;	/* Additional command specific information */	u8		asc;			/* Additional Sense Code */	u8		ascq;			/* Additional Sense Code Qualifier */	u8		replaceable_unit_code;	/* Field Replaceable Unit Code */	unsigned	sk_specific1 	:7;	/* Sense Key Specific */	unsigned	sksv		:1;	/* Sense Key Specific information is valid */	u8		sk_specific2;		/* Sense Key Specific */	u8		sk_specific3;		/* Sense Key Specific */	u8		pad[2];			/* Padding to 20 bytes */} idetape_request_sense_result_t;/* *      Mode Parameter Header for the MODE SENSE packet command */typedef struct {        u8              mode_data_length;       /* Length of the following data transfer */        u8              medium_type;            /* Medium Type */        u8              dsp;                    /* Device Specific Parameter */        u8              bdl;                    /* Block Descriptor Length */} osst_mode_parameter_header_t;/* *      Mode Parameter Block Descriptor the MODE SENSE packet command * *      Support for block descriptors is optional. */typedef struct {        u8              density_code;           /* Medium density code */        u8              blocks[3];              /* Number of blocks */        u8              reserved4;              /* Reserved */        u8              length[3];              /* Block Length */} osst_parameter_block_descriptor_t;/* *      The Data Compression Page, as returned by the MODE SENSE packet command. */typedef struct {#if   defined(__BIG_ENDIAN_BITFIELD)        unsigned        ps              :1;        unsigned        reserved0       :1;     /* Reserved */	unsigned        page_code       :6;     /* Page Code - Should be 0xf */#elif defined(__LITTLE_ENDIAN_BITFIELD)	unsigned        page_code       :6;     /* Page Code - Should be 0xf */        unsigned        reserved0       :1;     /* Reserved */        unsigned        ps              :1;#else#error "Please fix <asm/byteorder.h>"#endif        u8              page_length;            /* Page Length - Should be 14 */#if   defined(__BIG_ENDIAN_BITFIELD)        unsigned        dce             :1;     /* Data Compression Enable */        unsigned        dcc             :1;     /* Data Compression Capable */	unsigned        reserved2       :6;     /* Reserved */#elif defined(__LITTLE_ENDIAN_BITFIELD)	unsigned        reserved2       :6;     /* Reserved */        unsigned        dcc             :1;     /* Data Compression Capable */        unsigned        dce             :1;     /* Data Compression Enable */#else#error "Please fix <asm/byteorder.h>"#endif#if   defined(__BIG_ENDIAN_BITFIELD)        unsigned        dde             :1;     /* Data Decompression Enable */        unsigned        red             :2;     /* Report Exception on Decompression */	unsigned        reserved3       :5;     /* Reserved */#elif defined(__LITTLE_ENDIAN_BITFIELD)	unsigned        reserved3       :5;     /* Reserved */        unsigned        red             :2;     /* Report Exception on Decompression */        unsigned        dde             :1;     /* Data Decompression Enable */#else#error "Please fix <asm/byteorder.h>"#endif        u32             ca;                     /* Compression Algorithm */        u32             da;                     /* Decompression Algorithm */        u8              reserved[4];            /* Reserved */} osst_data_compression_page_t;/* *      The Medium Partition Page, as returned by the MODE SENSE packet command. */typedef struct {#if   defined(__BIG_ENDIAN_BITFIELD)        unsigned        ps              :1;        unsigned        reserved1_6     :1;     /* Reserved */	unsigned        page_code       :6;     /* Page Code - Should be 0x11 */#elif defined(__LITTLE_ENDIAN_BITFIELD)	unsigned        page_code       :6;     /* Page Code - Should be 0x11 */        unsigned        reserved1_6     :1;     /* Reserved */        unsigned        ps              :1;#else#error "Please fix <asm/byteorder.h>"#endif        u8              page_length;            /* Page Length - Should be 6 */        u8              map;                    /* Maximum Additional Partitions - Should be 0 */        u8              apd;                    /* Additional Partitions Defined - Should be 0 */#if   defined(__BIG_ENDIAN_BITFIELD)        unsigned        fdp             :1;     /* Fixed Data Partitions */        unsigned        sdp             :1;     /* Should be 0 */        unsigned        idp             :1;     /* Should be 0 */        unsigned        psum            :2;     /* Should be 0 */	unsigned        reserved4_012   :3;     /* Reserved */#elif defined(__LITTLE_ENDIAN_BITFIELD)	unsigned        reserved4_012   :3;     /* Reserved */        unsigned        psum            :2;     /* Should be 0 */        unsigned        idp             :1;     /* Should be 0 */        unsigned        sdp             :1;     /* Should be 0 */        unsigned        fdp             :1;     /* Fixed Data Partitions */#else#error "Please fix <asm/byteorder.h>"#endif        u8              mfr;                    /* Medium Format Recognition */        u8              reserved[2];            /* Reserved */} osst_medium_partition_page_t;/* *      Capabilities and Mechanical Status Page */typedef struct {#if   defined(__BIG_ENDIAN_BITFIELD)        unsigned        reserved1_67    :2;	unsigned        page_code       :6;     /* Page code - Should be 0x2a */#elif defined(__LITTLE_ENDIAN_BITFIELD)	unsigned        page_code       :6;     /* Page code - Should be 0x2a */        unsigned        reserved1_67    :2;#else#error "Please fix <asm/byteorder.h>"#endif        u8              page_length;            /* Page Length - Should be 0x12 */        u8              reserved2, reserved3;#if   defined(__BIG_ENDIAN_BITFIELD)        unsigned        reserved4_67    :2;        unsigned        sprev           :1;     /* Supports SPACE in the reverse direction */        unsigned        reserved4_1234  :4;	unsigned        ro              :1;     /* Read Only Mode */#elif defined(__LITTLE_ENDIAN_BITFIELD)	unsigned        ro              :1;     /* Read Only Mode */        unsigned        reserved4_1234  :4;        unsigned        sprev           :1;     /* Supports SPACE in the reverse direction */        unsigned        reserved4_67    :2;#else#error "Please fix <asm/byteorder.h>"#endif#if   defined(__BIG_ENDIAN_BITFIELD)        unsigned        reserved5_67    :2;        unsigned        qfa             :1;     /* Supports the QFA two partition formats */        unsigned        reserved5_4     :1;        unsigned        efmt            :1;     /* Supports ERASE command initiated formatting */	unsigned        reserved5_012   :3;#elif defined(__LITTLE_ENDIAN_BITFIELD)	unsigned        reserved5_012   :3;        unsigned        efmt            :1;     /* Supports ERASE command initiated formatting */        unsigned        reserved5_4     :1;        unsigned        qfa             :1;     /* Supports the QFA two partition formats */        unsigned        reserved5_67    :2;#else#error "Please fix <asm/byteorder.h>"#endif#if   defined(__BIG_ENDIAN_BITFIELD)        unsigned        cmprs           :1;     /* Supports data compression */        unsigned        ecc             :1;     /* Supports error correction */	unsigned        reserved6_45    :2;     /* Reserved */          unsigned        eject           :1;     /* The device can eject the volume */        unsigned        prevent         :1;     /* The device defaults in the prevent state after power up */        unsigned        locked          :1;     /* The volume is locked */	unsigned        lock            :1;     /* Supports locking the volume */#elif defined(__LITTLE_ENDIAN_BITFIELD)	unsigned        lock            :1;     /* Supports locking the volume */        unsigned        locked          :1;     /* The volume is locked */        unsigned        prevent         :1;     /* The device defaults in the prevent state after power up */        unsigned        eject           :1;     /* The device can eject the volume */	unsigned        reserved6_45    :2;     /* Reserved */          unsigned        ecc             :1;     /* Supports error correction */        unsigned        cmprs           :1;     /* Supports data compression */#else#error "Please fix <asm/byteorder.h>"#endif#if   defined(__BIG_ENDIAN_BITFIELD)        unsigned        blk32768        :1;     /* slowb - the device restricts the byte count for PIO */                                                /* transfers for slow buffer memory ??? */                                                /* Also 32768 block size in some cases */        unsigned        reserved7_3_6   :4;        unsigned        blk1024         :1;     /* Supports 1024 bytes block size */        unsigned        blk512          :1;     /* Supports 512 bytes block size */	unsigned        reserved7_0     :1;#elif defined(__LITTLE_ENDIAN_BITFIELD)	unsigned        reserved7_0     :1;        unsigned        blk512          :1;     /* Supports 512 bytes block size */        unsigned        blk1024         :1;     /* Supports 1024 bytes block size */        unsigned        reserved7_3_6   :4;        unsigned        blk32768        :1;     /* slowb - the device restricts the byte count for PIO */                                                /* transfers for slow buffer memory ??? */                                                /* Also 32768 block size in some cases */#else#error "Please fix <asm/byteorder.h>"#endif        u16             max_speed;              /* Maximum speed supported in KBps */        u8              reserved10, reserved11;        u16             ctl;                    /* Continuous Transfer Limit in blocks */        u16             speed;                  /* Current Speed, in KBps */        u16             buffer_size;            /* Buffer Size, in 512 bytes */        u8              reserved18, reserved19;} osst_capabilities_page_t;/* *      Block Size Page */typedef struct {#if   defined(__BIG_ENDIAN_BITFIELD)        unsigned        ps              :1;        unsigned        reserved1_6     :1;	unsigned        page_code       :6;     /* Page code - Should be 0x30 */#elif defined(__LITTLE_ENDIAN_BITFIELD)	unsigned        page_code       :6;     /* Page code - Should be 0x30 */        unsigned        reserved1_6     :1;        unsigned        ps              :1;#else#error "Please fix <asm/byteorder.h>"#endif        u8              page_length;            /* Page Length - Should be 2 */        u8              reserved2;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -