mirror of
https://github.com/vivier/EMILE.git
synced 2025-02-25 08:28:59 +00:00
use device_io_t
This commit is contained in:
parent
4555512e10
commit
f2745a6bbb
@ -202,7 +202,8 @@ static int get_second_position(char *image, char *name, int *second_offset, int
|
||||
iso9660_FILE* file;
|
||||
iso9660_VOLUME *volume;
|
||||
|
||||
device.data = device_open(image);
|
||||
device_sector_size = 2048;
|
||||
device.data = (void*)device_open(image, O_RDONLY);
|
||||
device.read_sector = (stream_read_sector_t)device_read_sector;
|
||||
device.close = (stream_close_t)device_close;
|
||||
|
||||
@ -264,8 +265,14 @@ static int set_first(char *image, int drive_num, int second_offset, int second_s
|
||||
int i;
|
||||
int boottype;
|
||||
char bootblock[BOOTBLOCK_SIZE];
|
||||
device_io_t device;
|
||||
|
||||
map = map_open(image, O_RDONLY);
|
||||
device_sector_size = 2048;
|
||||
device.data = (void*)device_open(image, O_RDONLY);
|
||||
device.read_sector = (stream_read_sector_t)device_read_sector;
|
||||
device.close = (stream_close_t)device_close;
|
||||
|
||||
map = map_open(&device);
|
||||
for (i = 0; i < map_get_number(map); i++)
|
||||
{
|
||||
map_read(map, i);
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "libemile.h"
|
||||
#include "libmap.h"
|
||||
#include "emile_config.h"
|
||||
#include "device.h"
|
||||
|
||||
int verbose = 0;
|
||||
|
||||
@ -85,6 +86,7 @@ static int open_map_of( char *dev_name, int flags,
|
||||
int disk;
|
||||
char disk_name[16];
|
||||
int driver;
|
||||
device_io_t device;
|
||||
|
||||
ret = emile_scsi_get_rdev(dev_name, &driver, &disk, partition);
|
||||
if (ret == -1)
|
||||
@ -92,7 +94,13 @@ static int open_map_of( char *dev_name, int flags,
|
||||
|
||||
emile_get_dev_name(disk_name, driver, disk, 0);
|
||||
|
||||
*map = map_open(disk_name, flags);
|
||||
device_sector_size = 512;
|
||||
device.data = (void*)device_open(disk_name, flags);
|
||||
device.write_sector = (stream_read_sector_t)device_write_sector;
|
||||
device.read_sector = (stream_read_sector_t)device_read_sector;
|
||||
device.close = (stream_close_t)device_close;
|
||||
|
||||
*map = map_open(&device);
|
||||
if (*map == NULL)
|
||||
return -1;
|
||||
|
||||
|
@ -16,6 +16,7 @@
|
||||
|
||||
#include "libmap.h"
|
||||
#include "libemile.h"
|
||||
#include "device.h"
|
||||
|
||||
#define EMILE_MAX_DISK 16
|
||||
#define EMILE_MAX_DEVNAME 16
|
||||
@ -86,7 +87,7 @@ static int emile_scanbus(device_name_t devices[EMILE_MAX_DISK])
|
||||
return j;
|
||||
}
|
||||
|
||||
void diskinfo(char* device)
|
||||
void diskinfo(char* devname)
|
||||
{
|
||||
map_t* map;
|
||||
int j;
|
||||
@ -94,12 +95,20 @@ void diskinfo(char* device)
|
||||
char bootblock[BOOTBLOCK_SIZE];
|
||||
int block_size, block_count;
|
||||
int ret;
|
||||
device_io_t device;
|
||||
|
||||
printf("%s:", device);
|
||||
map = map_open(device, O_RDONLY);
|
||||
printf("%s:", devname);
|
||||
|
||||
device_sector_size = 512;
|
||||
device.data = (void*)device_open(devname, O_RDONLY);
|
||||
device.write_sector = (stream_read_sector_t)device_write_sector;
|
||||
device.read_sector = (stream_read_sector_t)device_read_sector;
|
||||
device.close = (stream_close_t)device_close;
|
||||
|
||||
map = map_open(&device);
|
||||
if (map == NULL)
|
||||
{
|
||||
fprintf(stderr, "Cannot read map of %s\n", device);
|
||||
fprintf(stderr, "Cannot read map of %s\n", devname);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -280,11 +289,11 @@ void diskinfo(char* device)
|
||||
|
||||
void scanbus(void)
|
||||
{
|
||||
device_name_t devices[EMILE_MAX_DISK];
|
||||
device_name_t devname[EMILE_MAX_DISK];
|
||||
int count;
|
||||
int i;
|
||||
|
||||
count = emile_scanbus(devices);
|
||||
count = emile_scanbus(devname);
|
||||
if (count == 0)
|
||||
{
|
||||
if (errno == EACCES)
|
||||
@ -296,5 +305,5 @@ void scanbus(void)
|
||||
printf("No disk found\n");
|
||||
}
|
||||
for (i = 0; i < count; i++)
|
||||
diskinfo(devices[i]);
|
||||
diskinfo(devname[i]);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user