Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  hdreg.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _LINUX_HDREG_H
#define _LINUX_HDREG_H

#include <linux/types.h>

/*
 * Command Header sizes for IOCTL commands
 */


#define HDIO_DRIVE_CMD_HDR_SIZE  (4 * sizeof(__u8))
#define HDIO_DRIVE_HOB_HDR_SIZE  (8 * sizeof(__u8))
#define HDIO_DRIVE_TASK_HDR_SIZE (8 * sizeof(__u8))

#define IDE_DRIVE_TASK_NO_DATA  0
#ifndef __KERNEL__
#define IDE_DRIVE_TASK_INVALID  -1
#define IDE_DRIVE_TASK_SET_XFER  1
#define IDE_DRIVE_TASK_IN  2
#define IDE_DRIVE_TASK_OUT  3
#endif
#define IDE_DRIVE_TASK_RAW_WRITE 4

/*
 * Define standard taskfile in/out register
 */

#define IDE_TASKFILE_STD_IN_FLAGS 0xFE
#define IDE_HOB_STD_IN_FLAGS  0x3C
#ifndef __KERNEL__
#define IDE_TASKFILE_STD_OUT_FLAGS 0xFE
#define IDE_HOB_STD_OUT_FLAGS  0x3C

typedef unsigned char task_ioreg_t;
typedef unsigned long sata_ioreg_t;
#endif

typedef union ide_reg_valid_s {
 unsigned all    : 16;
 struct {
  unsigned data   : 1;
  unsigned error_feature  : 1;
  unsigned sector   : 1;
  unsigned nsector  : 1;
  unsigned lcyl   : 1;
  unsigned hcyl   : 1;
  unsigned select   : 1;
  unsigned status_command  : 1;

  unsigned data_hob  : 1;
  unsigned error_feature_hob : 1;
  unsigned sector_hob  : 1;
  unsigned nsector_hob  : 1;
  unsigned lcyl_hob  : 1;
  unsigned hcyl_hob  : 1;
  unsigned select_hob  : 1;
  unsigned control_hob  : 1;
 } b;
} ide_reg_valid_t;

typedef struct ide_task_request_s {
 __u8  io_ports[8];
 __u8  hob_ports[8]; /* bytes 6 and 7 are unused */
 ide_reg_valid_t out_flags;
 ide_reg_valid_t in_flags;
 int  data_phase;
 int  req_cmd;
 unsigned long out_size;
 unsigned long in_size;
} ide_task_request_t;

typedef struct ide_ioctl_request_s {
 ide_task_request_t *task_request;
 unsigned char  *out_buffer;
 unsigned char  *in_buffer;
} ide_ioctl_request_t;

struct hd_drive_cmd_hdr {
 __u8 command;
 __u8 sector_number;
 __u8 feature;
 __u8 sector_count;
};

#ifndef __KERNEL__
typedef struct hd_drive_task_hdr {
 __u8 data;
 __u8 feature;
 __u8 sector_count;
 __u8 sector_number;
 __u8 low_cylinder;
 __u8 high_cylinder;
 __u8 device_head;
 __u8 command;
} task_struct_t;

typedef struct hd_drive_hob_hdr {
 __u8 data;
 __u8 feature;
 __u8 sector_count;
 __u8 sector_number;
 __u8 low_cylinder;
 __u8 high_cylinder;
 __u8 device_head;
 __u8 control;
} hob_struct_t;
#endif

#define TASKFILE_NO_DATA  0x0000

#define TASKFILE_IN   0x0001
#define TASKFILE_MULTI_IN  0x0002

#define TASKFILE_OUT   0x0004
#define TASKFILE_MULTI_OUT  0x0008
#define TASKFILE_IN_OUT   0x0010

#define TASKFILE_IN_DMA   0x0020
#define TASKFILE_OUT_DMA  0x0040
#define TASKFILE_IN_DMAQ  0x0080
#define TASKFILE_OUT_DMAQ  0x0100

#ifndef __KERNEL__
#define TASKFILE_P_IN   0x0200
#define TASKFILE_P_OUT   0x0400
#define TASKFILE_P_IN_DMA  0x0800
#define TASKFILE_P_OUT_DMA  0x1000
#define TASKFILE_P_IN_DMAQ  0x2000
#define TASKFILE_P_OUT_DMAQ  0x4000
#define TASKFILE_48   0x8000
#define TASKFILE_INVALID  0x7fff
#endif

