mirror of
https://github.com/vivier/EMILE.git
synced 2025-02-25 23:29:10 +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_FILE* file;
|
||||||
iso9660_VOLUME *volume;
|
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.read_sector = (stream_read_sector_t)device_read_sector;
|
||||||
device.close = (stream_close_t)device_close;
|
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 i;
|
||||||
int boottype;
|
int boottype;
|
||||||
char bootblock[BOOTBLOCK_SIZE];
|
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++)
|
for (i = 0; i < map_get_number(map); i++)
|
||||||
{
|
{
|
||||||
map_read(map, i);
|
map_read(map, i);
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "libemile.h"
|
#include "libemile.h"
|
||||||
#include "libmap.h"
|
#include "libmap.h"
|
||||||
#include "emile_config.h"
|
#include "emile_config.h"
|
||||||
|
#include "device.h"
|
||||||
|
|
||||||
int verbose = 0;
|
int verbose = 0;
|
||||||
|
|
||||||
@ -85,6 +86,7 @@ static int open_map_of( char *dev_name, int flags,
|
|||||||
int disk;
|
int disk;
|
||||||
char disk_name[16];
|
char disk_name[16];
|
||||||
int driver;
|
int driver;
|
||||||
|
device_io_t device;
|
||||||
|
|
||||||
ret = emile_scsi_get_rdev(dev_name, &driver, &disk, partition);
|
ret = emile_scsi_get_rdev(dev_name, &driver, &disk, partition);
|
||||||
if (ret == -1)
|
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);
|
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)
|
if (*map == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
#include "libmap.h"
|
#include "libmap.h"
|
||||||
#include "libemile.h"
|
#include "libemile.h"
|
||||||
|
#include "device.h"
|
||||||
|
|
||||||
#define EMILE_MAX_DISK 16
|
#define EMILE_MAX_DISK 16
|
||||||
#define EMILE_MAX_DEVNAME 16
|
#define EMILE_MAX_DEVNAME 16
|
||||||
@ -86,7 +87,7 @@ static int emile_scanbus(device_name_t devices[EMILE_MAX_DISK])
|
|||||||
return j;
|
return j;
|
||||||
}
|
}
|
||||||
|
|
||||||
void diskinfo(char* device)
|
void diskinfo(char* devname)
|
||||||
{
|
{
|
||||||
map_t* map;
|
map_t* map;
|
||||||
int j;
|
int j;
|
||||||
@ -94,12 +95,20 @@ void diskinfo(char* device)
|
|||||||
char bootblock[BOOTBLOCK_SIZE];
|
char bootblock[BOOTBLOCK_SIZE];
|
||||||
int block_size, block_count;
|
int block_size, block_count;
|
||||||
int ret;
|
int ret;
|
||||||
|
device_io_t device;
|
||||||
|
|
||||||
printf("%s:", device);
|
printf("%s:", devname);
|
||||||
map = map_open(device, O_RDONLY);
|
|
||||||
|
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)
|
if (map == NULL)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Cannot read map of %s\n", device);
|
fprintf(stderr, "Cannot read map of %s\n", devname);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -280,11 +289,11 @@ void diskinfo(char* device)
|
|||||||
|
|
||||||
void scanbus(void)
|
void scanbus(void)
|
||||||
{
|
{
|
||||||
device_name_t devices[EMILE_MAX_DISK];
|
device_name_t devname[EMILE_MAX_DISK];
|
||||||
int count;
|
int count;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
count = emile_scanbus(devices);
|
count = emile_scanbus(devname);
|
||||||
if (count == 0)
|
if (count == 0)
|
||||||
{
|
{
|
||||||
if (errno == EACCES)
|
if (errno == EACCES)
|
||||||
@ -296,5 +305,5 @@ void scanbus(void)
|
|||||||
printf("No disk found\n");
|
printf("No disk found\n");
|
||||||
}
|
}
|
||||||
for (i = 0; i < count; i++)
|
for (i = 0; i < count; i++)
|
||||||
diskinfo(devices[i]);
|
diskinfo(devname[i]);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user