EMILE/libscsi/scsi_open.c

32 lines
602 B
C
Raw Normal View History

2005-11-21 21:57:27 +00:00
/*
*
* (c) 2005 Laurent Vivier <LaurentVivier@wanadoo.fr>
*
*/
2005-11-21 21:55:36 +00:00
#include <stdlib.h>
#include <macos/errors.h>
2005-11-21 21:55:36 +00:00
#include "libscsi.h"
2005-11-21 21:55:36 +00:00
scsi_device_t *scsi_open(int target)
{
scsi_device_t *dev;
unsigned char buff[8];
OSErr err;
err = scsi_READ_CAPACITY(target, buff, 8);
if (err != noErr)
return NULL;
2005-11-21 21:55:36 +00:00
dev = (scsi_device_t *)malloc(sizeof(scsi_device_t));
if (dev == NULL)
return NULL;
dev->target = target;
dev->capacity = (buff[0] << 24) | (buff[1] << 16) | (buff[2] << 8) | buff[3];
dev->sector_size = (buff[4] << 24) | (buff[5] << 16) | (buff[6] << 8) | buff[7];
2005-11-21 21:55:36 +00:00
return dev;
}