#ifndef __KERNEL__
/* ATA/ATAPI Commands pre T13 Spec */
#define WIN_NOP    0x00
/*
 * 0x01->0x02 Reserved
 */

#define CFA_REQ_EXT_ERROR_CODE  0x03 /* CFA Request Extended Error Code */
/*
 * 0x04->0x07 Reserved
 */

#define WIN_SRST   0x08 /* ATAPI soft reset command */
#define WIN_DEVICE_RESET  0x08
/*
 * 0x09->0x0F Reserved
 */

#define WIN_RECAL   0x10
#define WIN_RESTORE   WIN_RECAL
/*
 * 0x10->0x1F Reserved
 */

#define WIN_READ   0x20 /* 28-Bit */
#define WIN_READ_ONCE   0x21 /* 28-Bit without retries */
#define WIN_READ_LONG   0x22 /* 28-Bit */
#define WIN_READ_LONG_ONCE  0x23 /* 28-Bit without retries */
#define WIN_READ_EXT   0x24 /* 48-Bit */
#define WIN_READDMA_EXT   0x25 /* 48-Bit */
#define WIN_READDMA_QUEUED_EXT  0x26 /* 48-Bit */
#define WIN_READ_NATIVE_MAX_EXT  0x27 /* 48-Bit */
/*
 * 0x28
 */

#define WIN_MULTREAD_EXT  0x29 /* 48-Bit */
/*
 * 0x2A->0x2F Reserved
 */

#define WIN_WRITE   0x30 /* 28-Bit */
#define WIN_WRITE_ONCE   0x31 /* 28-Bit without retries */
#define WIN_WRITE_LONG   0x32 /* 28-Bit */
#define WIN_WRITE_LONG_ONCE  0x33 /* 28-Bit without retries */
#define WIN_WRITE_EXT   0x34 /* 48-Bit */
#define WIN_WRITEDMA_EXT  0x35 /* 48-Bit */
#define WIN_WRITEDMA_QUEUED_EXT  0x36 /* 48-Bit */
#define WIN_SET_MAX_EXT   0x37 /* 48-Bit */
#define CFA_WRITE_SECT_WO_ERASE  0x38 /* CFA Write Sectors without erase */
#define WIN_MULTWRITE_EXT  0x39 /* 48-Bit */
/*
 * 0x3A->0x3B Reserved
 */

#define WIN_WRITE_VERIFY  0x3C /* 28-Bit */
/*
 * 0x3D->0x3F Reserved
 */

#define WIN_VERIFY   0x40 /* 28-Bit - Read Verify Sectors */
#define WIN_VERIFY_ONCE   0x41 /* 28-Bit - without retries */
#define WIN_VERIFY_EXT   0x42 /* 48-Bit */
/*
 * 0x43->0x4F Reserved
 */

#define WIN_FORMAT   0x50
/*
 * 0x51->0x5F Reserved
 */

#define WIN_INIT   0x60
/*
 * 0x61->0x5F Reserved
 */

#define WIN_SEEK   0x70 /* 0x70-0x7F Reserved */

#define CFA_TRANSLATE_SECTOR  0x87 /* CFA Translate Sector */
#define WIN_DIAGNOSE   0x90
#define WIN_SPECIFY   0x91 /* set drive geometry translation */
#define WIN_DOWNLOAD_MICROCODE  0x92
#define WIN_STANDBYNOW2   0x94
#define WIN_STANDBY2   0x96
#define WIN_SETIDLE2   0x97
#define WIN_CHECKPOWERMODE2  0x98
#define WIN_SLEEPNOW2   0x99
/*
 * 0x9A VENDOR
 */

