You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.8 KiB
116 lines
3.8 KiB
commit dca4c677237b01768f5d6d798a2d918547d2ee8e
|
|
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
|
Date: 1341289561 -0500
|
|
|
|
Update iso kioslave to better handle large images
|
|
|
|
diff --git a/kioslave/iso/kiso.cpp b/kioslave/iso/kiso.cpp
|
|
index c9e2d43..9ec1f1c 100644
|
|
--- a/kioslave/iso/kiso.cpp
|
|
+++ b/kioslave/iso/kiso.cpp
|
|
@@ -188,7 +188,7 @@ KIso::~KIso()
|
|
}
|
|
|
|
/* 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();
|
|
|
|
diff --git a/kioslave/iso/libisofs/isofs.c b/kioslave/iso/libisofs/isofs.c
|
|
index e599450..f1db442 100644
|
|
--- a/kioslave/iso/libisofs/isofs.c
|
|
+++ b/kioslave/iso/libisofs/isofs.c
|
|
@@ -122,7 +122,7 @@ void FreeBootTable(boot_head *boot) {
|
|
boot->defentry=NULL;
|
|
}
|
|
|
|
-int BootImageSize(int media,long len) {
|
|
+int BootImageSize(int media,long long len) {
|
|
long long ret;
|
|
|
|
switch(media & 0xf) {
|
|
@@ -158,7 +158,7 @@ static boot_entry *CreateBootEntry(char *be) {
|
|
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;
|
|
int i,end=0;
|
|
@@ -221,7 +221,7 @@ err:
|
|
/**
|
|
* 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;
|
|
struct iso_volume_descriptor buf;
|
|
@@ -577,7 +577,7 @@ int level=0,joliet=0,dirs,files;
|
|
iconv_t iconv_d;
|
|
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;
|
|
|
|
if ((ret=lseek64(fd, start << 11, SEEK_SET))<0) return ret;
|
|
diff --git a/kioslave/iso/libisofs/isofs.h b/kioslave/iso/libisofs/isofs.h
|
|
index b8971a4..1d17de4 100644
|
|
--- a/kioslave/iso/libisofs/isofs.h
|
|
+++ b/kioslave/iso/libisofs/isofs.h
|
|
@@ -50,13 +50,13 @@ typedef struct _rr_entry {
|
|
int re; /* relocated */
|
|
char z_algo[2]; /* zizofs algorithm */
|
|
char z_params[2]; /* zizofs parameters */
|
|
- long z_size; /* zizofs real_size */
|
|
+ long long z_size; /* zizofs real_size */
|
|
} rr_entry;
|
|
|
|
typedef struct _iso_vol_desc {
|
|
struct _iso_vol_desc *next;
|
|
struct _iso_vol_desc *prev;
|
|
- struct iso_volume_descriptor data;
|
|
+ struct iso_volume_descriptor data;
|
|
} iso_vol_desc;
|
|
|
|
typedef struct _boot_entry {
|
|
@@ -78,7 +78,7 @@ typedef struct _boot_head {
|
|
/**
|
|
* 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
|
|
@@ -107,7 +107,7 @@ time_t isodate_84261(char * p, int hs);
|
|
* If the function fails, returns NULL
|
|
* 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
|
|
@@ -140,7 +140,7 @@ int JolietLevel(struct iso_volume_descriptor *ivd);
|
|
/**
|
|
* 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,
|
|
@@ -151,7 +151,7 @@ void FreeBootTable(boot_head *boot);
|
|
/**
|
|
* 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
|
|
} //extern "C"
|