diff options
author | Dave Chapman <dave@dchapman.com> | 2007-02-10 19:49:43 +0000 |
---|---|---|
committer | Dave Chapman <dave@dchapman.com> | 2007-02-10 19:49:43 +0000 |
commit | 955afed1b74793a3f06f98f3c259ec98f26a0b82 (patch) | |
tree | 6dcaa6b318ce282b21327530171f4f6a3297cb04 /rbutil/ipodpatcher/ipodio.h | |
parent | f0efde23039064d393e8cc35c2d88a487c47b1c7 (diff) |
Move ipodpatcher into rbutil directory
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12263 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/ipodpatcher/ipodio.h')
-rw-r--r-- | rbutil/ipodpatcher/ipodio.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/rbutil/ipodpatcher/ipodio.h b/rbutil/ipodpatcher/ipodio.h new file mode 100644 index 0000000000..d0641faa2b --- /dev/null +++ b/rbutil/ipodpatcher/ipodio.h @@ -0,0 +1,89 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2006-2007 Dave Chapman + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef __IPODIO_H +#define __IPODIO_H + +#include <stdint.h> + +#ifdef __WIN32__ +#include <windows.h> +#else +#define HANDLE int +#define O_BINARY 0 +#endif + +/* The maximum number of images in a firmware partition - a guess... */ +#define MAX_IMAGES 10 + +enum firmwaretype_t { + FTYPE_OSOS = 0, + FTYPE_RSRC, + FTYPE_AUPD, + FTYPE_HIBE +}; + +struct ipod_directory_t { + enum firmwaretype_t ftype; + int id; + uint32_t devOffset; /* Offset of image relative to one sector into bootpart*/ + uint32_t len; + uint32_t addr; + uint32_t entryOffset; + uint32_t chksum; + uint32_t vers; + uint32_t loadAddr; +}; + +struct partinfo_t { + unsigned long start; /* first sector (LBA) */ + unsigned long size; /* number of sectors */ + int type; +}; + +struct ipod_t { + HANDLE dh; + char diskname[4096]; + int sector_size; + struct ipod_directory_t ipod_directory[MAX_IMAGES]; + int nimages; + off_t diroffset; + off_t start; /* Offset in bytes of firmware partition from start of disk */ + off_t fwoffset; /* Offset in bytes of start of firmware images from start of disk */ + struct partinfo_t pinfo[4]; + int modelnum; + char* modelname; + char* modelstr; + int macpod; +#ifdef WITH_BOOTOBJS + unsigned char* bootloader; + int bootloader_len; +#endif +}; + +void print_error(char* msg); +int ipod_open(struct ipod_t* ipod, int silent); +int ipod_reopen_rw(struct ipod_t* ipod); +int ipod_close(struct ipod_t* ipod); +int ipod_seek(struct ipod_t* ipod, unsigned long pos); +int ipod_read(struct ipod_t* ipod, unsigned char* buf, int nbytes); +int ipod_write(struct ipod_t* ipod, unsigned char* buf, int nbytes); +int ipod_alloc_buffer(unsigned char** sectorbuf, int bufsize); + +#endif |