#define WIN_PACKETCMD   0xA0 /* Send a packet command. */
#define WIN_PIDENTIFY   0xA1 /* identify ATAPI device */
#define WIN_QUEUED_SERVICE  0xA2
#define WIN_SMART   0xB0 /* self-monitoring and reporting */
#define CFA_ERASE_SECTORS  0xC0
#define WIN_MULTREAD   0xC4 /* read sectors using multiple mode*/
#define WIN_MULTWRITE   0xC5 /* write sectors using multiple mode */
#define WIN_SETMULT   0xC6 /* enable/disable multiple mode */
#define WIN_READDMA_QUEUED  0xC7 /* read sectors using Queued DMA transfers */
#define WIN_READDMA   0xC8 /* read sectors using DMA transfers */
#define WIN_READDMA_ONCE  0xC9 /* 28-Bit - without retries */
#define WIN_WRITEDMA   0xCA /* write sectors using DMA transfers */
#define WIN_WRITEDMA_ONCE  0xCB /* 28-Bit - without retries */
#define WIN_WRITEDMA_QUEUED  0xCC /* write sectors using Queued DMA transfers */
#define CFA_WRITE_MULTI_WO_ERASE 0xCD /* CFA Write multiple without erase */
#define WIN_GETMEDIASTATUS  0xDA
#define WIN_ACKMEDIACHANGE  0xDB /* ATA-1, ATA-2 vendor */
#define WIN_POSTBOOT   0xDC
#define WIN_PREBOOT    0xDD
#define WIN_DOORLOCK   0xDE /* lock door on removable drives */
#define WIN_DOORUNLOCK   0xDF /* unlock door on removable drives */
#define WIN_STANDBYNOW1   0xE0
#define WIN_IDLEIMMEDIATE  0xE1 /* force drive to become "ready" */
#define WIN_STANDBY   0xE2 /* Set device in Standby Mode */
#define WIN_SETIDLE1   0xE3
#define WIN_READ_BUFFER   0xE4 /* force read only 1 sector */
#define WIN_CHECKPOWERMODE1  0xE5
#define WIN_SLEEPNOW1   0xE6
#define WIN_FLUSH_CACHE   0xE7
#define WIN_WRITE_BUFFER  0xE8 /* force write only 1 sector */
#define WIN_WRITE_SAME   0xE9 /* read ata-2 to use */
 /* SET_FEATURES 0x22 or 0xDD */
#define WIN_FLUSH_CACHE_EXT  0xEA /* 48-Bit */
#define WIN_IDENTIFY   0xEC /* ask drive to identify itself */
#define WIN_MEDIAEJECT   0xED
#define WIN_IDENTIFY_DMA  0xEE /* same as WIN_IDENTIFY, but DMA */
#define WIN_SETFEATURES   0xEF /* set special drive features */
#define EXABYTE_ENABLE_NEST  0xF0
#define WIN_SECURITY_SET_PASS  0xF1
#define WIN_SECURITY_UNLOCK  0xF2
#define WIN_SECURITY_ERASE_PREPARE 0xF3
#define WIN_SECURITY_ERASE_UNIT  0xF4
#define WIN_SECURITY_FREEZE_LOCK 0xF5
#define WIN_SECURITY_DISABLE  0xF6
#define WIN_READ_NATIVE_MAX  0xF8 /* return the native maximum address */
#define WIN_SET_MAX   0xF9
#define DISABLE_SEAGATE   0xFB

/* WIN_SMART sub-commands */

#define SMART_READ_VALUES  0xD0
#define SMART_READ_THRESHOLDS  0xD1
#define SMART_AUTOSAVE   0xD2
#define SMART_SAVE   0xD3
#define SMART_IMMEDIATE_OFFLINE  0xD4
#define SMART_READ_LOG_SECTOR  0xD5
#define SMART_WRITE_LOG_SECTOR  0xD6
#define SMART_WRITE_THRESHOLDS  0xD7
#define SMART_ENABLE   0xD8
#define SMART_DISABLE   0xD9
#define SMART_STATUS   0xDA
#define SMART_AUTO_OFFLINE  0xDB

/* Password used in TF4 & TF5 executing SMART commands */

#define SMART_LCYL_PASS   0x4F
#define SMART_HCYL_PASS   0xC2

