@ -75,6 +75,7 @@ int main(int argc, char **argv)
int retval = 0 ;
int retval = 0 ;
struct image_type_params * tparams = NULL ;
struct image_type_params * tparams = NULL ;
int pad_len = 0 ;
int pad_len = 0 ;
int dfd ;
params . cmdname = * argv ;
params . cmdname = * argv ;
params . addr = params . ep = 0 ;
params . addr = params . ep = 0 ;
@ -310,6 +311,22 @@ NXTARG: ;
exit ( retval ) ;
exit ( retval ) ;
}
}
dfd = open ( params . datafile , O_RDONLY | O_BINARY ) ;
if ( dfd < 0 ) {
fprintf ( stderr , " %s: Can't open %s: %s \n " ,
params . cmdname , params . datafile , strerror ( errno ) ) ;
exit ( EXIT_FAILURE ) ;
}
if ( fstat ( dfd , & sbuf ) < 0 ) {
fprintf ( stderr , " %s: Can't stat %s: %s \n " ,
params . cmdname , params . datafile , strerror ( errno ) ) ;
exit ( EXIT_FAILURE ) ;
}
params . file_size = sbuf . st_size + tparams - > header_size ;
close ( dfd ) ;
/*
/*
* In case there an header with a variable
* In case there an header with a variable
* length will be added , the corresponding
* length will be added , the corresponding
@ -409,6 +426,7 @@ NXTARG: ;
params . cmdname , params . imagefile , strerror ( errno ) ) ;
params . cmdname , params . imagefile , strerror ( errno ) ) ;
exit ( EXIT_FAILURE ) ;
exit ( EXIT_FAILURE ) ;
}
}
params . file_size = sbuf . st_size ;
ptr = mmap ( 0 , sbuf . st_size , PROT_READ | PROT_WRITE , MAP_SHARED , ifd , 0 ) ;
ptr = mmap ( 0 , sbuf . st_size , PROT_READ | PROT_WRITE , MAP_SHARED , ifd , 0 ) ;
if ( ptr = = MAP_FAILED ) {
if ( ptr = = MAP_FAILED ) {