linux/Documentation/ioctl/hdio.txt
<<
>>
Prefs
   1                Summary of HDIO_ ioctl calls.
   2                ============================
   3
   4                Edward A. Falk <efalk@google.com>
   5
   6                November, 2004
   7
   8This document attempts to describe the ioctl(2) calls supported by
   9the HD/IDE layer.  These are by-and-large implemented (as of Linux 2.6)
  10in drivers/ide/ide.c and drivers/block/scsi_ioctl.c
  11
  12ioctl values are listed in <linux/hdreg.h>.  As of this writing, they
  13are as follows:
  14
  15    ioctls that pass argument pointers to user space:
  16
  17        HDIO_GETGEO             get device geometry
  18        HDIO_GET_UNMASKINTR     get current unmask setting
  19        HDIO_GET_MULTCOUNT      get current IDE blockmode setting
  20        HDIO_GET_QDMA           get use-qdma flag
  21        HDIO_SET_XFER           set transfer rate via proc
  22        HDIO_OBSOLETE_IDENTITY  OBSOLETE, DO NOT USE
  23        HDIO_GET_KEEPSETTINGS   get keep-settings-on-reset flag
  24        HDIO_GET_32BIT          get current io_32bit setting
  25        HDIO_GET_NOWERR         get ignore-write-error flag
  26        HDIO_GET_DMA            get use-dma flag
  27        HDIO_GET_NICE           get nice flags
  28        HDIO_GET_IDENTITY       get IDE identification info
  29        HDIO_GET_WCACHE         get write cache mode on|off
  30        HDIO_GET_ACOUSTIC       get acoustic value
  31        HDIO_GET_ADDRESS        get sector addressing mode
  32        HDIO_GET_BUSSTATE       get the bus state of the hwif
  33        HDIO_TRISTATE_HWIF      execute a channel tristate
  34        HDIO_DRIVE_RESET        execute a device reset
  35        HDIO_DRIVE_TASKFILE     execute raw taskfile
  36        HDIO_DRIVE_TASK         execute task and special drive command
  37        HDIO_DRIVE_CMD          execute a special drive command
  38        HDIO_DRIVE_CMD_AEB      HDIO_DRIVE_TASK
  39
  40    ioctls that pass non-pointer values:
  41
  42        HDIO_SET_MULTCOUNT      change IDE blockmode
  43        HDIO_SET_UNMASKINTR     permit other irqs during I/O
  44        HDIO_SET_KEEPSETTINGS   keep ioctl settings on reset
  45        HDIO_SET_32BIT          change io_32bit flags
  46        HDIO_SET_NOWERR         change ignore-write-error flag
  47        HDIO_SET_DMA            change use-dma flag
  48        HDIO_SET_PIO_MODE       reconfig interface to new speed
  49        HDIO_SCAN_HWIF          register and (re)scan interface
  50        HDIO_SET_NICE           set nice flags
  51        HDIO_UNREGISTER_HWIF    unregister interface
  52        HDIO_SET_WCACHE         change write cache enable-disable
  53        HDIO_SET_ACOUSTIC       change acoustic behavior
  54        HDIO_SET_BUSSTATE       set the bus state of the hwif
  55        HDIO_SET_QDMA           change use-qdma flag
  56        HDIO_SET_ADDRESS        change lba addressing modes
  57
  58        HDIO_SET_IDE_SCSI       Set scsi emulation mode on/off
  59        HDIO_SET_SCSI_IDE       not implemented yet
  60
  61
  62The information that follows was determined from reading kernel source
  63code.  It is likely that some corrections will be made over time.
  64
  65
  66
  67
  68
  69
  70
  71General:
  72
  73        Unless otherwise specified, all ioctl calls return 0 on success
  74        and -1 with errno set to an appropriate value on error.
  75
  76        Unless otherwise specified, all ioctl calls return -1 and set
  77        errno to EFAULT on a failed attempt to copy data to or from user
  78        address space.
  79
  80        Unless otherwise specified, all data structures and constants
  81        are defined in <linux/hdreg.h>
  82
  83
  84
  85HDIO_GETGEO                     get device geometry
  86
  87        usage:
  88
  89          struct hd_geometry geom;
  90          ioctl(fd, HDIO_GETGEO, &geom);
  91
  92
  93        inputs:         none
  94
  95        outputs:
  96
  97          hd_geometry structure containing:
  98
  99            heads       number of heads
 100            sectors     number of sectors/track
 101            cylinders   number of cylinders, mod 65536
 102            start       starting sector of this partition.
 103
 104
 105        error returns:
 106          EINVAL        if the device is not a disk drive or floppy drive,
 107                        or if the user passes a null pointer
 108
 109
 110        notes:
 111
 112          Not particularly useful with modern disk drives, whose geometry
 113          is a polite fiction anyway.  Modern drives are addressed
 114          purely by sector number nowadays (lba addressing), and the
 115          drive geometry is an abstraction which is actually subject
 116          to change.  Currently (as of Nov 2004), the geometry values
 117          are the "bios" values -- presumably the values the drive had
 118          when Linux first booted.
 119
 120          In addition, the cylinders field of the hd_geometry is an
 121          unsigned short, meaning that on most architectures, this
 122          ioctl will not return a meaningful value on drives with more
 123          than 65535 tracks.
 124
 125          The start field is unsigned long, meaning that it will not
 126          contain a meaningful value for disks over 219 Gb in size.
 127
 128
 129
 130
 131HDIO_GET_UNMASKINTR             get current unmask setting
 132
 133        usage:
 134
 135          long val;
 136          ioctl(fd, HDIO_GET_UNMASKINTR, &val);
 137
 138        inputs:         none
 139
 140        outputs:
 141          The value of the drive's current unmask setting
 142
 143
 144
 145HDIO_SET_UNMASKINTR             permit other irqs during I/O
 146
 147        usage:
 148
 149          unsigned long val;
 150          ioctl(fd, HDIO_SET_UNMASKINTR, val);
 151
 152        inputs:
 153          New value for unmask flag
 154
 155        outputs:        none
 156
 157        error return:
 158          EINVAL        (bdev != bdev->bd_contains) (not sure what this means)
 159          EACCES        Access denied:  requires CAP_SYS_ADMIN
 160          EINVAL        value out of range [0 1]
 161          EBUSY         Controller busy
 162
 163
 164
 165
 166HDIO_GET_MULTCOUNT              get current IDE blockmode setting
 167
 168        usage:
 169
 170          long val;
 171          ioctl(fd, HDIO_GET_MULTCOUNT, &val);
 172
 173        inputs:         none
 174
 175        outputs:
 176          The value of the current IDE block mode setting.  This
 177          controls how many sectors the drive will transfer per
 178          interrupt.
 179
 180
 181
 182HDIO_SET_MULTCOUNT              c       HDIO_SET_MULTCOUNT      change IDE blockmode
 111
