251
251
#include <string.h>
252
252
#include <sys/stat.h>
253
253
#include <sys/types.h>
254
-
254
+ #include <stdint.h>
255
255
256
256
#if defined( __FREEBSD__ ) || defined( __OPENBSD__ )
257
257
#include <machine/limits.h>
@@ -523,26 +523,26 @@ struct dir_node {
523
523
524
524
char * filename ;
525
525
526
- unsigned short r_offset ;
527
- unsigned char attributes ;
528
- unsigned char filename_length ;
526
+ uint16_t r_offset ;
527
+ uint8_t attributes ;
528
+ uint8_t filename_length ;
529
529
530
- unsigned long file_size ;
531
- unsigned long start_sector ;
530
+ uint32_t file_size ;
531
+ uint32_t start_sector ;
532
532
};
533
533
534
534
struct dir_node_avl {
535
- unsigned long offset ;
535
+ uint32_t offset ;
536
536
xoff_t dir_start ;
537
537
538
538
char * filename ;
539
- unsigned long file_size ;
540
- unsigned long start_sector ;
539
+ uint32_t file_size ;
540
+ uint32_t start_sector ;
541
541
dir_node_avl * subdirectory ;
542
542
543
- unsigned long old_start_sector ;
543
+ uint32_t old_start_sector ;
544
544
545
- avl_skew skew ;
545
+ avl_skew skew ;
546
546
dir_node_avl * left ;
547
547
dir_node_avl * right ;
548
548
};
@@ -554,13 +554,13 @@ struct create_list {
554
554
};
555
555
556
556
typedef struct FILE_TIME {
557
- unsigned long l ;
558
- unsigned long h ;
557
+ uint32_t l ;
558
+ uint32_t h ;
559
559
} FILE_TIME ;
560
560
561
561
typedef struct wdsafp_context {
562
562
xoff_t dir_start ;
563
- unsigned long * current_sector ;
563
+ uint32_t * current_sector ;
564
564
} wdsafp_context ;
565
565
566
566
typedef struct write_tree_context {
@@ -600,11 +600,11 @@ int write_directory( dir_node_avl *in_avl, int in_xiso, int in_depth );
600
600
int write_file ( dir_node_avl * in_avl , write_tree_context * in_context , int in_depth );
601
601
int write_tree ( dir_node_avl * in_avl , write_tree_context * in_context , int in_depth );
602
602
int calculate_total_files_and_bytes ( dir_node_avl * in_avl , void * in_context , int in_depth );
603
- int calculate_directory_size ( dir_node_avl * in_avl , unsigned long * out_size , long in_depth );
603
+ int calculate_directory_size ( dir_node_avl * in_avl , uint32_t * out_size , long in_depth );
604
604
int calculate_directory_requirements ( dir_node_avl * in_avl , void * in_context , int in_depth );
605
- int calculate_directory_offsets ( dir_node_avl * in_avl , unsigned long * io_context , int in_depth );
605
+ int calculate_directory_offsets ( dir_node_avl * in_avl , uint32_t * io_context , int in_depth );
606
606
int write_dir_start_and_file_positions ( dir_node_avl * in_avl , wdsafp_context * io_context , int in_depth );
607
- int write_volume_descriptors ( int in_xiso , unsigned long in_total_sectors );
607
+ int write_volume_descriptors ( int in_xiso , uint32_t in_total_sectors );
608
608
609
609
#if DEBUG
610
610
void write_sector ( int in_xiso , xoff_t in_start , char * in_name , char * in_extension );
@@ -625,8 +625,8 @@ static xoff_t s_total_bytes_all_isos = 0;
625
625
static int s_total_files_all_isos = 0 ;
626
626
static bool s_warned = 0 ;
627
627
628
- static bool s_remove_systemupdate = false;
629
- static char * s_systemupdate = "$SystemUpdate" ;
628
+ static bool s_remove_systemupdate = false;
629
+ static char * s_systemupdate = "$SystemUpdate" ;
630
630
631
631
static xoff_t s_xbox_disc_lseek = 0 ;
632
632
@@ -935,7 +935,7 @@ int create_xiso( char *in_root_directory, char *in_output_directory, dir_node_av
935
935
dir_node_avl root ;
936
936
FILE_TIME * ft = nil ;
937
937
write_tree_context wt_context ;
938
- unsigned long start_sector ;
938
+ uint32_t start_sector ;
939
939
int i , n , xiso = -1 , err = 0 ;
940
940
char * cwd = nil , * buf = nil , * iso_name , * xiso_path , * iso_dir ;
941
941
@@ -1192,7 +1192,7 @@ int traverse_xiso( int in_xiso, dir_node *in_dir_node, xoff_t in_dir_start, char
1192
1192
dir_node subdir ;
1193
1193
dir_node * dir , node ;
1194
1194
int err = 0 , sector ;
1195
- unsigned short l_offset = 0 , tmp ;
1195
+ uint16_t l_offset = 0 , tmp ;
1196
1196
1197
1197
if ( in_dir_node == nil ) in_dir_node = & node ;
1198
1198
@@ -1316,7 +1316,7 @@ int traverse_xiso( int in_xiso, dir_node *in_dir_node, xoff_t in_dir_start, char
1316
1316
memcpy ( & subdir , dir , sizeof (dir_node ) );
1317
1317
1318
1318
subdir .parent = nil ;
1319
- if ( ! err && dir -> file_size > 0 ) err = traverse_xiso ( in_xiso , & subdir , (xoff_t ) dir -> start_sector * XISO_SECTOR_SIZE + s_xbox_disc_lseek , path , in_mode , in_mode == k_generate_avl ? & dir -> avl_node -> subdirectory : nil , in_ll_compat );
1319
+ if ( ! err && dir -> file_size > 0 ) err = traverse_xiso ( in_xiso , & subdir , (xoff_t ) dir -> start_sector * XISO_SECTOR_SIZE + s_xbox_disc_lseek , path , in_mode , in_mode == k_generate_avl ? & dir -> avl_node -> subdirectory : nil , in_ll_compat );
1320
1320
1321
1321
if ( !s_remove_systemupdate || !strstr ( dir -> filename , s_systemupdate ) )
1322
1322
{
@@ -1334,7 +1334,7 @@ int traverse_xiso( int in_xiso, dir_node *in_dir_node, xoff_t in_dir_start, char
1334
1334
if ( in_mode == k_extract ) {
1335
1335
err = extract_file ( in_xiso , dir , in_mode , in_path );
1336
1336
} else {
1337
- exiso_log ( "%s%s%s (%lu bytes)%s" , in_mode == k_extract ? "extracting " : "" , in_path , dir -> filename , dir -> file_size , "" ); flush ();
1337
+ exiso_log ( "%s%s%s (%u bytes)%s" , in_mode == k_extract ? "extracting " : "" , in_path , dir -> filename , dir -> file_size , "" ); flush ();
1338
1338
exiso_log ( "\n" );
1339
1339
}
1340
1340
@@ -1570,7 +1570,7 @@ int boyer_moore_init( char *in_pattern, long in_pat_len, long in_alphabet_size )
1570
1570
1571
1571
if ( ! err ) {
1572
1572
for ( i = 0 ; i < in_alphabet_size ; ++ i ) s_bc_table [ i ] = in_pat_len ;
1573
- for ( i = 0 ; i < in_pat_len - 1 ; ++ i ) s_bc_table [ (unsigned char ) in_pattern [ i ] ] = in_pat_len - i - 1 ;
1573
+ for ( i = 0 ; i < in_pat_len - 1 ; ++ i ) s_bc_table [ (uint8_t ) in_pattern [ i ] ] = in_pat_len - i - 1 ;
1574
1574
1575
1575
if ( ( s_gs_table = (long * ) malloc ( 2 * ( in_pat_len + 1 ) * sizeof (long ) ) ) == nil ) mem_err ();
1576
1576
}
@@ -1613,7 +1613,7 @@ char *boyer_moore_search( char *in_text, long in_text_len ) {
1613
1613
if ( in_text [ j ] == s_pattern [ i ] ) { -- i ; -- j ; }
1614
1614
else {
1615
1615
k = s_gs_table [ i + 1 ];
1616
- l = s_bc_table [ (unsigned char ) in_text [ j ] ];
1616
+ l = s_bc_table [ (uint8_t ) in_text [ j ] ];
1617
1617
1618
1618
j += max ( k , l );
1619
1619
@@ -1634,7 +1634,7 @@ int extract_file( int in_xiso, dir_node *in_file, modes in_mode , char* path) {
1634
1634
char c ;
1635
1635
int err = 0 ;
1636
1636
bool warn = false;
1637
- unsigned long i , size , totalsize = 0 , totalpercent = 0 ;
1637
+ uint32_t i , size , totalsize = 0 , totalpercent = 0 ;
1638
1638
int out ;
1639
1639
1640
1640
if ( s_remove_systemupdate && strstr ( path , s_systemupdate ) )
@@ -1664,7 +1664,7 @@ int extract_file( int in_xiso, dir_node *in_file, modes in_mode , char* path) {
1664
1664
}
1665
1665
totalsize += size ;
1666
1666
totalpercent = ( totalsize * 100.0 ) / in_file -> file_size ;
1667
- exiso_log ( "%s%s%s (%lu bytes) [%lu %%]%s\r" , in_mode == k_extract ? "extracting " : "" , path , in_file -> filename , in_file -> file_size , totalpercent , "" );
1667
+ exiso_log ( "%s%s%s (%u bytes) [%u %%]%s\r" , in_mode == k_extract ? "extracting " : "" , path , in_file -> filename , in_file -> file_size , totalpercent , "" );
1668
1668
}
1669
1669
1670
1670
close ( out );
@@ -1675,7 +1675,7 @@ int extract_file( int in_xiso, dir_node *in_file, modes in_mode , char* path) {
1675
1675
{
1676
1676
totalsize += size ;
1677
1677
totalpercent = ( totalsize * 100.0 ) / in_file -> file_size ;
1678
- exiso_log ( "%s%s%s (%lu bytes) [%lu %%]%s\r" , in_mode == k_extract ? "extracting " : "" , path , in_file -> filename , in_file -> file_size , totalpercent , "" );
1678
+ exiso_log ( "%s%s%s (%u bytes) [%u %%]%s\r" , in_mode == k_extract ? "extracting " : "" , path , in_file -> filename , in_file -> file_size , totalpercent , "" );
1679
1679
}
1680
1680
}
1681
1681
}
@@ -1750,7 +1750,7 @@ int write_tree( dir_node_avl *in_avl, write_tree_context *in_context, int in_dep
1750
1750
1751
1751
int write_file ( dir_node_avl * in_avl , write_tree_context * in_context , int in_depth ) {
1752
1752
char * buf , * p ;
1753
- unsigned long bytes , n , size ;
1753
+ uint32_t bytes , n , size ;
1754
1754
int err = 0 , fd = -1 , i ;
1755
1755
1756
1756
if ( ! in_avl -> subdirectory ) {
@@ -1766,7 +1766,7 @@ int write_file( dir_node_avl *in_avl, write_tree_context *in_context, int in_dep
1766
1766
}
1767
1767
1768
1768
if ( ! err ) {
1769
- exiso_log ( "adding %s%s (%lu bytes) " , in_context -> path , in_avl -> filename , in_avl -> file_size ); flush ();
1769
+ exiso_log ( "adding %s%s (%u bytes) " , in_context -> path , in_avl -> filename , in_avl -> file_size ); flush ();
1770
1770
1771
1771
if ( s_media_enable && ( i = (int ) strlen ( in_avl -> filename ) ) >= 4 && in_avl -> filename [ i - 4 ] == '.' && ( in_avl -> filename [ i - 3 ] | 0x20 ) == 'x' && ( in_avl -> filename [ i - 2 ] | 0x20 ) == 'b' && ( in_avl -> filename [ i - 1 ] | 0x20 ) == 'e' ) {
1772
1772
for ( bytes = in_avl -> file_size , i = 0 ; ! err && bytes ; ) {
@@ -1821,15 +1821,15 @@ int write_file( dir_node_avl *in_avl, write_tree_context *in_context, int in_dep
1821
1821
int write_directory ( dir_node_avl * in_avl , int in_xiso , int in_depth ) {
1822
1822
xoff_t pos ;
1823
1823
int err = 0 , pad ;
1824
- unsigned short l_offset , r_offset ;
1825
- unsigned long file_size = in_avl -> file_size + (in_avl -> subdirectory ? (XISO_SECTOR_SIZE - (in_avl -> file_size % XISO_SECTOR_SIZE )) % XISO_SECTOR_SIZE : 0 );
1824
+ uint16_t l_offset , r_offset ;
1825
+ uint32_t file_size = in_avl -> file_size + (in_avl -> subdirectory ? (XISO_SECTOR_SIZE - (in_avl -> file_size % XISO_SECTOR_SIZE )) % XISO_SECTOR_SIZE : 0 );
1826
1826
char length = (char ) strlen ( in_avl -> filename ), attributes = in_avl -> subdirectory ? XISO_ATTRIBUTE_DIR : XISO_ATTRIBUTE_ARC , sector [ XISO_SECTOR_SIZE ];
1827
1827
1828
1828
little32 ( in_avl -> file_size );
1829
1829
little32 ( in_avl -> start_sector );
1830
1830
1831
- l_offset = (unsigned short ) (in_avl -> left ? in_avl -> left -> offset / XISO_DWORD_SIZE : 0 );
1832
- r_offset = (unsigned short ) (in_avl -> right ? in_avl -> right -> offset / XISO_DWORD_SIZE : 0 );
1831
+ l_offset = (uint16_t ) (in_avl -> left ? in_avl -> left -> offset / XISO_DWORD_SIZE : 0 );
1832
+ r_offset = (uint16_t ) (in_avl -> right ? in_avl -> right -> offset / XISO_DWORD_SIZE : 0 );
1833
1833
1834
1834
little16 ( l_offset );
1835
1835
little16 ( r_offset );
@@ -1853,7 +1853,7 @@ int write_directory( dir_node_avl *in_avl, int in_xiso, int in_depth ) {
1853
1853
}
1854
1854
1855
1855
1856
- int calculate_directory_offsets ( dir_node_avl * in_avl , unsigned long * io_current_sector , int in_depth ) {
1856
+ int calculate_directory_offsets ( dir_node_avl * in_avl , uint32_t * io_current_sector , int in_depth ) {
1857
1857
wdsafp_context context ;
1858
1858
1859
1859
if ( in_avl -> subdirectory ) {
@@ -1914,8 +1914,8 @@ int calculate_directory_requirements( dir_node_avl *in_avl, void *in_context, in
1914
1914
}
1915
1915
1916
1916
1917
- int calculate_directory_size ( dir_node_avl * in_avl , unsigned long * out_size , long in_depth ) {
1918
- unsigned long length ;
1917
+ int calculate_directory_size ( dir_node_avl * in_avl , uint32_t * out_size , long in_depth ) {
1918
+ uint32_t length ;
1919
1919
1920
1920
if ( in_depth == 0 ) * out_size = 0 ;
1921
1921
@@ -1976,7 +1976,7 @@ int generate_avl_tree_local( dir_node_avl **out_root, int *io_n ) {
1976
1976
free ( avl );
1977
1977
continue ;
1978
1978
}
1979
- s_total_bytes += avl -> file_size = (unsigned long ) sb .st_size ;
1979
+ s_total_bytes += avl -> file_size = (uint32_t ) sb .st_size ;
1980
1980
++ s_total_files ;
1981
1981
} else {
1982
1982
free ( avl -> filename );
@@ -2013,8 +2013,8 @@ FILE_TIME *alloc_filetime_now( void ) {
2013
2013
if ( ! err ) {
2014
2014
tmp = ( (double ) now + ( 369.0 * 365.25 * 24 * 60 * 60 - ( 3.0 * 24 * 60 * 60 + 6.0 * 60 * 60 ) ) ) * 1.0e7 ;
2015
2015
2016
- ft -> h = (unsigned long ) ( tmp * ( 1.0 / ( 4.0 * (double ) ( 1 << 30 ) ) ) );
2017
- ft -> l = (unsigned long ) ( tmp - ( (double ) ft -> h ) * 4.0 * (double ) ( 1 << 30 ) );
2016
+ ft -> h = (uint32_t ) ( tmp * ( 1.0 / ( 4.0 * (double ) ( 1 << 30 ) ) ) );
2017
+ ft -> l = (uint32_t ) ( tmp - ( (double ) ft -> h ) * 4.0 * (double ) ( 1 << 30 ) );
2018
2018
2019
2019
little32 ( ft -> h ); // convert to little endian here because this is a PC only struct and we won't read it anyway
2020
2020
little32 ( ft -> l );
@@ -2040,7 +2040,7 @@ FILE_TIME *alloc_filetime_now( void ) {
2040
2040
// write_volume_descriptors() assumes that the iso file block from offset
2041
2041
// 0x8000 to 0x8808 has been zeroed prior to entry.
2042
2042
2043
- int write_volume_descriptors ( int in_xiso , unsigned long in_total_sectors ) {
2043
+ int write_volume_descriptors ( int in_xiso , uint32_t in_total_sectors ) {
2044
2044
int big , err = 0 , little ;
2045
2045
char date [] = "0000000000000000" ;
2046
2046
char spaces [ ECMA_119_VOLUME_CREATION_DATE - ECMA_119_VOLUME_SET_IDENTIFIER ];
0 commit comments