Update iso kioslave to better handle large images

(cherry picked from commit dca4c67723)
v3.5.13-sru
Timothy Pearson 13 years ago committed by Slávek Banko
parent a58359b532
commit 27939e15c4

@ -188,7 +188,7 @@ KIso::~KIso()
} }
/* callback function for libisofs */ /* callback function for libisofs */
static int readf(char *buf, long start, long len,void *udata) { static int readf(char *buf, long long start, long long len,void *udata) {
TQIODevice* dev = ( static_cast<KIso*> (udata) )->device(); TQIODevice* dev = ( static_cast<KIso*> (udata) )->device();

@ -122,7 +122,7 @@ void FreeBootTable(boot_head *boot) {
boot->defentry=NULL; boot->defentry=NULL;
} }
int BootImageSize(int media,long len) { int BootImageSize(int media,long long len) {
long long ret; long long ret;
switch(media & 0xf) { switch(media & 0xf) {
@ -158,7 +158,7 @@ static boot_entry *CreateBootEntry(char *be) {
return entry; return entry;
} }
int ReadBootTable(readfunc *read,long sector, boot_head *head, void *udata) { int ReadBootTable(readfunc *read,long long sector, boot_head *head, void *udata) {
char buf[2048], *c, *be; char buf[2048], *c, *be;
int i,end=0; int i,end=0;
@ -221,7 +221,7 @@ err:
/** /**
* Creates the linked list of the volume descriptors * Creates the linked list of the volume descriptors
*/ */
iso_vol_desc *ReadISO9660(readfunc *read,long sector,void *udata) { iso_vol_desc *ReadISO9660(readfunc *read,long long sector,void *udata) {
int i; int i;
struct iso_volume_descriptor buf; struct iso_volume_descriptor buf;
@ -577,7 +577,7 @@ int level=0,joliet=0,dirs,files;
iconv_t iconv_d; iconv_t iconv_d;
int fd; int fd;
int readf(char *buf, long start, long len,void *udata) { int readf(char *buf, long long start, long long len,void *udata) {
int ret; int ret;
if ((ret=lseek64(fd, start << 11, SEEK_SET))<0) return ret; if ((ret=lseek64(fd, start << 11, SEEK_SET))<0) return ret;

@ -50,13 +50,13 @@ typedef struct _rr_entry {
int re; /* relocated */ int re; /* relocated */
char z_algo[2]; /* zizofs algorithm */ char z_algo[2]; /* zizofs algorithm */
char z_params[2]; /* zizofs parameters */ char z_params[2]; /* zizofs parameters */
long z_size; /* zizofs real_size */ long long z_size; /* zizofs real_size */
} rr_entry; } rr_entry;
typedef struct _iso_vol_desc { typedef struct _iso_vol_desc {
struct _iso_vol_desc *next; struct _iso_vol_desc *next;
struct _iso_vol_desc *prev; struct _iso_vol_desc *prev;
struct iso_volume_descriptor data; struct iso_volume_descriptor data;
} iso_vol_desc; } iso_vol_desc;
typedef struct _boot_entry { typedef struct _boot_entry {
@ -78,7 +78,7 @@ typedef struct _boot_head {
/** /**
* this callback function needs to read 'len' sectors from 'start' into 'buf' * this callback function needs to read 'len' sectors from 'start' into 'buf'
*/ */
typedef int readfunc(char *buf,long start, long len,void *); typedef int readfunc(char *buf,long long start, long long len,void *);
/** /**
* ProcessDir uses this callback * ProcessDir uses this callback
@ -107,7 +107,7 @@ time_t isodate_84261(char * p, int hs);
* If the function fails, returns NULL * If the function fails, returns NULL
* Don't forget to call FreeISO9660 after using the volume descriptor list! * Don't forget to call FreeISO9660 after using the volume descriptor list!
*/ */
iso_vol_desc *ReadISO9660(readfunc *read,long sector,void *udata); iso_vol_desc *ReadISO9660(readfunc *read,long long sector,void *udata);
/** /**
* Frees the linked list of volume descriptors * Frees the linked list of volume descriptors
@ -140,7 +140,7 @@ int JolietLevel(struct iso_volume_descriptor *ivd);
/** /**
* Returns the size of the boot image (in 512 byte sectors) * Returns the size of the boot image (in 512 byte sectors)
*/ */
int BootImageSize(int media,long len); int BootImageSize(int media,long long len);
/** /**
* Frees the boot catalog entries in 'boot'. If you ever called ReadBootTable, * Frees the boot catalog entries in 'boot'. If you ever called ReadBootTable,
@ -151,7 +151,7 @@ void FreeBootTable(boot_head *boot);
/** /**
* Reads the boot catalog into 'head'. Don't forget to call FreeBootTable! * Reads the boot catalog into 'head'. Don't forget to call FreeBootTable!
*/ */
int ReadBootTable(readfunc *read,long sector, boot_head *head, void *udata); int ReadBootTable(readfunc *read,long long sector, boot_head *head, void *udata);
#ifdef __cplusplus #ifdef __cplusplus
} //extern "C" } //extern "C"

Loading…
Cancel
Save