mirror of
https://github.com/vivier/EMILE.git
synced 2024-10-08 13:54:34 +00:00
Add scsi_device_t
This commit is contained in:
parent
64e1e16e13
commit
73b3180e0e
@ -7,9 +7,16 @@
|
||||
#include <sys/types.h>
|
||||
#include <macos/scsi.h>
|
||||
|
||||
typedef struct {
|
||||
int target;
|
||||
unsigned int sector_size;
|
||||
} scsi_device_t;
|
||||
|
||||
extern int scsi_command(int target, char* cdb, int count, TIB_t* tib);
|
||||
extern int scsi_INQUIRY(int target, char* buffer, size_t count);
|
||||
extern int scsi_READ(int target, unsigned long offset, unsigned short nb_blocks,
|
||||
char *buffer, int buffer_size);
|
||||
|
||||
extern int scsi_read_sector(off_t offset, void* buffer, size_t size);
|
||||
extern scsi_device_t *scsi_open(int target);
|
||||
extern int scsi_read_sector(scsi_device_t *device, off_t offset, void* buffer, size_t size);
|
||||
extern int scsi_close(scsi_device_t *device);
|
||||
|
@ -11,18 +11,18 @@
|
||||
|
||||
#include "libscsi.h"
|
||||
|
||||
#define SECTOR_SIZE (2048)
|
||||
#define ISO_BLOCKS(X) (((X) / SECTOR_SIZE) + (((X)%SECTOR_SIZE)?1:0))
|
||||
#define ISO_BLOCKS(X) (((X) / device->sector_size) + (((X)%device->sector_size)?1:0))
|
||||
|
||||
/* offset is a block number
|
||||
* size is the number of bytes to read
|
||||
*/
|
||||
|
||||
int scsi_read_sector(off_t offset, void* buffer, size_t size)
|
||||
int scsi_read_sector(scsi_device_t *device,
|
||||
off_t offset, void* buffer, size_t size)
|
||||
{
|
||||
OSErr err;
|
||||
|
||||
err = scsi_READ(3, offset, ISO_BLOCKS(size), buffer, size);
|
||||
err = scsi_READ(device->target, offset, ISO_BLOCKS(size), buffer, size);
|
||||
if (err != noErr)
|
||||
return -1;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user