1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
8 * $Id: ipodpatcher.c 12237 2007-02-08 21:31:38Z dave $
10 * Copyright (C) 2006-2007 Dave Chapman
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
22 #ifndef _IPODPATCHER_H
23 #define _IPODPATCHER_H
31 /* Size of buffer for disk I/O - 8MB is large enough for any version
32 of the Apple firmware, but not the Nano's RSRC image. */
33 #define BUFFER_SIZE 8*1024*1024
34 extern unsigned char* ipod_sectorbuf
;
35 extern int ipod_verbose
;
37 #define FILETYPE_DOT_IPOD 0
38 #define FILETYPE_DOT_BIN 1
40 #define FILETYPE_INTERNAL 2
43 char* get_parttype(int pt
);
44 int read_partinfo(struct ipod_t
* ipod
, int silent
);
45 int read_partition(struct ipod_t
* ipod
, int outfile
);
46 int write_partition(struct ipod_t
* ipod
, int infile
);
47 int diskmove(struct ipod_t
* ipod
, int delta
);
48 int add_bootloader(struct ipod_t
* ipod
, char* filename
, int type
);
49 int delete_bootloader(struct ipod_t
* ipod
);
50 int write_firmware(struct ipod_t
* ipod
, char* filename
, int type
);
51 int read_firmware(struct ipod_t
* ipod
, char* filename
, int type
);
52 int read_directory(struct ipod_t
* ipod
);
53 int list_images(struct ipod_t
* ipod
);
54 int getmodel(struct ipod_t
* ipod
, int ipod_version
);
55 int ipod_scan(struct ipod_t
* ipod
);
56 int write_dos_partition_table(struct ipod_t
* ipod
);
57 int read_aupd(struct ipod_t
* ipod
, char* filename
);
58 int write_aupd(struct ipod_t
* ipod
, char* filename
);
59 off_t
filesize(int fd
);