1  84
1  85HDIO_GETGEO     1     18/ioctl/hdio.txt#L166" id="L166" class="line" nme="L86">1  86
1  87        usage:
<1a hre187_GET_MULTCOUNT, &val);
1  88
1  89          struct1 hd_g1ometry geom;
1  90          ioctl(1fd, H1IO_GETGEO, & href="Documens

1  92
1  93        inputs: 1     1  none
1  94
1  95        outputs:1
1  96
1  97          hd_geo1metry1structure contai  requires CAP_SYS_ADMIN
1  98
   19        HDIO_GET_Mhd_g1  number of heady
 > 101            cyl2nders20/ioctl/hdio.txt#L182" id="L182" class="line" 2ame="L1022> 102            sta2t    2  starting secn/ioctl/hdio.txt#L111" id="L111" class="line" 2ame="L1032> 103
 > 108
   21        HDIO_SET_Xders21 Controller busy
 > 118          when 2inux 21/ioctl/hdio.txt#L89" id="L89" class="line" na2ame="L1192> 119
   20        HDIO_GET_ition22/ioctl/hdio.txt#L181" id="L181" class="line" 2me="L21">   21        HDIO_SET_ed sh22         gfer rate via proc
<<<<<<<<   22        HDIO_OBSOLticu22/ioctl/hdio.txt#L93" id="L93" class="line" na2me="L23">   23        HDIO_GET_5535 2racks.
   24        HDIO_GET_ntati2n/ioctl/hdio.txt#L125" id="L125" class="line" 2me="L25">   25        HDIO_GET_art f22/ioctl/hdio.txt#L166" id="L166" class="line" 2me="L26">   26        HDIO_GET_n a m22/ioctl/hdio.txt#L17" id="L17" class="line" na2me="L27">   27        HDIO_GET_ntati2n/ioctLETE, DO NOT USE
   28        HDIO_GET_ntati2n/ioctl/hdio.txt#L129" id="L129" class="line" 2me="L29">   29        HDIO_GET_ntati2E         get SIO_ y vIDE identification(seesbelow), exYSptacumentatonlnl/hdio.txt#L153" id="L153" class="line" 2ame="L1302> 130
   24        HDIO_GET_3tati2n/ioctl/hdio.txt#L145" id="L145" class="line" 2ame="L1452> 145HDIO_SET_UNMASK2NTR  24href="DocumentaATAuref="D"Documtye determinedt  Fcumetatisupporspan>, 111
2a hre2n/ioct ioctl settings on resettttttttt
2  84
2  85HDIO_GETGEO     2     285_GET_UNMASKIn/ioctl/hdio.txt#L169" id="L169" class="line" 2me="L86">2  86
2  87        usage:
<2a hre287_GET_MULTCOUNTtion/ioctl/hdio.txt#L171" id="L171" class="line" 2me="L88">2  88
2  89          struct2 hd_g28/ioctl/hdio.txt#L120" id="L120" class="line" 2me="L90">2  90          ioctl(2fd, H2IO_GETGEO, &amon/ioctl/hdio.txt#L153" id="L153" class="line" 2mme="L1812  91
2  92
2  93        inputs: 2     2  none
2  94
2  95        outputs:2
2  96
2  97          hd_geo2metry2structure contai  requires CAP_SYS_ADMIN
2  98
2  19        HDIO_GET2Mhd_g2  number of heady
3> 101            cyl3nders30/ioctl/hdio.txt#L182" id="L182" class="line" 3ame="L1023> 102            sta3t    30/ioctl/hdio.txt#L93" id="L93" class="line" na3ame="L1033> 103
3> 108
3  21        HDIO_SET3Xders3n/ioctl/hdio.txt#L112" id="L112" class="line" 3ame="L1023> 112          Not p3rticu3arly useful wi="Documel/hdio.txt#L143" id="L143" class="line" 3ame="L1133> 113          is a 3olite3fiction anyway. Tmlock mode setting.  Thicumentation/ioctl/hdio.txt#L25" id="L25" class="line" na3ame="L1143> 114          purel3 by s3n/ioctl/hdio.txt#L15" id="L15" class="line" na3ame="L1153> 115          drive3geome3ry is an abstrn/ioctl/hdio.txt#L111" id="L111" class="line" 3eme="L1063> 116          to ch3nge. 3n/ioctl/hdio.txt#L17" id="L17" class="line" na3ame="L1173> 117          are t3e &qu3t;bios" val0=16-tat, 1=32-tat, 2,3 = entat+syntl/hdio.txt#L22" id="L22" class="line" na3ae="L28">3> 118          when 3inux 31/ioctl/hdio.txt#L89" id="L89" class="line" na3ame="L1193> 119
3  20        HDIO_GET3ition32/ioctl/hdio.txt#L181" id="L181" class="line" 3me="L21">3  21        HDIO_SET3ed sh32         get c-write-error flgggggggg
3  22        HDIO_OBS3Lticu32/ioctl/hdio.txt#L93" id="L93" class="line" na3me="L23">3  23        HDIO_GET35535 32"Documentation/ioctl/hdio.txt#L134" id="L134" class="line" 3me="L24">3  24        HDIO_GET3ntati3n/ioctl/hdio.txt#L125" id="L125" class="line" 3me="L25">3  25        HDIO_GET3art f3eld is unsigned tion/ioctl/hdio.txt#L171" id="L171" class="line" 3me="L26">3  26        HDIO_GET3n a m3aningful value f, &val);
3  27        HDIO_GET3ntati3n/ioctl/hdio.txt#L128" id="L128" class="line" 3me="L28">3  28        HDIO_GET3ntati32 none
3  29        HDIO_GET3ntati3n/ioctl/hdio.txt#L130" id="L130" class="line" 3ame="L1303> 130
3  24        HDIO_GET33tati344="Documentation/ioctl/hdio.txt#L141" id="L141" class="line" 3ame="L1453> 145HDIO_SET_UNMASK3NTR  34href="Documenta current unmask sng.  Thientaion/ioctl/hdio.txt#L21" id="L21" class="line" na3ame="L1363> 146
 111
3a hre3n/ioctl/hdio.txt#L84" id="L84" class="line" na3me="L84">3  84
3  85HDIO_GETGEO     3     38href="Documenta  requires CAP_SYS_ADMIN
3  86
3  87        usage:
<3a hre387_GET_MULTCOUNTEPERMUNMASKINTDSC_OVERLAP es and /iocut  href=ation/ioct3  89          struct3 hd_g3ometry geom;
3  90          ioctl(3fd, H39/ioctl/hdio.txt#L71" id="L71" class="line" na3mme="L1813  91
3  92
3  93        inputs: 3     39/ioctl/hdio.txt#L84" id="L84" class="line" na3me="L94">3  94
3  95        outputs:3
3  96
3  97          hd_geo3metry39/ioctl/hdio.txt#L168" id="L168" class="line" 3me="L98">3  98
3  19        HDIO_GET3Mhd_g39/ioctl/hdio.txt#L170" id="L170" class="line" 4ame="L1004> 100            sec4ors  40/ioctl/hdio.txt#L181" id="L181" class="line" 4ae="L21">4> 101            cyl4nders40         get cWCACHa g
4> 92
4> 108
4  21        HDIO_SET4Xders41 Controller bus current unmask sng.  Thicumen cache="Docl/hdio.txt#L141" id="L141" class="line" 4a2="L21">4> 112          Not p4rticu41/ioctl/hdio.txt#L93" id="L93" class="line" na4ame="L1134> 113          is a 4olite41/ioctl/hdio.txt#L104" id="L104" class="line" 4ame="L1144> 114          purel4 by s4n/ioctl/hdio.txt#L15" id="L15" class="line" na4ame="L1154> 115          drive4geome41         get dACOUSTIC
4> 118          when 4inux 41/ioctl/hdio.txt#L89" id="L89" class="line" na4ame="L1194> 119
4  20        HDIO_GET4ition42O_GETGEO, &geom);
4  21        HDIO_SET4ed sh42/ioctl/hdio.txt#L182" id="L182" class="line" 4ee="L22">4  22        HDIO_OBS4Lticu42="Documentation/ioctentation/ioctl/hdio.txt#L139" id="L139" class="line" 4me="L23">4  23        HDIO_GET45535 42/ioctl/hdio.txt#L104" id="L104" class="line" 4me="L24">4  24        HDIO_GET4ntati424="Documentation/ioctl/hdio.txt#L141" id="L141" class="line" 4me="L25">4  25        HDIO_GET4art f4eld is unsigned  current unmask sng.  Thiacousticrmentatitl/hdio.txt#L28" id="L28" class="line" na4me="L26">4  26        HDIO_GET4n a m42/ioctl/hdio.txt#L17" id="L17" class="line" na4me="L27">4  27        HDIO_GET4ntati42"Documentation/ioctl/hdio.txt#L111" id="L111" class="line" 4me="L28">4  28        HDIO_GET4ntati4n/ioctl/hdio.txt#L129" id="L129" class="line" 4me="L29">4  29        HDIO_GET4ntati42 number of headSeee);
4> 134
4  24        HDIO_GET43tati444ingful value f  0 = 28-tatl/hdio.txt#L143" id="L143" class="line" 4ame="L1354> 145HDIO_SET_UNMASK4NTR  44href="Documenta  1 = 48-tatl/hdio.txt#L143" id="L143" class="line" 4ame="L1364> 146
 111
4a hre4n/ioctl/hdio.txt#L84" id="L84" class="line" na4me="L84">4  84
4  85HDIO_GETGEO     4     48href="Documenta  requires CAP_SYS_ADMIN
4  89          struct4 hd_g48/ioctl/hdio.txt#L120" id="L120" class="line" 4me="L90">4  90          ioctl(4fd, H49/ioctl/hdio.txt#L71" id="L71" class="line" na4mme="L1814  91
4  93        inputs: 4     49acks.
4  94
4  95        outputs:4
4  96
4  97          hd_geo4metry49/ioctLETE,DRIVE_REShr g
4  98
4  19        HDIO_GET4Mhd_g4  number of hen/ioctl/hdio.txt#L134" id="L134" class="line" 5ame="L1005> 100            sec5ors  50/ioctl/hdio.txt#L181" id="L181" class="line" 5ae="L21">5> 101            cyl5nders501value out of rRThiargs[3tl/hdio.txt#L161" id="L161" class="line" 5a2="L21">5> 92
5> 108
5  21        HDIO_SET5Xders51 Controller busyNXIOoller busNonf=ef=deflop: phy=deadr po cl_addr == 0l/hdio.txt#L160" id="L160" class="line" 5a2="L21">5> 112          Not p5rticu512ref="DocumentaEIOoller bus  I/Ofmentaentatioation/timc/iDocumr hardwues mental/hdio.txt#L160" id="L160" class="line" 5ame="L1035> 113          is a 5olite51/ioctl/hdio.txt#L104" id="L104" class="line" 5ame="L1145> 114          purel5 by s514Documentation/ioctl/hdio.txt#L111" id="L111" class="line" 5ame="L1155> 115          drive5geome51/ioctl/hdio.txt#L76" id="L76" class="line" na5ame="L1065> 116          to ch5nge. 51O_GET_UNMASKINTExecutodaoation/of=5> 118          when 5inux 51/ioctl/hdio.txt#L89" id="L89" class="line" na5ame="L1195> 119
5  20        HDIO_GET5ition52O_GETGEO, &executos anaATAvsoftoation/of=5  21        HDIO_SET5ed sh52/ioctl/hdio.txt#L182" id="L182" class="line" 5ee="L22">5  22        HDIO_OBS5Lticu52/ioctl/hdio.txt#L93" id="L93" class="line" na5me="L23">5  23        HDIO_GET55535 52/ioctl/hdio.txt#L104" id="L104" class="line" 5me="L24">5  24        HDIO_GET5ntati524ioctLETE,DRIVE_TASKFILa g
5  25        HDIO_GET5art f52/ioctl/hdio.txt#L76" id="L76" class="line" na5me="L26">5  26        HDIO_GET5n a m5aningful valueNDop:  If you dong
5  28        HDIO_GET5ntati5n/ioctl/hdio.txt#L129" id="L129" class="line" 5me="L29">5  29        HDIO_GET5ntati52 number of heExecutodanaATAvdisk on/ioctvdire clyoct5> 131HDIO_GET_UNMASK5NTR  53the drive'pef=ictgthtl/hdio.txt#L119" id="L119" class="line" 5ame="L1325> 132
5> 134
5> 136          ioctl5fd, H53urrently (as of  ide_task_ef="est_toatq_taskal/hdio.txt#L129" id="L129" class="line" 5ame="L1175> 137
5> 138        inputs:5     538or if the userion8iinbuf[INPUT_SIZE]al/hdio.txt#L129" id="L129" class="line" 5ae="L29">5> 139
5  24        HDIO_GET53tati544ingful value f  &val);
5> 146
5> 156
5> 166HDIO_GET_MULTCO5NT   56ningful value f,n_iocttlllllliocttlind cmi="Dothref=regisn/rsdnhouldnbetion/ioe/l/hdio.txt#L28" id="L28" class="line" na5ame="L1475> 167
 111
5a hre583ref="Documenta hctningfut  A mi, mkt can easilyhcmrruptsdatammr ha"Docu l/hdio.txt#L25" id="L25" class="line" na5ame="L1645  84
5  85HDIO_GETGEO     5     58/ioctl/hdio.txt#L76" id="L76" class="line" na5mme="L1765  86
5  89          struct5 hd_g58 number of head[3] If onoderDioctrbitsdues ion/inaDoc_iocttloctv,n_iocttlisl/hdio.txt#L181" id="L181" class="line" 5me="L90">5  90          ioctl(5fd, H59O_GETGEO, &zero, tr
edcumen,n_ioctt.allloctl/hdio.txt#L181" id="L181" class="line" 5mme="L1815  91
5  93        inputs: 5     593ref="Documenta *as
5  94
5  95        outputs:5
5  98
5  19        HDIO_GET5Mhd_g59 number of headbitfieldnflipADMIpend="DoL1 end=20atss;cumetunmtoly, TASKFILal/hdio.txt#L168" id="L168" class="line" 6ame="L1006> 100            sec6ors  60 value out of r nlyhu>etlinioctt.b.datamtat octv,ef="Dseallan="Docbitstl/hdio.txt#L179" id="L179" class="line" 6ae="L21">6> 101            cyl6nders601value out of rTmloendoatiultoctnthat,oL1 any end=20 mach   s, it has nol/hdio.txt#L179" id="L179" class="line" 6a2="L21">6> 92
6  21        HDIO_SET6Xders61 Controller busbydanaop"L28allbuffea e sdatamumebe6> 112          Not p6rticu612ref="Documentaaef=",6> 118          when 6inux 618or if the userioRo_tions[8]  fffffffiococumumenettitaskficttregisn/rsl/hdio.txt#L181" id="L181" class="line" 6ame="L1196> 119
6  20        HDIO_GET6ition62O_GETGEO, &taDoc_iocttllllllllllliocttlind cmi="Dothref=" irietlinecu l/hdio.txt#L25" id="L25" class="line" na6me="L21">6  21        HDIO_SET6ed sh621he current IDEEEEEEEEEEEEEEEEEEEEEEE  _tions[] octvhob_tions[] arrayhl/hdio.txt#L181" id="L181" class="line" 6m2="L21">6  22        HDIO_OBS6Lticu622he current IDEEEEEEEEEEEEEEEEEEEEEEEcmenain ="Di/ ues tht rTypem de_reg_="Di/_ctl/hdio.txt#L179" id="L179" class="line" 6me="L23">6  23        HDIO_GET65535 623ref="Documenta f,n_iocttlllllllllllliocttlind cmi="Dothref=" irietlinecu l/hdio.txt#L25" id="L25" class="line" na6mme="L1146  24        HDIO_GET6ntati624ingful value ffffEEEEEEEEEEEEEEEEEEE  _tions[] octvhob_tions[] arrayhl/hdio.txt#L181" id="L181" class="line" 6mme="L1156  25        HDIO_GET6art f6eld is unsigned                       ues mxpectedcumecmenain ="Di/ ues thl/hdio.txt#L181" id="L181" class="line" 6m6e="L1046  26        HDIO_GET6n a m62the current IDEEEEEEEEEEEEEEEEEEEEEEEL1dion/iotl/hdio.txt#L179" id="L179" class="line" 6mme="L1176  27        HDIO_GET6ntati62 or if the useriodata_phaseentaaaaaaaSeeebelowl/hdio.txt#L28" id="L28" class="line" na6me="L28">6  28        HDIO_GET6ntati628or if the userioatq_cmd (as offfffffCn/ioctvtype,aseeebelowl/hdio.txt#L28" id="L28" class="line" na6me="L29">6  29        HDIO_GET6ntati62 number of headalooc_size      headaloococu (a hr-ioctaef=")lbuffea size,/iytosl/hdio.txt#L28" id="L28" class="line" na6ame="L1306> 130
6> 131HDIO_GET_UNMASK6NTR  63/ioctl/hdio.txt#L182" id="L182" class="line" 6ame="L1326> 132
6> 134
6> 138        inputs:6     638or if the userioHOB_HCYLf the userioI settiaef="nf=ations LBA48l/hdio.txt#L104" id="L104" class="line" 6ae="L29">6> 139
6> 141          The v6lue o64 Controller busaaSECTORl/hdio.txt#L104" id="L104" class="line" 6ame="L1326> 142
6  24        HDIO_GET63tati644ingful value f  SELECTooooooooooooooFirst, tionedctiont0xE0fif LBA48,t0xEFl/hdio.txt#L104" id="L104" class="line" 6ame="L1156> 145HDIO_SET_UNMASK6NTR  64href="Documenta                      n="Dowist;settn,l pg
6> 154
6> 164
6> 166HDIO_GET_MULTCO6NT   66ningful value fffffffffffffffffffffffloaded/regardlS_ADo sDoc_ioctt.b.selecttl/hdio.txt#L179" id="L179" class="line" 6ame="L1476> 167
6> 174
6> 176          The v6lue o67/ioctl/hdio.txt#L147" id="L147" class="line" 6ame="L1476> 177          contr6ls ho6 many sectors th  HOB_DATAv f the userI s,n_ioctt.b.datamctnset.  Itswileecmenainl/hdio.txt#L147" id="L147" class="line" 6ame="L1586> 178          inter6upt.
678bios" valioooooooooooooooooooooDD8-DD15EL1dlittle end=20 mach   sooctl/hdio.txt#L181" id="L181" class="line" 6ame="L1696> 179
 111
6a hre683ref="DocumentaffHOB_FEATURa g
6  85HDIO_GETGEO     6     68href="Documenta  HOB_SECTOR g
6  89          struct6 hd_g68 number of headaaSECTORl/hdio.txt#L104" id="L104" class="line" 6me="L90">6  90          ioctl(6fd, H69O_GETGEO, &  LCYLl/hdio.txt#L104" id="L104" class="line" 6mme="L1816  91
6  93        inputs: 6     693ref="DocumentaTm seata_phaseefieldndescribesmua hdatamuransfea umeb l/hdio.txt#L25" id="L25" class="line" na6me="L84">6  94
6  95        outputs:6
6  19        HDIO_GET6Mhd_g69 number of headioTASKFILa_MULrI_OUTl/hdio.txt#L76" id="L76" class="line" na7ame="L1007> 100            sec7ors  70 value out of r  TASKFILa_IN_OUTl/hdio.txt#L76" id="L76" class="line" na7a1e="L1007> 91
7> 112          Not p7rticu712ref="DocumentaTm sef=_cmd fieldn2ifiesmua hcm/ioct type.  Itsmayeb l/hdio.txt#L25" id="L25" class="line" na7ame="L1037> 113          is a 7olite713ref="Documentaonodeftl/hdio.txt#L111" id="L111" class="line" 7ame="L1147> 114          purel7 by s7n/ioctl/hdio.txt#L15" id="L15" class="line" na7ame="L1157> 115          drive7geome71ld is unsigned  as
7> 118          when 7inux 718or if the userios
7  20        HDIO_GET7ition72/ioctl/hdio.txt#L181" id="L181" class="line" 7me="L21">7  21        HDIO_SET7ed sh721he current IDE[6] Doue onaSYS_AD{in|out}_ioctt-ioctallaexceptsumenationtoctl/hdio.txt#L25" id="L25" class="line" na7m2="L21">7  22        HDIO_OBS7Lticu722he current IDEallaettibicct  AlwaysnaSYS_ADind viduallbitifieldct  -ioctalll/hdio.txt#L25" id="L25" class="line" na7mme="L1037  23        HDIO_GET75535 723ref="Documentack modwileeflipDMIpend="DoL1 end=20atsst  FmenettisIO_l/hdio.txt#L25" id="L25" class="line" na7mme="L1147  24        HDIO_GET7ntati724ingful value freason, do= hreu>ess
7  28        HDIO_GET7ntati7n/ioctl/hdio.txt#L129" id="L129" class="line" 7me="L29">7  29        HDIO_GET7ntati72 numb);
7> 131HDIO_GET_UNMASK7NTR  73the drive'NDop:  If you dong
7> 134
7> 138        inputs:7     738or if the user9" clp;val);
7> 139
7> 141          The v7lue o74/ioctl/hdio.txt#L182" id="L182" class="line" 7ame="L1327> 142
7  24        HDIO_GET73tati744ingful value f  args[1]  heaNSECTORl/hdio.txt#L104" id="L104" class="line" 7ame="L1157> 145HDIO_SET_UNMASK7NTR  74href="Documenta  args[2]  heaFEATURal/hdio.txt#L104" id="L104" class="line" 7a6e="L1047> 146
7> 149          unsig7ed lo74 number of headioargs[0]  heaCOMMANDl/hdio.txt#L76" id="L76" class="line" na7ame="L1507> 150          ioctl7fd, H75O_GETGEO, &  args[1]  heaSECTORl/hdio.txt#L104" id="L104" class="line" 7ame="L1517> 151
7> 154
7> 164
7> 174
etlSELECTowileecmenainttm seefaultl/hdio.txt#L104" id="L104" class="line" 7ame="L1157> 175        outputs7
edcregardlS_ADo l/hdio.txt#L179" id="L179" class="line" 7ame="L1537e" name="L111"> 111
7a hre783ref="Documenta);
7  84
7  85HDIO_GETGEO     7     78href="Documenta[3] If COMMAND == WIN_SETFEATURaStationation FEATURa == SETFEATURaSeXFERl/hdio.txt#L15" id="L15" class="line" na7m6e="L1047  86
7  90          ioctl(7fd, H79/ioctl/hdio.txt#L181" id="L181" class="line" 7mme="L1817  91
7  93        inputs: 7     79/ioctl/hdio.txt#L104" id="L104" class="line" 7me="L84">7  94
7  95        outputs:7
7  19        HDIO_GET7Mhd_g79 number of headu8iargs[7]al/hdio.txt#L129" id="L129" class="line" 8ame="L1008> 100            sec8ors  80 value out of r..tl/hdio.txt#L119" id="L119" class="line" 8a1e="L1008> 91
8> 112          Not p8rticu812ref="Documentaioargs[6t  heaSELECTl/hdio.txt#L25" id="L25" class="line" na8ame="L1038> 113          is a 8olite81/ioctl/hdio.txt#L104" id="L104" class="line" 8ame="L1148> 114          purel8 by s814ingful valueion/ioctl/hdio.txt#L141" id="L141" class="line" 8ame="L1158> 115          drive8geome81/ioctl/hdio.txt#L76" id="L76" class="line" na8a6e="L1038> 116          to ch8nge. 81O_GET_UNMASKINTTaskficttregisn/rfiococuml/hdio.txt#L168" id="L168" class="line" 8a7e="L1038> 117          are t8e &qu8t;bios" val aargs[0]  heastatuhl/hdio.txt#L181" id="L181" class="line" 8ae="L28">8> 118          when 8inux 818or if the userioargs[1]  heamental/hdio.txt#L160" id="L160" class="line" 8a9e="L1038> 119
8  20        HDIO_GET8ition82O_GETGEO, &taargs[3t  heaSECTORl/hdio.txt#L104" id="L104" class="line" 8me="L21">8  21        HDIO_SET8ed sh821he current IDEEEargs[4t  heaLCYLl/hdio.txt#L104" id="L104" class="line" 8m2="L21">8  22        HDIO_OBS8Lticu822he current IDEEEargs[5t  heaHCYLl/hdio.txt#L25" id="L25" class="line" na8mme="L1038  23        HDIO_GET85535 823ref="Documenta fargs[6t  heaSELECTl/hdio.txt#L25" id="L25" class="line" na8mme="L1148  24        HDIO_GET8ntati82/ioctl/hdio.txt#L15" id="L15" class="line" na8mme="L1158  25        HDIO_GET8art f8eld is unsignementation/ioctl/hdio.txt#L106" id="L106" class="line" 8m6e="L1048  26        HDIO_GET8n a m82the current IDEy requires CAPASYS_ADdenied:ioatq"DocumentationRAWIOl/hdio.txt#L106" id="L106" class="line" 8mme="L1178  27        HDIO_GET8ntati82 or if the userENOMEMUNMASKINUnioctmumeallocmtodmemorylumentaskl/hdio.txt#L179" id="L179" class="line" 8me="L28">8  28        HDIO_GET8ntati828or if the userENOMSGthe userD flopnisue ona aisk aef="tl/hdio.txt#L119" id="L119" class="line" 8me="L29">8  29        HDIO_GET8ntati82 number of headEIOoller bus  Def="Diailedcua hcm/iocttl/hdio.txt#L179" id="L179" class="line" 8ame="L1308> 130
8> 131HDIO_GET_UNMASK8NTR  83the drive'n/ioctl/hdio.txt#L111" id="L111" class="line" 8ame="L1328> 132
edcunaln/redtl/hdio.txt#L179" id="L179" class="line" 8a6e="L1048> 136          ioctl8fd, H83/ioctl/hdio.txt#L147" id="L147" class="line" 8ame="L1178> 137
8> 138        inputs:8     83/ioctl/hdio.txt#L129" id="L129" class="line" 8ae="L29">8> 139
8> 141          The v8lue o84the drive'NDo umentation/, as e s2.6.8.1l/hdio.txt#L181" id="L181" class="line" 8ame="L1328> 142
8  24        HDIO_GET83tati84/ioctl/hdio.txt#L15" id="L15" class="line" na8ame="L1158> 145HDIO_SET_UNMASK8NTR  84href=);
8> 149          unsig8ed lo84 number of headintock tl/hdio.txt#L172" id="L172" class="line" 8ame="L1508> 150          ioctl8fd, H85O_GETGEO, &9" clp;val);
8> 154
8> 159          EACCE8     85 number of heady requires CAPASYS_ADdenied:ioatq"DocumentationADMINl/hdio.txt#L76" id="L76" class="line" na8ame="L1608> 160          EINVA8     86O_GETGEO, &EINVALf the usck modeut e sr20geE[0 3]l/hdio.txt#L76" id="L76" class="line" na8ame="L1518> 161          EBUSY8     86 Controller busEBUSYoller busCmenrollDocbusyl/hdio.txt#L76" id="L76" class="line" na8ame="L1328> 162
8> 164
8> 174
edcumen ef="octl/hdio.txt#L25" id="L25" class="line" na8ame="L1158> 175        outputs8
 111
8a hre883ref="DocumentaEBUSYoller busCmenrollDocbusyl/hdio.txt#L76" id="L76" class="line" na8ae="L24">8  84
8  85HDIO_GETGEO     8     88/ioctl/hdio.txt#L76" id="L76" class="line" na8m6e="L1048  86
8  90          ioctl(8fd, H89/ioctl/hdio.txt#L181" id="L181" class="line" 8mme="L1818  91
8  93        inputs: 8     89/ioctl/hdio.txt#L104" id="L104" class="line" 8me="L84">8  94
8  95        outputs:8
8  19        HDIO_GET8Mhd_g89 number of hementation/ioml/hdio.txt#L168" id="L168" class="line" 9ame="L1009> 100            sec9ors  90 value out of rEINVALf the us(bdev != bdev-ioctbd_cmenains) (e onf=es whatf hctnmeans)l/hdio.txt#L168" id="L168" class="line" 9a1e="L1009> 91
9> 112          Not p9rticu912ref="Documenta9" clp;val);
9> 118          when 9inux 91/ioctl/hdio.txt#L129" id="L129" class="line" 9a9e="L1039> 119
9  20        HDIO_GET9ition92O_GETGEO, &EINVALf the us(bdev != bdev-ioctbd_cmenains) (e onf=es whatf hctnmeans)l/hdio.txt#L168" id="L168" class="line" 9me="L21">9  21        HDIO_SET9ed sh921he current IDEy requires CAPASYS_ADdenied:ioatq"DocumentationADMINl/hdio.txt#L76" id="L76" class="line" na9m2="L21">9  22        HDIO_OBS9Lticu922he current IDEEINVALf the usck modeut e sr20geE[0 255]l/hdio.txt#L76" id="L76" class="line" na9mme="L1039  23        HDIO_GET95535 923ref="DocumentaEBUSYoller busCmenrollDocbusyl/hdio.txt#L76" id="L76" class="line" na9mme="L1149  24        HDIO_GET9ntati92/ioctl/hdio.txt#L15" id="L15" class="line" na9mme="L1159  25        HDIO_GET9art f92/ioctl/hdio.txt#L76" id="L76" class="line" na9m6e="L1049  26        HDIO_GET9n a m92/ioctl/hdio.txt#L147" id="L147" class="line" 9mme="L1179  27        HDIO_GET9ntati927_GET);
9  28        HDIO_GET9ntati9n/ioctl/hdio.txt#L129" id="L129" class="line" 9me="L29">9  29        HDIO_GET9ntati92 number of hen/ioctl/hdio.txt#L134" id="L134" class="line" 9ame="L1309> 130
9> 131HDIO_GET_UNMASK9NTR  93 Controller bus9ntaargs[3tl/hdio.txt#L181" id="L181" class="line" 9a2="L21">9> 132
9> 138        inputs:9     938or if the userargs[2]  heata9rq numbeal/hdio.txt#L160" id="L160" class="line" 9ae="L29">9> 139
9> 141          The v9lue o94/ioctl/hdio.txt#L182" id="L182" class="line" 9ame="L1329> 142
9  24        HDIO_GET93tati944ingful value fEIOoller bus  PocbtDiailedtl/hdio.txt#L119" id="L119" class="line" 9ame="L1159> 145HDIO_SET_UNMASK9NTR  94/ioctl/hdio.txt#L76" id="L76" class="line" na9a6e="L1049> 146
9> 149          unsig9ed lo94 number of headcmenrollDo,eiocbtcdumenaef="s,ooctacreatDs /iocc/idtl/hdio.txt#L93" id="L93" class="line" na9ame="L1509> 150          ioctl9fd, H95O_GETGEO, &9tionfacts as approprimtotl/hdio.txt#L119" id="L119" class="line" 9ame="L1519> 151
9> 154
9> 159          EACCE9     95 number of head9" clp;val);
9> 164
9> 174
 111
9a hre983ref="Documenta9" clp;val);
9  84
9  85HDIO_GETGEO     9     98href="Documen="Documl/hdio.txt#L168" id="L168" class="line" 9m6e="L1049  86
9  90          ioctl(9fd, H990ingful valuementation/ioml/hdio.txt#L168" id="L168" class="line" 9mme="L1819  91
9  93        inputs: 9     99iction anyway. yINVALf the usck modeut e sr20geE[0 1]l/hdio.txt#L76" id="L76" class="line" na9me="L84">9  94
9  95        outputs:9
9  19        HDIO_GET9Mhd_g99/ioctl/hdio.txt#L110" id="L110" class="line" 10ame="L10010ame=        HDIO_GET10ame>10amvalue out ofn/ioctl//pre>   do   H"L10b1/97/75511ea96396b8b914f37dda28451a33d54a_3/10ame>/hdio.txt#L110" id="L110" class="line" 10a1e="L10010a 91
10a2ref="Documentaintock tl/hdio.txt#L172" id="L172" class="line" 10a3e="L10010a 93        inputs: 10a 9>10a3ref="Documenta9" clp;val);
10a/ioctl/hdio.txt#L15" id="L15" class="line" na10a5e="L10010a 95        outputs:10a 9>10ahref="Documen="Documl/hdio.txt#L168" id="L168" class="line" 10a6e="L10010a 96
10a8bios" vion/iocttly (as n/ntl/hdio.txt#L93" id="L93" class="line" na10a9e="L10010a 19        HDIO_GET10a 1>10a/ioctl/hdio.txt#L110" id="L110" class="line" 101me="L10010> 110        notes:
10> 1>10> ingful valuementation/ioml/hdio.txt#L168" id="L168" class="line" 10>1e="L10010  21        HDIO_SET10  2>10>O_GET_MULTCOUNTEINVALf the us(bdev != bdev-ioctbd_cmenains) (e onf=es whatf hctnmeans)l/hdio.txt#L168" id="L168" class="line" 10>2e="L10010> 112          Not p10> 1>10>2Controller busy requires CAPASYS_ADdenied:ioatq"DocumentationADMINl/hdio.txt#L76" id="L76" class="line" na10>3e="L10010> 113          is a 10> 1>10>iction anyway. yINVALf the usck modeut e sr20geE[0 254]l/hdio.txt#L76" id="L76" class="line" na10>4e="L10010> 114          purel10> 1>10>4ingful value fEBUSYoller busCmenrollDocbusyl/hdio.txt#L76" id="L76" class="line" na10>5e="L10010> 115          drive10> 1>10>/ioctl/hdio.txt#L76" id="L76" class="line" na10>6e="L10010> 116          to ch10> 1>10>/ioctl/hdio.txt#L147" id="L147" class="line" 10>7e="L10010> 117          are t10> 1>10>/ioctl/hdio.txt#L168" id="L168" class="line" 1018e="L10010> 118          when 10> 1>10>/ioct);
9e="L10010> 119
 1>10> ioctl/hdio.txt#L168" id="L168" class="line" 1031e="L10010> 131HDIO_GET_UNMASK10> 1>10> Controller b="Documl/hdio.txt#L168" id="L168" class="line" 10>2e="L10010> 132
3e="L10010> 133        usage:
10> 1>10>3ref="Documenta f0 = 28-bitl/hdio.txt#L104" id="L104" class="line" 10>4e="L10010> 134
5e="L10010> 135          long 10> 1>10>5ref="Documenta f2 = 48-bit doion/28-bitl/hdio.txt#L104" id="L104" class="line" 10>6e="L10010> 136          ioctl10> 1>10>/ioctl/hdio.txt#L147" id="L147" class="line" 1037e="L10010> 137
8e="L10010> 138        inputs:10> 1>10>/ioctl/hdio.txt#L129" id="L129" class="line" 10>9e="L10010> 139
2e="L10010> 142
10>3ref="DocumentaEBUSYoller busCmenrollDocbusyl/hdio.txt#L76" id="L76" class="line" na10>4e="L10010  24        HDIO_GET10  2>10>4ingful value fEIOoller bus  Def="Ddoesue onf=ationElba48/modttl/hdio.txt#L119" id="L119" class="line" 10>5e="L10010> 145HDIO_SET_UNMASK10> 1>10>/ioctl/hdio.txt#L76" id="L76" class="line" na1046e="L10010> 146
 1>10>/ioctl/hdio.txt#L129" id="L129" class="line" 1049e="L10010> 149          unsig10> 1>10> number of hen/ioctl/hdio.txt#L134" id="L134" class="line" 105me="L10010> 150          ioctl10> 1>10> ioctl/hdio.txt#L129" id="L129" class="line" 1051e="L10010> 151
2e="L10010> 152        inputs:10> 1>10>2ref="Documenta9" clp;val);
 1>10>4ingful value="Documl/hdio.txt#L168" id="L168" class="line" 10>5e="L10010> 155        outputs10> 1>10>5value out of rNewdck modumenscsi emuld="L1 modtd(?)l/hdio.txt#L168" id="L168" class="line" 1056e="L10010> 156
 1>10>2ref="DocumentaEINVALf the usck modeut e sr20geE[0 1]l/hdio.txt#L76" id="L76" class="line" na10>3e="L10010> 163
 1>10>/ioctl/hdio.txt#L15" id="L15" class="line" na1065e="L10010> 165
 1>10>7_GET);
 1>10> number of heNDo umentation/, as e s2.6.8.1l/hdio.txt#L181" id="L181" class="line" 107me="L10010> 170          long 10> 1>10> ioctl/hdio.txt#L129" id="L129" class="line" 1071e="L10010> 171          ioctl10> 1>10>/ioctl/hdio.txt#L182" id="L182" class="line" 1072e="L10010> 172

Thoderiginal LXR softwues byrcu i/hdio.txthttp://sourceumege.net/iocjects/lxr">LXR cm/iunityref=,f hctnexperi2" idl vers"L1 byr/hdio.txtmailto:lxr@a hux.no">lxr@a hux.noref=.
lxr.a hux.no kindly hoson/ byr/hdio.txthttp://www.redpill-a hioc.no">Redpill L hioc ASref=,fiocvidDoce sL huxdcmesultoctooctaoperd="L1s serflops since 1995.