/* WIN_SETFEATURES sub-commands */
#define SETFEATURES_EN_8BIT 0x01 /* Enable 8-Bit Transfers */
#define SETFEATURES_EN_WCACHE 0x02 /* Enable write cache */
#define SETFEATURES_DIS_DEFECT 0x04 /* Disable Defect Management */
#define SETFEATURES_EN_APM 0x05 /* Enable advanced power management */
#define SETFEATURES_EN_SAME_R 0x22 /* for a region ATA-1 */
#define SETFEATURES_DIS_MSN 0x31 /* Disable Media Status Notification */
#define SETFEATURES_DIS_RETRY 0x33 /* Disable Retry */
#define SETFEATURES_EN_AAM 0x42 /* Enable Automatic Acoustic Management */
#define SETFEATURES_RW_LONG 0x44 /* Set Length of VS bytes */
#define SETFEATURES_SET_CACHE 0x54 /* Set Cache segments to SC Reg. Val */
#define SETFEATURES_DIS_RLA 0x55 /* Disable read look-ahead feature */
#define SETFEATURES_EN_RI 0x5D /* Enable release interrupt */
#define SETFEATURES_EN_SI 0x5E /* Enable SERVICE interrupt */
#define SETFEATURES_DIS_RPOD 0x66 /* Disable reverting to power on defaults */
#define SETFEATURES_DIS_ECC 0x77 /* Disable ECC byte count */
#define SETFEATURES_DIS_8BIT 0x81 /* Disable 8-Bit Transfers */
#define SETFEATURES_DIS_WCACHE 0x82 /* Disable write cache */
#define SETFEATURES_EN_DEFECT 0x84 /* Enable Defect Management */
#define SETFEATURES_DIS_APM 0x85 /* Disable advanced power management */
#define SETFEATURES_EN_ECC 0x88 /* Enable ECC byte count */
#define SETFEATURES_EN_MSN 0x95 /* Enable Media Status Notification */
#define SETFEATURES_EN_RETRY 0x99 /* Enable Retry */
#define SETFEATURES_EN_RLA 0xAA /* Enable read look-ahead feature */
#define SETFEATURES_PREFETCH 0xAB /* Sets drive prefetch value */
#define SETFEATURES_EN_REST 0xAC /* ATA-1 */
#define SETFEATURES_4B_RW_LONG 0xBB /* Set Length of 4 bytes */
#define SETFEATURES_DIS_AAM 0xC2 /* Disable Automatic Acoustic Management */
#define SETFEATURES_EN_RPOD 0xCC /* Enable reverting to power on defaults */
#define SETFEATURES_DIS_RI 0xDD /* Disable release interrupt ATAPI */
#define SETFEATURES_EN_SAME_M 0xDD /* for a entire device ATA-1 */
#define SETFEATURES_DIS_SI 0xDE /* Disable SERVICE interrupt ATAPI */

/* WIN_SECURITY sub-commands */

#define SECURITY_SET_PASSWORD  0xBA
#define SECURITY_UNLOCK   0xBB
#define SECURITY_ERASE_PREPARE  0xBC
#define SECURITY_ERASE_UNIT  0xBD
#define SECURITY_FREEZE_LOCK  0xBE
#define SECURITY_DISABLE_PASSWORD 0xBF
#endif /* __KERNEL__ */

struct hd_geometry {
      unsigned char heads;
      unsigned char sectors;
      unsigned short cylinders;
      unsigned long start;
};

/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n */
#define HDIO_GETGEO  0x0301 /* get device geometry */
#define HDIO_GET_UNMASKINTR 0x0302 /* get current unmask setting */
#define HDIO_GET_MULTCOUNT 0x0304 /* get current IDE blockmode setting */
#define HDIO_GET_QDMA  0x0305 /* get use-qdma flag */

#define HDIO_SET_XFER  0x0306  /* set transfer rate via proc */

#define HDIO_OBSOLETE_IDENTITY 0x0307 /* OBSOLETE, DO NOT USE: returns 142 bytes */
#define HDIO_GET_KEEPSETTINGS 0x0308 /* get keep-settings-on-reset flag */
#define HDIO_GET_32BIT  0x0309 /* get current io_32bit setting */
#define HDIO_GET_NOWERR  0x030a /* get ignore-write-error flag */
#define HDIO_GET_DMA  0x030b /* get use-dma flag */
#define HDIO_GET_NICE  0x030c /* get nice flags */
#define HDIO_GET_IDENTITY 0x030d /* get IDE identification info */
#define HDIO_GET_WCACHE  0x030e /* get write cache mode on|off */
#define HDIO_GET_ACOUSTIC 0x030f /* get acoustic value */
#define HDIO_GET_ADDRESS 0x0310 /* */

#define HDIO_GET_BUSSTATE 0x031a /* get the bus state of the hwif */
#define HDIO_TRISTATE_HWIF 0x031b /* execute a channel tristate */
#define HDIO_DRIVE_RESET 0x031c /* execute a device reset */
#define HDIO_DRIVE_TASKFILE 0x031d /* execute raw taskfile */
#define HDIO_DRIVE_TASK  0x031e /* execute task and special drive command */
#define HDIO_DRIVE_CMD  0x031f /* execute a special drive command */
#define HDIO_DRIVE_CMD_AEB HDIO_DRIVE_TASK

/* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n */
#define HDIO_SET_MULTCOUNT 0x0321 /* change IDE blockmode */
#define HDIO_SET_UNMASKINTR 0x0322 /* permit other irqs during I/O */
#define HDIO_SET_KEEPSETTINGS 0x0323 /* keep ioctl settings on reset */
#define HDIO_SET_32BIT  0x0324 /* change io_32bit flags */
#define HDIO_SET_NOWERR  0x0325 /* change ignore-write-error flag */
#define HDIO_SET_DMA  0x0326 /* change use-dma flag */
#define HDIO_SET_PIO_MODE 0x0327 /* reconfig interface to new speed */
#ifndef __KERNEL__
#define HDIO_SCAN_HWIF  0x0328 /* register and (re)scan interface */
#define HDIO_UNREGISTER_HWIF 0x032a  /* unregister interface */
#endif
#define HDIO_SET_NICE  0x0329 /* set nice flags */
#define HDIO_SET_WCACHE  0x032b /* change write cache enable-disable */
#define HDIO_SET_ACOUSTIC 0x032c /* change acoustic behavior */
#define HDIO_SET_BUSSTATE 0x032d /* set the bus state of the hwif */
#define HDIO_SET_QDMA  0x032e /* change use-qdma flag */
#define HDIO_SET_ADDRESS 0x032f /* change lba addressing modes */

/* bus states */
enum {
 BUSSTATE_OFF = 0,
 BUSSTATE_ON,
 BUSSTATE_TRISTATE
};

/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x033n/0x033n */
/* 0x330 is reserved - used to be HDIO_GETGEO_BIG */
/* 0x331 is reserved - used to be HDIO_GETGEO_BIG_RAW */
/* 0x338 is reserved - used to be HDIO_SET_IDE_SCSI */
/* 0x339 is reserved - used to be HDIO_SET_SCSI_IDE */

#define __NEW_HD_DRIVE_ID

#ifndef __KERNEL__
/*
 * Structure returned by HDIO_GET_IDENTITY, as per ANSI NCITS ATA6 rev.1b spec.
 *
 * If you change something here, please remember to update fix_driveid() in
 * ide/probe.c.
 */

struct hd_driveid {
 unsigned short config;  /* lots of obsolete bit flags */
 unsigned short cyls;  /* Obsolete, "physical" cyls */
 unsigned short reserved2; /* reserved (word 2) */
 unsigned short heads;  /* Obsolete, "physical" heads */
 unsigned short track_bytes; /* unformatted bytes per track */
 unsigned short sector_bytes; /* unformatted bytes per sector */
 unsigned short sectors; /* Obsolete, "physical" sectors per track */
 unsigned short vendor0; /* vendor unique */
 unsigned short vendor1; /* vendor unique */
 unsigned short vendor2; /* Retired vendor unique */
 unsigned char serial_no[20]; /* 0 = not_specified */
 unsigned short buf_type; /* Retired */
 unsigned short buf_size; /* Retired, 512 byte increments
 * 0 = not_specified
 */

 unsigned short ecc_bytes; /* for r/w long cmds; 0 = not_specified */
 unsigned char fw_rev[8]; /* 0 = not_specified */
 unsigned char model[40]; /* 0 = not_specified */
 unsigned char max_multsect; /* 0=not_implemented */
 unsigned char vendor3; /* vendor unique */
 unsigned short dword_io; /* 0=not_implemented; 1=implemented */
 unsigned char vendor4; /* vendor unique */
 unsigned char capability; /* (upper byte of word 49)
 *  3: IORDYsup
 *  2: IORDYsw
 *  1: LBA
 *  0: DMA
 */

 unsigned short reserved50; /* reserved (word 50) */
 unsigned char vendor5; /* Obsolete, vendor unique */
 unsigned char tPIO;  /* Obsolete, 0=slow, 1=medium, 2=fast */
 unsigned char vendor6; /* Obsolete, vendor unique */
 unsigned char tDMA;  /* Obsolete, 0=slow, 1=medium, 2=fast */
 unsigned short field_valid; /* (word 53)
 *  2: ultra_ok word  88
 *  1: eide_ok words 64-70
 *  0: cur_ok words 54-58
 */

