PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu hdreg.h



lost
22-10-2003, 10:21
Hallo,

ich beschäftige mich gerade mit ATA/ATAPI Programmierung unter Linux.

int fd, i;
unsigned char args[4+512] = {WIN_READ,1,0,1};
unsigned char a;

if ((fd = open("/dev/hdd", O_RDWR | O_NONBLOCK)) == -1)
{
perror("Can't open device /dev/hdd");
return(1);
}

if ((ioctl(fd, HDIO_DRIVE_CMD, &args)) == -1)
perror("READ SECTOR failed");

Das klappt auch so halbwegs. Hab mir mal /usr/include/linux/hdreg.h angesehen und mir ist folgendes augefallen:


typedef unsigned char task_ioreg_t;

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

Wenn ich das richig sehe sind alle vier Werte nur jeweils ein Byte gross. Wie adressiere ich Sektoren die grösser sind als 255 ??

Vielen Dank,
Bernd

lost
23-10-2003, 11:20
Hi,

bin inzwischen schon etwas weiter, aber es gibt noch immer genug ungereimtes.

Kennt von euch jemand eine Newsgroup oder ein Forum in dem Themen wie ATA/ATAPI besprochen werden ??

Vielen Dank,
Bernd

Trillian
23-10-2003, 13:17
Ich würd behaupten, dass du bei solchen Sachen im Usenet prinzipiell besser beraten bist ;D

Probier's in de.comp.os.unix.programming (bin mir beim Namen nicht 100% sicher).

anda_skoa
23-10-2003, 13:32
Oder comp.os.linux.development.system

Ciao,
_