!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/drivers/scsi/   drwxr-xr-x
Free 318.35 GB of 458.09 GB (69.49%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     psi_dale.h (18.88 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/****************************************************************************
 * Perceptive Solutions, Inc. PCI-2220I device driver for Linux.
 *
 * psi_dalei.h - Linux Host Driver for PCI-2220i EIDE Adapters
 *
 * Copyright (c) 1997-1999 Perceptive Solutions, Inc.
 * All Rights Reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that redistributions of source
 * code retain the above copyright notice and this comment without
 * modification.
 *
 * Technical updates and product information at:
 *  http://www.psidisk.com
 *
 * Please send questions, comments, bug reports to:
 *  tech@psidisk.com Technical Support
 *
 ****************************************************************************/

/************************************************/
/*        Some defines that we like                 */
/************************************************/
#define    CHAR        char
#define    UCHAR        unsigned char
#define    SHORT        short
#define    USHORT        unsigned short
#define    BOOL        unsigned short
#define    LONG        long
#define    ULONG        unsigned long
#define    VOID        void

/************************************************/
/*        Dale PCI setup                            */
/************************************************/
#define    VENDOR_PSI            0x1256
#define    DEVICE_DALE_1        0x4401        /* 'D1' */
#define    DEVICE_BIGD_1        0x4201        /* 'B1' */
#define    DEVICE_BIGD_2        0x4202        /* 'B2' */

/************************************************/
/*        Misc konstants                            */
/************************************************/
#define    DALE_MAXDRIVES            4
#define    BIGD_MAXDRIVES            8
#define    SECTORSXFER                8
#define    ATAPI_TRANSFER            8192
#define    BYTES_PER_SECTOR        512
#define    DEFAULT_TIMING_MODE        5

/************************************************/
/*        EEPROM locations                        */
/************************************************/
#define    DALE_FLASH_PAGE_SIZE    128                // number of bytes per page
#define    DALE_FLASH_SIZE            65536L

#define    DALE_FLASH_BIOS            0x00080000L        // BIOS base address
#define    DALE_FLASH_SETUP        0x00088000L        // SETUP PROGRAM base address offset from BIOS
#define    DALE_FLASH_RAID            0x00088400L        // RAID signature storage
#define    DALE_FLASH_FACTORY        0x00089000L        // FACTORY data base address offset from BIOS

#define    DALE_FLASH_BIOS_SIZE    32768U            // size of FLASH BIOS REGION

/************************************************/
/*        DALE Register address offsets            */
/************************************************/
#define    REG_DATA                    0x80
#define    REG_ERROR                    0x84
#define    REG_SECTOR_COUNT            0x88
#define    REG_LBA_0                    0x8C
#define    REG_LBA_8                    0x90
#define    REG_LBA_16                    0x94
#define    REG_LBA_24                    0x98
#define    REG_STAT_CMD                0x9C
#define    REG_STAT_SEL                0xA0
#define    REG_FAIL                    0xB0
#define    REG_ALT_STAT                0xB8
#define    REG_DRIVE_ADRS                0xBC

#define    DALE_DATA_SLOW                0x00040000L
#define    DALE_DATA_MODE2                0x00040000L
#define    DALE_DATA_MODE3                0x00050000L
#define    DALE_DATA_MODE4                0x00060000L
#define    DALE_DATA_MODE5                0x00070000L

#define    BIGD_DATA_SLOW                0x00000000L
#define    BIGD_DATA_MODE0                0x00000000L
#define    BIGD_DATA_MODE2                0x00000000L
#define    BIGD_DATA_MODE3                0x00000008L
#define    BIGD_DATA_MODE4                0x00000010L
#define    BIGD_DATA_MODE5                0x00000020L

#define RTR_LOCAL_RANGE                0x000
#define RTR_LOCAL_REMAP                0x004
#define RTR_EXP_RANGE                0x010
#define RTR_EXP_REMAP                0x014
#define RTR_REGIONS                    0x018
#define RTR_DM_MASK                    0x01C
#define RTR_DM_LOCAL_BASE            0x020
#define RTR_DM_IO_BASE                0x024
#define RTR_DM_PCI_REMAP            0x028
#define RTR_DM_IO_CONFIG            0x02C
#define RTR_MAILBOX                    0x040
#define RTR_LOCAL_DOORBELL            0x060
#define RTR_PCI_DOORBELL            0x064
#define RTR_INT_CONTROL_STATUS         0x068
#define RTR_EEPROM_CONTROL_STATUS    0x06C

#define RTR_DMA0_MODE                0x0080
#define RTR_DMA0_PCI_ADDR            0x0084
#define RTR_DMA0_LOCAL_ADDR            0x0088
#define RTR_DMA0_COUNT                0x008C
#define RTR_DMA0_DESC_PTR            0x0090
#define RTR_DMA1_MODE                0x0094
#define RTR_DMA1_PCI_ADDR            0x0098
#define RTR_DMA1_LOCAL_ADDR            0x009C
#define RTR_DMA1_COUNT                0x00A0
#define RTR_DMA1_DESC_PTR            0x00A4
#define RTR_DMA_COMMAND_STATUS        0x00A8
#define RTR_DMA_ARB0                0x00AC
#define RTR_DMA_ARB1                0x00B0

#define RTL_DMA0_MODE                0x00
#define RTL_DMA0_PCI_ADDR            0x04
#define RTL_DMA0_LOCAL_ADDR            0x08
#define RTL_DMA0_COUNT                0x0C
#define RTL_DMA0_DESC_PTR            0x10
#define RTL_DMA1_MODE                0x14
#define RTL_DMA1_PCI_ADDR            0x18
#define RTL_DMA1_LOCAL_ADDR            0x1C
#define RTL_DMA1_COUNT                0x20
#define RTL_DMA1_DESC_PTR            0x24
#define RTL_DMA_COMMAND_STATUS        0x28
#define RTL_DMA_ARB0                0x2C
#define RTL_DMA_ARB1                0x30

/************************************************/
/*        Dale Scratchpad locations                */
/************************************************/
#define    DALE_CHANNEL_DEVICE_0        0        // device channel locations
#define    DALE_CHANNEL_DEVICE_1        1
#define    DALE_CHANNEL_DEVICE_2        2
#define    DALE_CHANNEL_DEVICE_3        3

#define    DALE_SCRATCH_DEVICE_0        4        // device type codes
#define    DALE_SCRATCH_DEVICE_1        5
#define DALE_SCRATCH_DEVICE_2        6
#define    DALE_SCRATCH_DEVICE_3        7

#define    DALE_RAID_0_STATUS            8
#define DALE_RAID_1_STATUS            9

#define    DALE_TIMING_MODE            12        // bus master timing mode (2, 3, 4, 5)
#define    DALE_NUM_DRIVES                13        // number of addressable drives on this board
#define    DALE_RAID_ON                14         // RAID status On
#define    DALE_LAST_ERROR                15        // Last error code from BIOS

/************************************************/
/*        BigD Scratchpad locations                */
/************************************************/
#define    BIGD_DEVICE_0            0        // device channel locations
#define    BIGD_DEVICE_1            1
#define    BIGD_DEVICE_2            2
#define    BIGD_DEVICE_3            3

#define    BIGD_DEVICE_4            4        // device type codes
#define    BIGD_DEVICE_5            5
#define BIGD_DEVICE_6            6
#define    BIGD_DEVICE_7            7

#define    BIGD_ALARM_IMAGE        11        // ~image of alarm fail register        
#define    BIGD_TIMING_MODE        12        // bus master timing mode (2, 3, 4, 5)
#define    BIGD_NUM_DRIVES            13        // number of addressable drives on this board
#define    BIGD_RAID_ON            14         // RAID status is on for the whole board
#define    BIGD_LAST_ERROR            15        // Last error code from BIOS

#define    BIGD_RAID_0_STATUS        16
#define BIGD_RAID_1_STATUS        17
#define    BIGD_RAID_2_STATUS        18
#define    BIGD_RAID_3_STATUS        19
#define    BIGD_RAID_4_STATUS        20
#define BIGD_RAID_5_STATUS        21
#define    BIGD_RAID_6_STATUS        22
#define    BIGD_RAID_7_STATUS        23

/************************************************/
/*        Dale cable select bits                    */
/************************************************/
#define    SEL_NONE                    0x00
#define    SEL_1                        0x01
#define    SEL_2                        0x02
#define    SEL_3                        0x04
#define    SEL_4                        0x08
#define    SEL_NEW_SPEED_1                0x20
#define    SEL_COPY                    0x40
#define    SEL_IRQ_OFF                    0x80

/************************************************/
/*        Device/Geometry controls                */
/************************************************/
#define GEOMETRY_NONE                 0x0                // No device
#define GEOMETRY_SET                0x1                // Geometry set
#define    GEOMETRY_LBA                0x2                // Geometry set in default LBA mode
#define    GEOMETRY_PHOENIX            0x3                // Geometry set in Pheonix BIOS compatibility mode

#define    DEVICE_NONE                    0x0                // No device present
#define    DEVICE_INACTIVE                0x1                // device present but not registered active
#define    DEVICE_ATAPI                0x2                // ATAPI device (CD_ROM, Tape, Etc...)
#define    DEVICE_DASD_NONLBA            0x3                // Non LBA incompatible device
#define    DEVICE_DASD_LBA                0x4                // LBA compatible device

/************************************************/
/*        BigD fail register bits                    */
/************************************************/
#define    FAIL_NONE                0x00
#define    FAIL_0                    0x01
#define    FAIL_1                    0x02
#define    FAIL_2                    0x04
#define    FAIL_MULTIPLE            0x08
#define    FAIL_GOOD                0x20
#define    FAIL_AUDIBLE            0x40
#define    FAIL_ANY                0x80

/************************************************/
/*        Setup Structure Definitions                */
/************************************************/
typedef struct        // device setup parameters
    {
    UCHAR    geometryControl;    // geometry control flags
    UCHAR    device;                // device code
    USHORT    sectors;            // number of sectors per track
    USHORT    heads;                // number of heads
    USHORT    cylinders;            // number of cylinders for this device
    ULONG    blocks;                // number of blocks on device
    ULONG    realCapacity;        // number of real blocks on this device for drive changed testing
    } SETUP_DEVICE, *PSETUP_DEVICE;

typedef struct        // master setup structure
    {
    USHORT            startupDelay;
    BOOL            promptBIOS;
    BOOL            fastFormat;
    BOOL            shareInterrupt;
    BOOL            rebootRebuild;
    USHORT            timingMode;
    USHORT            spare5;
    USHORT            spare6;
    SETUP_DEVICE    setupDevice[BIGD_MAXDRIVES];
    }    SETUP, *PSETUP;

/************************************************/
/*        RAID Structure Definitions                */
/************************************************/
typedef    struct
    {
    UCHAR    signature;            // 0x55 our mirror signature
    UCHAR    status;                // current status bits
    UCHAR    pairIdentifier;        // unique identifier for pair
    ULONG    reconstructPoint;    // recontruction point for hot reconstruct
    }    DISK_MIRROR;

typedef struct    DEVICE_RAID1
    {
    long        TotalSectors;
    DISK_MIRROR DiskRaid1;
    }    DEVICE_RAID1, *PDEVICE_RAID1;

#define    DISK_MIRROR_POSITION    0x01A8
#define    SIGNATURE                0x55

#define    MASK_SERIAL_NUMBER    0x0FFE            // mask for serial number matching
#define    MASK_SERIAL_UNIT    0x0001            // mask for unit portion of serial number

// Status bits
#define    UCBF_MIRRORED        0x0010                                // drive has a pair
#define    UCBF_MATCHED        0x0020                                // drive pair is matched
#define    UCBF_SURVIVOR        0x0040                                // this unit is a survivor of a pair
#define    UCBF_REBUILD        0x0080                                // rebuild in progress on this device

// SCSI controls for RAID
#define    SC_MY_RAID            0xBF            // our special CDB command byte for Win95... interface
#define    MY_SCSI_QUERY1        0x32            // byte 1 subcommand to query driver for RAID 1 informatation
#define    MY_SCSI_REBUILD        0x40            // byte 1 subcommand to reconstruct a mirrored pair
#define MY_SCSI_DEMOFAIL    0x54            // byte 1 subcommand for RAID failure demonstration
#define    MY_SCSI_ALARMMUTE    0x60            // byte 1 subcommand to mute any alarm currently on

/************************************************/
/*        Timeout konstants                         */
/************************************************/
#define    TIMEOUT_READY                100            // 100 mSec
#define    TIMEOUT_DRQ                    300            // 300 mSec
#define    TIMEOUT_DATA                (3 * HZ)    // 3 seconds

/************************************************/
/*        Misc. macros                             */
/************************************************/
#define ANY2SCSI(up, p)                    \
((UCHAR *)up)[0] = (((ULONG)(p)) >> 8);    \
((UCHAR *)up)[1] = ((ULONG)(p));

#define SCSI2LONG(up)                    \
( (((long)*(((UCHAR *)up))) << 16)        \
+ (((long)(((UCHAR *)up)[1])) << 8)        \
+ ((long)(((UCHAR *)up)[2])) )

#define XANY2SCSI(up, p)                \
((UCHAR *)up)[0] = ((long)(p)) >> 24;    \
((UCHAR *)up)[1] = ((long)(p)) >> 16;    \
((UCHAR *)up)[2] = ((long)(p)) >> 8;    \
((UCHAR *)up)[3] = ((long)(p));

#define XSCSI2LONG(up)                    \
( (((long)(((UCHAR *)up)[0])) << 24)    \
+ (((long)(((UCHAR *)up)[1])) << 16)    \
+ (((long)(((UCHAR *)up)[2])) <<  8)    \
+ ((long)(((UCHAR *)up)[3])) )

#define    SelectSpigot(padapter,spigot)    outb_p (spigot, padapter->regStatSel)
#define WriteCommand(padapter,cmd)        outb_p (cmd, padapter->regStatCmd)
#define    AtapiDevice(padapter,b)            outb_p (b, padapter->regLba24);
#define    AtapiCountLo(padapter,b)        outb_p (b, padapter->regLba8)
#define    AtapiCountHi(padapter,b)        outb_p (b, padapter->regLba16)

/************************************************/
/*        SCSI CDB operation codes                 */
/************************************************/
#define SCSIOP_TEST_UNIT_READY        0x00
#define SCSIOP_REZERO_UNIT            0x01
#define SCSIOP_REWIND                0x01
#define SCSIOP_REQUEST_BLOCK_ADDR    0x02
#define SCSIOP_REQUEST_SENSE        0x03
#define SCSIOP_FORMAT_UNIT            0x04
#define SCSIOP_READ_BLOCK_LIMITS    0x05
#define SCSIOP_REASSIGN_BLOCKS        0x07
#define SCSIOP_READ6                0x08
#define SCSIOP_RECEIVE                0x08
#define SCSIOP_WRITE6                0x0A
#define SCSIOP_PRINT                0x0A
#define SCSIOP_SEND                    0x0A
#define SCSIOP_SEEK6                0x0B
#define SCSIOP_TRACK_SELECT            0x0B
#define SCSIOP_SLEW_PRINT            0x0B
#define SCSIOP_SEEK_BLOCK            0x0C
#define SCSIOP_PARTITION            0x0D
#define SCSIOP_READ_REVERSE            0x0F
#define SCSIOP_WRITE_FILEMARKS        0x10
#define SCSIOP_FLUSH_BUFFER            0x10
#define SCSIOP_SPACE                0x11
#define SCSIOP_INQUIRY                0x12
#define SCSIOP_VERIFY6                0x13
#define SCSIOP_RECOVER_BUF_DATA        0x14
#define SCSIOP_MODE_SELECT            0x15
#define SCSIOP_RESERVE_UNIT            0x16
#define SCSIOP_RELEASE_UNIT            0x17
#define SCSIOP_COPY                    0x18
#define SCSIOP_ERASE                0x19
#define SCSIOP_MODE_SENSE            0x1A
#define SCSIOP_START_STOP_UNIT        0x1B
#define SCSIOP_STOP_PRINT            0x1B
#define SCSIOP_LOAD_UNLOAD            0x1B
#define SCSIOP_RECEIVE_DIAGNOSTIC    0x1C
#define SCSIOP_SEND_DIAGNOSTIC        0x1D
#define SCSIOP_MEDIUM_REMOVAL        0x1E
#define SCSIOP_READ_CAPACITY        0x25
#define SCSIOP_READ                    0x28
#define SCSIOP_WRITE                0x2A
#define SCSIOP_SEEK                    0x2B
#define SCSIOP_LOCATE                0x2B
#define SCSIOP_WRITE_VERIFY            0x2E
#define SCSIOP_VERIFY                0x2F
#define SCSIOP_SEARCH_DATA_HIGH        0x30
#define SCSIOP_SEARCH_DATA_EQUAL    0x31
#define SCSIOP_SEARCH_DATA_LOW        0x32
#define SCSIOP_SET_LIMITS            0x33
#define SCSIOP_READ_POSITION        0x34
#define SCSIOP_SYNCHRONIZE_CACHE    0x35
#define SCSIOP_COMPARE                0x39
#define SCSIOP_COPY_COMPARE            0x3A
#define SCSIOP_WRITE_DATA_BUFF        0x3B
#define SCSIOP_READ_DATA_BUFF        0x3C
#define SCSIOP_CHANGE_DEFINITION    0x40
#define SCSIOP_READ_SUB_CHANNEL        0x42
#define SCSIOP_READ_TOC                0x43
#define SCSIOP_READ_HEADER            0x44
#define SCSIOP_PLAY_AUDIO            0x45
#define SCSIOP_PLAY_AUDIO_MSF        0x47
#define SCSIOP_PLAY_TRACK_INDEX        0x48
#define SCSIOP_PLAY_TRACK_RELATIVE    0x49
#define SCSIOP_PAUSE_RESUME            0x4B
#define SCSIOP_LOG_SELECT            0x4C
#define SCSIOP_LOG_SENSE            0x4D
#define SCSIOP_MODE_SELECT10        0x55
#define SCSIOP_MODE_SENSE10            0x5A
#define SCSIOP_LOAD_UNLOAD_SLOT        0xA6
#define SCSIOP_MECHANISM_STATUS        0xBD
#define SCSIOP_READ_CD                0xBE

// IDE command definitions
#define IDE_COMMAND_ATAPI_RESET        0x08
#define IDE_COMMAND_READ            0x20
#define IDE_COMMAND_WRITE            0x30
#define IDE_COMMAND_RECALIBRATE        0x10
#define IDE_COMMAND_SEEK            0x70
#define IDE_COMMAND_SET_PARAMETERS    0x91
#define IDE_COMMAND_VERIFY            0x40
#define IDE_COMMAND_ATAPI_PACKET    0xA0
#define IDE_COMMAND_ATAPI_IDENTIFY    0xA1
#define    IDE_CMD_READ_MULTIPLE        0xC4
#define    IDE_CMD_WRITE_MULTIPLE        0xC5
#define    IDE_CMD_SET_MULTIPLE        0xC6
#define IDE_COMMAND_IDENTIFY        0xEC

// IDE status definitions
#define IDE_STATUS_ERROR            0x01
#define IDE_STATUS_INDEX            0x02
#define IDE_STATUS_CORRECTED_ERROR    0x04
#define IDE_STATUS_DRQ                0x08
#define IDE_STATUS_DSC                0x10
#define    IDE_STATUS_WRITE_FAULT        0x20
#define IDE_STATUS_DRDY                0x40
#define IDE_STATUS_BUSY                0x80

typedef struct _ATAPI_STATUS
    {
    CHAR    check        :1;
    CHAR    reserved1    :1;
    CHAR    corr        :1;
    CHAR    drq            :1;
    CHAR    dsc            :1;
    CHAR    reserved2    :1;
    CHAR    drdy        :1;
    CHAR    bsy            :1;
    }    ATAPI_STATUS;

typedef struct _ATAPI_REASON
    {
    CHAR    cod            :1;
    CHAR    io            :1;
    CHAR    reserved1    :6;
    }    ATAPI_REASON;

typedef struct _ATAPI_ERROR
    {
    CHAR    ili            :1;
    CHAR    eom            :1;
    CHAR    abort        :1;
    CHAR    mcr            :1;
    CHAR    senseKey    :4;
    }    ATAPI_ERROR;

// IDE error definitions
#define    IDE_ERROR_AMNF                0x01
#define    IDE_ERROR_TKONF                0x02
#define    IDE_ERROR_ABRT                0x04
#define    IDE_ERROR_MCR                0x08
#define    IDE_ERROR_IDFN                0x10
#define    IDE_ERROR_MC                0x20
#define    IDE_ERROR_UNC                0x40
#define    IDE_ERROR_BBK                0x80

// SCSI read capacity structure
typedef    struct _READ_CAPACITY_DATA
    {
    ULONG blks;                /* total blocks (converted to little endian) */
    ULONG blksiz;            /* size of each (converted to little endian) */
    }    READ_CAPACITY_DATA, *PREAD_CAPACITY_DATA;

// SCSI inquiry data
typedef struct _INQUIRYDATA
    {
    UCHAR DeviceType            :5;
    UCHAR DeviceTypeQualifier    :3;
    UCHAR DeviceTypeModifier    :7;
    UCHAR RemovableMedia        :1;
    UCHAR Versions;
    UCHAR ResponseDataFormat;
    UCHAR AdditionalLength;
    UCHAR Reserved[2];
    UCHAR SoftReset                :1;
    UCHAR CommandQueue            :1;
    UCHAR Reserved2                :1;
    UCHAR LinkedCommands        :1;
    UCHAR Synchronous            :1;
    UCHAR Wide16Bit                :1;
    UCHAR Wide32Bit                :1;
    UCHAR RelativeAddressing    :1;
    UCHAR VendorId[8];
    UCHAR ProductId[16];
    UCHAR ProductRevisionLevel[4];
    UCHAR VendorSpecific[20];
    UCHAR Reserved3[40];
    }    INQUIRYDATA, *PINQUIRYDATA;

// IDE IDENTIFY data
#pragma pack (1)
typedef struct _IDENTIFY_DATA
    {
    USHORT    GeneralConfiguration;        //  0
    USHORT    NumberOfCylinders;            //  1
    USHORT    Reserved1;                    //  2
    USHORT    NumberOfHeads;                //  3
    USHORT    UnformattedBytesPerTrack;    //  4
    USHORT    UnformattedBytesPerSector;    //  5
    USHORT    SectorsPerTrack;            //  6
    USHORT    NumBytesISG;                //  7 Byte Len - inter-sector gap
    USHORT    NumBytesSync;                //  8          - sync field
    USHORT    NumWordsVUS;                //  9 Len - Vendor Unique Info
    USHORT    SerialNumber[10];            // 10
    USHORT    BufferType;                    // 20
    USHORT    BufferSectorSize;            // 21
    USHORT    NumberOfEccBytes;            // 22
    USHORT    FirmwareRevision[4];        // 23
    USHORT    ModelNumber[20];            // 27
    USHORT    NumSectorsPerInt    :8;        // 47 Multiple Mode - Sec/Blk
    USHORT    Reserved2            :8;        // 47
    USHORT    DoubleWordMode;                // 48 flag for double word mode capable
    USHORT    VendorUnique1        :8;        // 49
    USHORT    SupportDMA            :1;        // 49 DMA supported
    USHORT    SupportLBA            :1;        // 49 LBA supported
    USHORT    SupportIORDYDisable    :1;        // 49 IORDY can be disabled
    USHORT    SupportIORDY        :1;        // 49 IORDY supported
    USHORT    ReservedPsuedoDMA    :1;        // 49 reserved for pseudo DMA mode support
    USHORT    Reserved3            :3;        // 49
    USHORT    Reserved4;                    // 50
    USHORT    Reserved5            :8;        // 51 Transfer Cycle Timing - PIO
    USHORT    PIOCycleTime        :8;        // 51 Transfer Cycle Timing - PIO
    USHORT    Reserved6            :8;        // 52                       - DMA
    USHORT    DMACycleTime        :8;        // 52                       - DMA
    USHORT    Valid_54_58            :1;        // 53 words 54 - 58 are valid
    USHORT    Valid_64_70            :1;        // 53 words 64 - 70 are valid
    USHORT    Reserved7            :14;    // 53
    USHORT    LogNumCyl;                    // 54 Current Translation - Num Cyl
    USHORT    LogNumHeads;                // 55                       Num Heads
    USHORT    LogSectorsPerTrack;            // 56                       Sec/Trk
    ULONG    LogTotalSectors;            // 57                       Total Sec
    USHORT    CurrentNumSecPerInt    :8;        // 59 current setting for number of sectors per interrupt
    USHORT    ValidNumSecPerInt    :1;        // 59 Current setting is valid for number of sectors per interrupt
    USHORT    Reserved8            :7;        // 59
    ULONG    LBATotalSectors;            // 60 LBA Mode - Sectors
    USHORT    DMASWordFlags;                // 62
    USHORT    DMAMWordFlags;                // 63
    USHORT    AdvancedPIOSupport  :8;        // 64 Flow control PIO transfer modes supported
    USHORT    Reserved9            :8;        // 64
    USHORT    MinMultiDMACycle;            // 65 minimum multiword DMA transfer cycle time per word
    USHORT    RecomendDMACycle;            // 66 Manufacturer's recommende multiword DMA transfer cycle time
    USHORT    MinPIOCycleWithoutFlow;        // 67 Minimum PIO transfer cycle time without flow control
    USHORT    MinPIOCylceWithFlow;        // 68 Minimum PIO transfer cycle time with IORDY flow control
    USHORT    ReservedSpace[256-69];        // 69
    }    IDENTIFY_DATA, *PIDENTIFY_DATA;

// ATAPI configuration bits
typedef struct _ATAPI_GENERAL_0
    {
    USHORT    CmdPacketSize        :2;        // Command packet size
    USHORT    Reserved1            :3;
    USHORT    CmdDrqType            :2;
    USHORT    Removable            :1;
    USHORT    DeviceType            :5;
    USHORT    Reserved2            :1;
    USHORT    ProtocolType        :2;
    }    ATAPI_GENERAL_0;

#pragma pack ()

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.01 ]--