 unsigned short cur_cyls; /* Obsolete, logical cylinders */
 unsigned short cur_heads; /* Obsolete, l heads */
 unsigned short cur_sectors; /* Obsolete, l sectors per track */
 unsigned short cur_capacity0; /* Obsolete, l total sectors on drive */
 unsigned short cur_capacity1; /* Obsolete, (2 words, misaligned int)     */
 unsigned char multsect; /* current multiple sector count */
 unsigned char multsect_valid; /* when (bit0==1) multsect is ok */
 unsigned int lba_capacity; /* Obsolete, total number of sectors */
 unsigned short dma_1word; /* Obsolete, single-word dma info */
 unsigned short dma_mword; /* multiple-word dma info */
 unsigned short  eide_pio_modes; /* bits 0:mode3 1:mode4 */
 unsigned short  eide_dma_min; /* min mword dma cycle time (ns) */
 unsigned short  eide_dma_time; /* recommended mword dma cycle time (ns) */
 unsigned short  eide_pio;       /* min cycle time (ns), no IORDY  */
 unsigned short  eide_pio_iordy; /* min cycle time (ns), with IORDY */
 unsigned short words69_70[2]; /* reserved words 69-70
 * future command overlap and queuing
 */

 unsigned short words71_74[4]; /* reserved words 71-74
 * for IDENTIFY PACKET DEVICE command
 */

 unsigned short  queue_depth; /* (word 75)
 * 15:5 reserved
 *  4:0 Maximum queue depth -1
 */

 unsigned short  words76_79[4]; /* reserved words 76-79 */
 unsigned short  major_rev_num; /* (word 80) */
 unsigned short  minor_rev_num; /* (word 81) */
 unsigned short  command_set_1; /* (word 82) supported
 * 15: Obsolete
 * 14: NOP command
 * 13: READ_BUFFER
 * 12: WRITE_BUFFER
 * 11: Obsolete
 * 10: Host Protected Area
 *  9: DEVICE Reset
 *  8: SERVICE Interrupt
 *  7: Release Interrupt
 *  6: look-ahead
 *  5: write cache
 *  4: PACKET Command
 *  3: Power Management Feature Set
 *  2: Removable Feature Set
 *  1: Security Feature Set
 *  0: SMART Feature Set
 */

 unsigned short  command_set_2; /* (word 83)
 * 15: Shall be ZERO
 * 14: Shall be ONE
 * 13: FLUSH CACHE EXT
 * 12: FLUSH CACHE
 * 11: Device Configuration Overlay
 * 10: 48-bit Address Feature Set
 *  9: Automatic Acoustic Management
 *  8: SET MAX security
 *  7: reserved 1407DT PARTIES
 *  6: SetF sub-command Power-Up
 *  5: Power-Up in Standby Feature Set
 *  4: Removable Media Notification
 *  3: APM Feature Set
 *  2: CFA Feature Set
 *  1: READ/WRITE DMA QUEUED
 *  0: Download MicroCode
 */

 unsigned short  cfsse;  /* (word 84)
 * cmd set-feature supported extensions
 * 15: Shall be ZERO
 * 14: Shall be ONE
 * 13:6 reserved
 *  5: General Purpose Logging
 *  4: Streaming Feature Set
 *  3: Media Card Pass Through
 *  2: Media Serial Number Valid
 *  1: SMART selt-test supported
 *  0: SMART error logging
 */

 unsigned short  cfs_enable_1; /* (word 85)
 * command set-feature enabled
 * 15: Obsolete
 * 14: NOP command
 * 13: READ_BUFFER
 * 12: WRITE_BUFFER
 * 11: Obsolete
 * 10: Host Protected Area
 *  9: DEVICE Reset
 *  8: SERVICE Interrupt
 *  7: Release Interrupt
 *  6: look-ahead
 *  5: write cache
 *  4: PACKET Command
 *  3: Power Management Feature Set
 *  2: Removable Feature Set
 *  1: Security Feature Set
 *  0: SMART Feature Set
 */

