Index: embios/trunk/mv.h |
— | — | @@ -0,0 +1,53 @@ |
| 2 | +/*************************************************************************** |
| 3 | + * __________ __ ___. |
| 4 | + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ |
| 5 | + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / |
| 6 | + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
| 7 | + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
| 8 | + * \/ \/ \/ \/ \/ |
| 9 | + * $Id: mv.h 21933 2009-07-17 22:28:49Z gevaerts $ |
| 10 | + * |
| 11 | + * Copyright (C) 2008 by Frank Gevaerts |
| 12 | + * |
| 13 | + * This program is free software; you can redistribute it and/or |
| 14 | + * modify it under the terms of the GNU General Public License |
| 15 | + * as published by the Free Software Foundation; either version 2 |
| 16 | + * of the License, or (at your option) any later version. |
| 17 | + * |
| 18 | + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
| 19 | + * KIND, either express or implied. |
| 20 | + * |
| 21 | + ****************************************************************************/ |
| 22 | + |
| 23 | +#ifndef __MV_H__ |
| 24 | +#define __MV_H__ |
| 25 | + |
| 26 | +#include "config.h" |
| 27 | + |
| 28 | +/* FixMe: These macros are a bit nasty and perhaps misplaced here. |
| 29 | + We'll get rid of them once decided on how to proceed with multivolume. */ |
| 30 | + |
| 31 | +/* Drives are things like a disk, a card, a flash chip. They can have volumes on them */ |
| 32 | +#ifdef HAVE_MULTIDRIVE |
| 33 | +#define IF_MD(x) x /* optional drive parameter */ |
| 34 | +#define IF_MD2(x,y) x,y /* same, for a list of arguments */ |
| 35 | +#define IF_MD_NONVOID(x) x /* for prototype with sole volume parameter */ |
| 36 | +#else /* empty definitions if no multi-drive */ |
| 37 | +#define IF_MD(x) |
| 38 | +#define IF_MD2(x,y) |
| 39 | +#define IF_MD_NONVOID(x) void |
| 40 | +#endif |
| 41 | + |
| 42 | +/* Volumes mean things that have filesystems on them, like partitions */ |
| 43 | +#ifdef HAVE_MULTIVOLUME |
| 44 | +#define IF_MV(x) x /* optional volume parameter */ |
| 45 | +#define IF_MV2(x,y) x,y /* same, for a list of arguments */ |
| 46 | +#define IF_MV_NONVOID(x) x /* for prototype with sole volume parameter */ |
| 47 | +#else /* empty definitions if no multi-volume */ |
| 48 | +#define IF_MV(x) |
| 49 | +#define IF_MV2(x,y) |
| 50 | +#define IF_MV_NONVOID(x) void |
| 51 | +#endif |
| 52 | + |
| 53 | + |
| 54 | +#endif |
Index: embios/trunk/disk.h |
— | — | @@ -0,0 +1,56 @@ |
| 2 | +/*************************************************************************** |
| 3 | + * __________ __ ___. |
| 4 | + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ |
| 5 | + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / |
| 6 | + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
| 7 | + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
| 8 | + * \/ \/ \/ \/ \/ |
| 9 | + * $Id: disk.h 26629 2010-06-06 13:28:13Z gevaerts $ |
| 10 | + * |
| 11 | + * Copyright (C) 2002 by Björn Stenberg |
| 12 | + * |
| 13 | + * This program is free software; you can redistribute it and/or |
| 14 | + * modify it under the terms of the GNU General Public License |
| 15 | + * as published by the Free Software Foundation; either version 2 |
| 16 | + * of the License, or (at your option) any later version. |
| 17 | + * |
| 18 | + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
| 19 | + * KIND, either express or implied. |
| 20 | + * |
| 21 | + ****************************************************************************/ |
| 22 | +#ifndef _DISK_H_ |
| 23 | +#define _DISK_H_ |
| 24 | + |
| 25 | +#include "mv.h" /* for volume definitions */ |
| 26 | + |
| 27 | +struct partinfo { |
| 28 | + unsigned long start; /* first sector (LBA) */ |
| 29 | + unsigned long size; /* number of sectors */ |
| 30 | + unsigned char type; |
| 31 | +}; |
| 32 | + |
| 33 | +/* FIXME: This sets the drive count to 1. This should belong to the device itself */ |
| 34 | +#define NUM_DRIVES 1 |
| 35 | +#define NUM_VOLUMES 1 |
| 36 | +#define NUM_VOLUMES_PER_DRIVE 1 |
| 37 | + |
| 38 | +#define PARTITION_TYPE_FAT32 0x0b |
| 39 | +#define PARTITION_TYPE_FAT32_LBA 0x0c |
| 40 | +#define PARTITION_TYPE_FAT16 0x06 |
| 41 | +#define PARTITION_TYPE_OS2_HIDDEN_C_DRIVE 0x84 |
| 42 | + |
| 43 | +/* returns a pointer to an array of 8 partinfo structs */ |
| 44 | +struct partinfo* disk_init(IF_MD_NONVOID(int drive)); |
| 45 | +struct partinfo* disk_partinfo(int partition); |
| 46 | + |
| 47 | +void disk_init_subsystem(void); /* Initialises mutexes */ |
| 48 | +int disk_mount_all(void); /* returns the # of successful mounts */ |
| 49 | +int disk_mount(int drive); |
| 50 | +int disk_unmount(int drive); |
| 51 | + |
| 52 | +/* The number of 512-byte sectors in a "logical" sector. Needed for ipod 5.5G */ |
| 53 | +#ifdef MAX_LOG_SECTOR_SIZE |
| 54 | +extern int disk_sector_multiplier; |
| 55 | +#endif |
| 56 | + |
| 57 | +#endif |