Hi, I want get the information from the hard drive via ioctl command. I want to 
use the HDIO_DRIVE
_TASK command not the HDIO_DRIVE_CMD. With the HDIO_DRIVE _TASK the function 
returns 0 thats ok,
but no data is in the additional 512 unsigned char array. Here is the code:

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/hdreg.h>

#define SIZE 520

int main ()
{
int fd, i;
        unsigned char args[SIZE]; 
        
        for (i = 0; i < SIZE; i++)
                 args[i] = 0;
 
  // prerequisites DRDY set to 1
  
  args[0] = 0xEC;          //COMMAND
        //args[1] = 0xD0;          //FEATURE
 //args[2] = 0x1;       //NSECTOR
        //args[3] =  0x1;          //SECTOR
        //args[4] = 0x4F;          //LCYL
        //args[5] = 0xC2;          //HCYL
        //args[6] = 64;      //SELECT
        args[7] = 0xff;
        
        fd = open ("/dev/hda", O_RDONLY);

        printf ("%d\n", ioctl (fd, HDIO_DRIVE_TASK, &args));

        
        for (i = 0; i < SIZE; i++)
                {
                        if (i == 7)
                                puts ("\ndata:");       
                        printf ("%X|", args[i]);
                }
        
        
        close (fd);
        
        puts ("");
        
        return (0);
}


       
____________________________________________________________________________________
Got a little couch potato? 
Check out fun summer activities for kids.
http://search.yahoo.com/search?fr=oni_on_mail&p=summer+activities+for+kids&cs=bz
 
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to