 unsigned short  cfs_enable_2; /* (word 86)
 * command set-feature enabled
 * 15: Shall be ZERO
 * 14: Shall be ONE
 * 13: FLUSH CACHE EXT
 * 12: FLUSH CACHE
 * 11: Device Configuration Overlay
 * 10: 48-bit Address Feature Set
 *  9: Automatic Acoustic Management
 *  8: SET MAX security
 *  7: reserved 1407DT PARTIES
 *  6: SetF sub-command Power-Up
 *  5: Power-Up in Standby Feature Set
 *  4: Removable Media Notification
 *  3: APM Feature Set
 *  2: CFA Feature Set
 *  1: READ/WRITE DMA QUEUED
 *  0: Download MicroCode
 */

 unsigned short  csf_default; /* (word 87)
 * command set-feature default
 * 15: Shall be ZERO
 * 14: Shall be ONE
 * 13:6 reserved
 *  5: General Purpose Logging enabled
 *  4: Valid CONFIGURE STREAM executed
 *  3: Media Card Pass Through enabled
 *  2: Media Serial Number Valid
 *  1: SMART selt-test supported
 *  0: SMART error logging
 */

 unsigned short  dma_ultra; /* (word 88) */
 unsigned short trseuc;  /* time required for security erase */
 unsigned short trsEuc;  /* time required for enhanced erase */
 unsigned short CurAPMvalues; /* current APM values */
 unsigned short mprc;  /* master password revision code */
 unsigned short hw_config; /* hardware config (word 93)
 * 15: Shall be ZERO
 * 14: Shall be ONE
 * 13:
 * 12:
 * 11:
 * 10:
 *  9:
 *  8:
 *  7:
 *  6:
 *  5:
 *  4:
 *  3:
 *  2:
 *  1:
 *  0: Shall be ONE
 */

 unsigned short acoustic; /* (word 94)
 * 15:8 Vendor's recommended value
 *  7:0 current value
 */

 unsigned short msrqs;  /* min stream request size */
 unsigned short sxfert;  /* stream transfer time */
 unsigned short sal;  /* stream access latency */
 unsigned int spg;  /* stream performance granularity */
 unsigned long long lba_capacity_2;/* 48-bit total number of sectors */
 unsigned short words104_125[22];/* reserved words 104-125 */
 unsigned short last_lun; /* (word 126) */
 unsigned short word127; /* (word 127) Feature Set
 * Removable Media Notification
 * 15:2 reserved
 *  1:0 00 = not supported
 * 01 = supported
 * 10 = reserved
 * 11 = reserved
 */

 unsigned short dlf;  /* (word 128)
 * device lock function
 * 15:9 reserved
 *  8 security level 1:max 0:high
 *  7:6 reserved
 *  5 enhanced erase
 *  4 expire
 *  3 frozen
 *  2 locked
 *  1 en/disabled
 *  0 capability
 */

 unsigned short  csfo;  /*  (word 129)
 * current set features options
 * 15:4 reserved
 *  3: auto reassign
 *  2: reverting
 *  1: read-look-ahead
 *  0: write cache
 */

 unsigned short words130_155[26];/* reserved vendor words 130-155 */
 unsigned short word156; /* reserved vendor word 156 */
 unsigned short words157_159[3];/* reserved vendor words 157-159 */
 unsigned short cfa_power; /* (word 160) CFA Power Mode
 * 15 word 160 supported
 * 14 reserved
 * 13
 * 12
 * 11:0
 */

 unsigned short words161_175[15];/* Reserved for CFA */
 unsigned short words176_205[30];/* Current Media Serial Number */
 unsigned short words206_254[49];/* reserved words 206-254 */
 unsigned short integrity_word; /* (word 255)
 * 15:8 Checksum
 *  7:0 Signature
 */

};
#endif /* __KERNEL__ */

/*
 * IDE "nice" flags. These are used on a per drive basis to determine
 * when to be nice and give more bandwidth to the other devices which
 * share the same IDE bus.
 */

#define IDE_NICE_DSC_OVERLAP (0) /* per the DSC overlap protocol */
#define IDE_NICE_ATAPI_OVERLAP (1) /* not supported yet */
#define IDE_NICE_1  (3) /* when probably won't affect us much */
#ifndef __KERNEL__
#define IDE_NICE_0  (2) /* when sure that it won't affect us */
#define IDE_NICE_2  (4) /* when we know it's on our expense */
#endif

#endif /* _LINUX_HDREG_H */

Messung V0.5
C=91 H=99 G=94

¤ Dauer der Verarbeitung: 0.17 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge