Update libisofs to read files greater than 2GB

This partially resolves Bug 1111
pull/1/head
Timothy Pearson 12 years ago
parent 1c60648ff8
commit 8ade4e2130

@ -32,7 +32,7 @@
/* callback function for libisofs */ /* callback function for libisofs */
int K3bIso9660::read_callback( char* buf, sector_t start, int len, void* udata ) int K3bIso9660::read_callback( char* buf, sector_t start, long long len, void* udata )
{ {
K3bIso9660* isoF = static_cast<K3bIso9660*>(udata); K3bIso9660* isoF = static_cast<K3bIso9660*>(udata);

@ -38,7 +38,7 @@ struct iso_directory_record;
struct el_torito_boot_descriptor; struct el_torito_boot_descriptor;
struct iso_primary_descriptor; struct iso_primary_descriptor;
typedef long sector_t; typedef long long sector_t;
@ -437,7 +437,7 @@ class LIBK3B_EXPORT K3bIso9660
int m_joliet; int m_joliet;
// only used for creation // only used for creation
static int read_callback( char* buf, sector_t start, int len, void* udata ); static int read_callback( char* buf, sector_t start, long long len, void* udata );
static int isofs_callback( struct iso_directory_record* idr, void *udata ); static int isofs_callback( struct iso_directory_record* idr, void *udata );
K3bIso9660Directory *dirent; K3bIso9660Directory *dirent;
bool m_rr; bool m_rr;

@ -121,7 +121,7 @@ void FreeBootTable(boot_head *boot) {
boot->defentry=NULL; boot->defentry=NULL;
} }
int BootImageSize(readfunc* read,int media,sector_t start,int len,void* udata) { int BootImageSize(readfunc* read,int media,sector_t start,long long len,void* udata) {
int ret; int ret;
switch(media & 0xf) { switch(media & 0xf) {

@ -23,7 +23,7 @@
#include "iso_fs.h" #include "iso_fs.h"
#include "el_torito.h" #include "el_torito.h"
typedef long sector_t; typedef long long sector_t;
typedef struct _rr_entry { typedef struct _rr_entry {
int len; /* length of structure */ int len; /* length of structure */
@ -48,7 +48,7 @@ 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 */
int 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 {
@ -74,7 +74,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,sector_t start, int len,void *); typedef int readfunc(char *buf,sector_t start, long long len,void *);
/** /**
* ProcessDir uses this callback * ProcessDir uses this callback
@ -135,7 +135,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(readfunc *read,int media,sector_t start,int len,void *udata); int BootImageSize(readfunc *read,int media,sector_t start,long long len,void *udata);
/** /**
* Frees the boot catalog entries in 'boot'. If you ever called ReadBootTable, * Frees the boot catalog entries in 'boot'. If you ever called ReadBootTable,

Loading…
Cancel
Save