1
0
Fork 0
forked from len0rd/rockbox

Changes to aid incorporation into rbutil, based on part of FS #6643 from Dominik Wenger. Move display_partinfo() function into main.c (where it belongs) and export get_parttype() function from ipodpatcher.c. Also add a targetname variable to struct ipod_t to enable bootloader URLs to be constructed.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12264 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dave Chapman 2007-02-10 20:09:23 +00:00
parent 955afed1b7
commit a6d68bd740
4 changed files with 30 additions and 20 deletions

View file

@ -70,6 +70,7 @@ struct ipod_t {
int modelnum; int modelnum;
char* modelname; char* modelname;
char* modelstr; char* modelstr;
char* targetname;
int macpod; int macpod;
#ifdef WITH_BOOTOBJS #ifdef WITH_BOOTOBJS
unsigned char* bootloader; unsigned char* bootloader;

View file

@ -158,25 +158,6 @@ void int2be(unsigned int val, unsigned char* addr)
((long)array[pos] | ((long)array[pos+1] << 8 ) |\ ((long)array[pos] | ((long)array[pos+1] << 8 ) |\
((long)array[pos+2] << 16 ) | ((long)array[pos+3] << 24 )) ((long)array[pos+2] << 16 ) | ((long)array[pos+3] << 24 ))
void display_partinfo(struct ipod_t* ipod)
{
int i;
double sectors_per_MB = (1024.0*1024.0)/ipod->sector_size;
printf("[INFO] Part Start Sector End Sector Size (MB) Type\n");
for ( i = 0; i < 4; i++ ) {
if (ipod->pinfo[i].start != 0) {
printf("[INFO] %d %10ld %10ld %10.1f %s (0x%02x)\n",
i,
ipod->pinfo[i].start,
ipod->pinfo[i].start+ipod->pinfo[i].size-1,
ipod->pinfo[i].size/sectors_per_MB,
get_parttype(ipod->pinfo[i].type),
ipod->pinfo[i].type);
}
}
}
int read_partinfo(struct ipod_t* ipod, int silent) int read_partinfo(struct ipod_t* ipod, int silent)
{ {
int i; int i;
@ -1127,6 +1108,7 @@ int getmodel(struct ipod_t* ipod, int ipod_version)
ipod->modelstr="3rd Generation"; ipod->modelstr="3rd Generation";
ipod->modelnum = 7; ipod->modelnum = 7;
ipod->modelname = "ip3g"; ipod->modelname = "ip3g";
ipod->targetname = "ipod3g";
#ifdef WITH_BOOTOBJS #ifdef WITH_BOOTOBJS
ipod->bootloader = ipod3g; ipod->bootloader = ipod3g;
ipod->bootloader_len = LEN_ipod3g; ipod->bootloader_len = LEN_ipod3g;
@ -1136,6 +1118,7 @@ int getmodel(struct ipod_t* ipod, int ipod_version)
ipod->modelstr="1st Generation Mini"; ipod->modelstr="1st Generation Mini";
ipod->modelnum = 9; ipod->modelnum = 9;
ipod->modelname = "mini"; ipod->modelname = "mini";
ipod->targetname = "ipodmini";
#ifdef WITH_BOOTOBJS #ifdef WITH_BOOTOBJS
ipod->bootloader = ipodmini; ipod->bootloader = ipodmini;
ipod->bootloader_len = LEN_ipodmini; ipod->bootloader_len = LEN_ipodmini;
@ -1145,6 +1128,7 @@ int getmodel(struct ipod_t* ipod, int ipod_version)
ipod->modelstr="4th Generation"; ipod->modelstr="4th Generation";
ipod->modelnum = 8; ipod->modelnum = 8;
ipod->modelname = "ip4g"; ipod->modelname = "ip4g";
ipod->targetname = "ipod4g";
#ifdef WITH_BOOTOBJS #ifdef WITH_BOOTOBJS
ipod->bootloader = ipod4g; ipod->bootloader = ipod4g;
ipod->bootloader_len = LEN_ipod4g; ipod->bootloader_len = LEN_ipod4g;
@ -1154,6 +1138,7 @@ int getmodel(struct ipod_t* ipod, int ipod_version)
ipod->modelstr="Photo/Color"; ipod->modelstr="Photo/Color";
ipod->modelnum = 3; ipod->modelnum = 3;
ipod->modelname = "ipco"; ipod->modelname = "ipco";
ipod->targetname = "ipodcolor";
#ifdef WITH_BOOTOBJS #ifdef WITH_BOOTOBJS
ipod->bootloader = ipodcolor; ipod->bootloader = ipodcolor;
ipod->bootloader_len = LEN_ipodcolor; ipod->bootloader_len = LEN_ipodcolor;
@ -1163,6 +1148,7 @@ int getmodel(struct ipod_t* ipod, int ipod_version)
ipod->modelstr="2nd Generation Mini"; ipod->modelstr="2nd Generation Mini";
ipod->modelnum = 11; ipod->modelnum = 11;
ipod->modelname = "mn2g"; ipod->modelname = "mn2g";
ipod->targetname = "ipodmini2g";
#ifdef WITH_BOOTOBJS #ifdef WITH_BOOTOBJS
ipod->bootloader = ipodmini2g; ipod->bootloader = ipodmini2g;
ipod->bootloader_len = LEN_ipodmini2g; ipod->bootloader_len = LEN_ipodmini2g;
@ -1172,6 +1158,7 @@ int getmodel(struct ipod_t* ipod, int ipod_version)
ipod->modelstr="1st Generation Nano"; ipod->modelstr="1st Generation Nano";
ipod->modelnum = 4; ipod->modelnum = 4;
ipod->modelname = "nano"; ipod->modelname = "nano";
ipod->targetname = "ipodnano";
#ifdef WITH_BOOTOBJS #ifdef WITH_BOOTOBJS
ipod->bootloader = ipodnano; ipod->bootloader = ipodnano;
ipod->bootloader_len = LEN_ipodnano; ipod->bootloader_len = LEN_ipodnano;
@ -1181,6 +1168,7 @@ int getmodel(struct ipod_t* ipod, int ipod_version)
ipod->modelstr="Video (aka 5th Generation)"; ipod->modelstr="Video (aka 5th Generation)";
ipod->modelnum = 5; ipod->modelnum = 5;
ipod->modelname = "ipvd"; ipod->modelname = "ipvd";
ipod->targetname = "ipodvideo";
#ifdef WITH_BOOTOBJS #ifdef WITH_BOOTOBJS
ipod->bootloader = ipodvideo; ipod->bootloader = ipodvideo;
ipod->bootloader_len = LEN_ipodvideo; ipod->bootloader_len = LEN_ipodvideo;
@ -1189,6 +1177,7 @@ int getmodel(struct ipod_t* ipod, int ipod_version)
default: default:
ipod->modelname = NULL; ipod->modelname = NULL;
ipod->modelnum = 0; ipod->modelnum = 0;
ipod->targetname = NULL;
#ifdef WITH_BOOTOBJS #ifdef WITH_BOOTOBJS
ipod->bootloader = NULL; ipod->bootloader = NULL;
ipod->bootloader_len = 0; ipod->bootloader_len = 0;

View file

@ -33,7 +33,7 @@ extern unsigned char* sectorbuf;
#define FILETYPE_INTERNAL 2 #define FILETYPE_INTERNAL 2
#endif #endif
void display_partinfo(struct ipod_t* ipod); char* get_parttype(int pt);
int read_partinfo(struct ipod_t* ipod, int silent); int read_partinfo(struct ipod_t* ipod, int silent);
int read_partition(struct ipod_t* ipod, int outfile); int read_partition(struct ipod_t* ipod, int outfile);
int write_partition(struct ipod_t* ipod, int infile); int write_partition(struct ipod_t* ipod, int infile);

View file

@ -102,6 +102,26 @@ void print_usage(void)
#endif #endif
} }
void display_partinfo(struct ipod_t* ipod)
{
int i;
double sectors_per_MB = (1024.0*1024.0)/ipod->sector_size;
printf("[INFO] Part Start Sector End Sector Size (MB) Type\n");
for ( i = 0; i < 4; i++ ) {
if (ipod->pinfo[i].start != 0) {
printf("[INFO] %d %10ld %10ld %10.1f %s (0x%02x)\n",
i,
ipod->pinfo[i].start,
ipod->pinfo[i].start+ipod->pinfo[i].size-1,
ipod->pinfo[i].size/sectors_per_MB,
get_parttype(ipod->pinfo[i].type),
ipod->pinfo[i].type);
}
}
}
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
#ifdef WITH_BOOTOBJS #ifdef WITH_BOOTOBJS