2009-11-11 Robert Millan <rmh.grub@aybabtu.com>
Large file support for grub-mkisofs. * conf/common.rmk (grub_mkisofs_CFLAGS): Add `-D_FILE_OFFSET_BITS=64'. * util/mkisofs/mkisofs.c (next_extent, last_extent) (session_start): Upgrade type to `uint64_t'. Update all users. * util/mkisofs/mkisofs.h: Include `<stdint.h>'. (struct directory_entry): Upgrade type of `starting_block' and `size' to `uint64_t'. Update all users. (struct deferred): Remove unused structure. (xfwrite): Upgrade type of `count' and `size' to `uint64_t'. Update all users. * util/mkisofs/tree.c (stat_filter, lstat_filter): Return -1 when file is larger than `UINT32_MAX'. * util/mkisofs/write.c (xfwrite): Upgrade type of `count' and `size' to `uint64_t'. Update all users. Fix handling of fwrite() return value. (struct deferred_write): Upgrade type of `extent' and `size' to `uint64_t'. Update all users. (last_extent_written): Upgrade type to `uint64_t'. Update all users. (write_one_file): Upgrade type of `count' and `size' to `uint64_t'. Update all users. Upgrade type of `remain' to `int64_t' and `use' to `size_t'. Use error() to handle fread() errors. (write_files): Rely on write_one_file() rather than calling xfwrite() directly.
This commit is contained in:
parent
6a9cead5cf
commit
2c55dbc0d5
6 changed files with 76 additions and 48 deletions
|
@ -26,6 +26,7 @@
|
|||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <prototyp.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
|
@ -159,8 +160,8 @@ struct directory_entry{
|
|||
struct directory_entry * next;
|
||||
struct directory_entry * jnext;
|
||||
struct iso_directory_record isorec;
|
||||
unsigned int starting_block;
|
||||
unsigned int size;
|
||||
uint64_t starting_block;
|
||||
uint64_t size;
|
||||
unsigned short priority;
|
||||
unsigned char jreclen; /* Joliet record len */
|
||||
char * name;
|
||||
|
@ -266,21 +267,13 @@ struct directory{
|
|||
unsigned short dir_nlink;
|
||||
};
|
||||
|
||||
struct deferred{
|
||||
struct deferred * next;
|
||||
unsigned int starting_block;
|
||||
char * name;
|
||||
struct directory * filedir;
|
||||
unsigned int flags;
|
||||
};
|
||||
|
||||
extern int goof;
|
||||
extern struct directory * root;
|
||||
extern struct directory * reloc_dir;
|
||||
extern unsigned int next_extent;
|
||||
extern unsigned int last_extent;
|
||||
extern unsigned int last_extent_written;
|
||||
extern unsigned int session_start;
|
||||
extern uint64_t next_extent;
|
||||
extern uint64_t last_extent;
|
||||
extern uint64_t last_extent_written;
|
||||
extern uint64_t session_start;
|
||||
|
||||
extern unsigned int path_table_size;
|
||||
extern unsigned int path_table[4];
|
||||
|
@ -353,7 +346,7 @@ extern void DECL(generate_one_directory,(struct directory *, FILE*));
|
|||
extern void DECL(memcpy_max, (char *, char *, int));
|
||||
extern int DECL(oneblock_size, (int starting_extent));
|
||||
extern struct iso_primary_descriptor vol_desc;
|
||||
extern void DECL(xfwrite, (void * buffer, int count, int size, FILE * file));
|
||||
extern void DECL(xfwrite, (void * buffer, uint64_t count, uint64_t size, FILE * file));
|
||||
extern void DECL(set_732, (char * pnt, unsigned int i));
|
||||
extern void DECL(set_722, (char * pnt, unsigned int i));
|
||||
extern void DECL(outputlist_insert, (struct output_fragment * frag));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue