@ -50,43 +50,27 @@
int do_reiserls ( cmd_tbl_t * cmdtp , int flag , int argc , char * const argv [ ] )
{
char * filename = " / " ;
int dev = 0 ;
int part = 1 ;
char * ep ;
int dev , part ;
block_dev_desc_t * dev_desc = NULL ;
int part_length ;
disk_partition_t info ;
if ( argc < 3 )
return CMD_RET_USAGE ;
dev = ( int ) simple_strtoul ( argv [ 2 ] , & ep , 16 ) ;
dev_desc = get_dev ( argv [ 1 ] , dev ) ;
if ( dev_desc = = NULL ) {
printf ( " \n ** Block device %s %d not supported \n " , argv [ 1 ] , dev ) ;
part = get_device_and_partition ( argv [ 1 ] , argv [ 2 ] , & dev_desc , & info ) ;
if ( part < 0 )
return 1 ;
}
if ( * ep ) {
if ( * ep ! = ' : ' ) {
puts ( " \n ** Invalid boot device, use `dev[:part]' ** \n " ) ;
return 1 ;
}
part = ( int ) simple_strtoul ( + + ep , NULL , 16 ) ;
}
if ( argc = = 4 ) {
filename = argv [ 3 ] ;
}
dev = dev_desc - > dev ;
PRINTF ( " Using device %s %d:%d, directory: %s \n " , argv [ 1 ] , dev , part , filename ) ;
if ( ( part_length = reiserfs_set_blk_dev ( dev_desc , part ) ) = = 0 ) {
printf ( " ** Bad partition - %s %d:%d ** \n " , argv [ 1 ] , dev , part ) ;
return 1 ;
}
reiserfs_set_blk_dev ( dev_desc , & info ) ;
if ( ! reiserfs_mount ( part_length ) ) {
if ( ! reiserfs_mount ( info . size ) ) {
printf ( " ** Bad Reiserfs partition or disk - %s %d:%d ** \n " , argv [ 1 ] , dev , part ) ;
return 1 ;
}
@ -112,9 +96,8 @@ U_BOOT_CMD(
int do_reiserload ( cmd_tbl_t * cmdtp , int flag , int argc , char * const argv [ ] )
{
char * filename = NULL ;
char * ep ;
int dev , part = 0 ;
ulong addr = 0 , part_length , filelen ;
int dev , part ;
ulong addr = 0 , filelen ;
disk_partition_t info ;
block_dev_desc_t * dev_desc = NULL ;
char buf [ 12 ] ;
@ -157,49 +140,19 @@ int do_reiserload (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return 1 ;
}
dev = ( int ) simple_strtoul ( argv [ 2 ] , & ep , 16 ) ;
dev_desc = get_dev ( argv [ 1 ] , dev ) ;
if ( dev_desc = = NULL ) {
printf ( " \n ** Block device %s %d not supported \n " , argv [ 1 ] , dev ) ;
part = get_device_and_partition ( argv [ 1 ] , argv [ 2 ] , & dev_desc , & info ) ;
if ( part < 0 )
return 1 ;
}
if ( * ep ) {
if ( * ep ! = ' : ' ) {
puts ( " \n ** Invalid boot device, use `dev[:part]' ** \n " ) ;
return 1 ;
}
part = ( int ) simple_strtoul ( + + ep , NULL , 16 ) ;
}
PRINTF ( " Using device %s%d, partition %d \n " , argv [ 1 ] , dev , part ) ;
dev = dev_desc - > dev ;
if ( part ! = 0 ) {
if ( get_partition_info ( dev_desc , part , & info ) ) {
printf ( " ** Bad partition %d ** \n " , part ) ;
return 1 ;
}
printf ( " Loading file \" %s \" from %s device %d%c%c \n " ,
filename , argv [ 1 ] , dev ,
part ? ' : ' : ' ' , part ? part + ' 0 ' : ' ' ) ;
if ( strncmp ( ( char * ) info . type , BOOT_PART_TYPE , sizeof ( info . type ) ) ! = 0 ) {
printf ( " \n ** Invalid partition type \" %.32s \" "
" (expect \" " BOOT_PART_TYPE " \" ) \n " ,
info . type ) ;
return 1 ;
}
PRINTF ( " \n Loading from block device %s device %d, partition %d: "
" Name: %.32s Type: %.32s File:%s \n " ,
argv [ 1 ] , dev , part , info . name , info . type , filename ) ;
} else {
PRINTF ( " \n Loading from block device %s device %d, File:%s \n " ,
argv [ 1 ] , dev , filename ) ;
}
if ( ( part_length = reiserfs_set_blk_dev ( dev_desc , part ) ) = = 0 ) {
printf ( " ** Bad partition - %s %d:%d ** \n " , argv [ 1 ] , dev , part ) ;
return 1 ;
}
reiserfs_set_blk_dev ( dev_desc , & info ) ;
if ( ! reiserfs_mount ( part_length ) ) {
if ( ! reiserfs_mount ( info . size ) ) {
printf ( " ** Bad Reiserfs partition or disk - %s %d:%d ** \n " , argv [ 1 ] , dev , part ) ;
return 1 ;
}