summaryrefslogtreecommitdiff
path: root/rbutil/ipodpatcher/fat32format.c
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2009-08-04 20:03:17 +0000
committerDave Chapman <dave@dchapman.com>2009-08-04 20:03:17 +0000
commit71f0814e52df8d862b2658fd3075c3020347d0fd (patch)
tree25c77b0373bd8b42c8f85409e599c2ef20a6a2a6 /rbutil/ipodpatcher/fat32format.c
parent9ad071dcafc79cc6d1d16f6c94f8406623e64d53 (diff)
Make ipodpatcher compile on *BSD and recent Linux distributions - htole16/htole32 are standard BSD functions, and they now also appear in glibc 2.9 or later on Linux. As the functions are so simple, we just rename to avoid a clash instead of attempting to use the library versions on some platforms. Same as fix provided in FS#10428 by Alyssa Milburn.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22164 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/ipodpatcher/fat32format.c')
-rw-r--r--rbutil/ipodpatcher/fat32format.c60
1 files changed, 32 insertions, 28 deletions
diff --git a/rbutil/ipodpatcher/fat32format.c b/rbutil/ipodpatcher/fat32format.c
index 0cbfb00754..3dced355b6 100644
--- a/rbutil/ipodpatcher/fat32format.c
+++ b/rbutil/ipodpatcher/fat32format.c
@@ -54,9 +54,13 @@ static inline uint32_t swap32(uint32_t value)
/* The following functions are not the most efficient, but are
self-contained and don't require needing to know endianness of CPU
at compile-time.
+
+ Note that htole16/htole32 exist on some platforms, so for
+ simplicity we use different names.
+
*/
-uint16_t htole16(uint16_t x)
+static uint16_t rb_htole16(uint16_t x)
{
uint16_t test = 0x1234;
unsigned char* p = (unsigned char*)&test;
@@ -69,7 +73,7 @@ uint16_t htole16(uint16_t x)
}
}
-uint32_t htole32(uint32_t x)
+static uint32_t rb_htole32(uint32_t x)
{
uint32_t test = 0x12345678;
unsigned char* p = (unsigned char*)&test;
@@ -306,28 +310,28 @@ static void create_boot_sector(unsigned char* buf,
pFAT32BootSect->sJmpBoot[1]=0x5A;
pFAT32BootSect->sJmpBoot[2]=0x90;
strcpy( pFAT32BootSect->sOEMName, "MSWIN4.1" );
- pFAT32BootSect->wBytsPerSec = htole16(BytesPerSect);
+ pFAT32BootSect->wBytsPerSec = rb_htole16(BytesPerSect);
pFAT32BootSect->bSecPerClus = SectorsPerCluster ;
- pFAT32BootSect->wRsvdSecCnt = htole16(ReservedSectCount);
+ pFAT32BootSect->wRsvdSecCnt = rb_htole16(ReservedSectCount);
pFAT32BootSect->bNumFATs = NumFATs;
- pFAT32BootSect->wRootEntCnt = htole16(0);
- pFAT32BootSect->wTotSec16 = htole16(0);
+ pFAT32BootSect->wRootEntCnt = rb_htole16(0);
+ pFAT32BootSect->wTotSec16 = rb_htole16(0);
pFAT32BootSect->bMedia = 0xF8;
- pFAT32BootSect->wFATSz16 = htole16(0);
- pFAT32BootSect->wSecPerTrk = htole16(ipod->sectors_per_track);
- pFAT32BootSect->wNumHeads = htole16(ipod->num_heads);
- pFAT32BootSect->dHiddSec = htole16(ipod->pinfo[partition].start);
- pFAT32BootSect->dTotSec32 = htole32(TotalSectors);
- pFAT32BootSect->dFATSz32 = htole32(FatSize);
- pFAT32BootSect->wExtFlags = htole16(0);
- pFAT32BootSect->wFSVer = htole16(0);
- pFAT32BootSect->dRootClus = htole32(2);
- pFAT32BootSect->wFSInfo = htole16(1);
- pFAT32BootSect->wBkBootSec = htole16(BackupBootSect);
+ pFAT32BootSect->wFATSz16 = rb_htole16(0);
+ pFAT32BootSect->wSecPerTrk = rb_htole16(ipod->sectors_per_track);
+ pFAT32BootSect->wNumHeads = rb_htole16(ipod->num_heads);
+ pFAT32BootSect->dHiddSec = rb_htole16(ipod->pinfo[partition].start);
+ pFAT32BootSect->dTotSec32 = rb_htole32(TotalSectors);
+ pFAT32BootSect->dFATSz32 = rb_htole32(FatSize);
+ pFAT32BootSect->wExtFlags = rb_htole16(0);
+ pFAT32BootSect->wFSVer = rb_htole16(0);
+ pFAT32BootSect->dRootClus = rb_htole32(2);
+ pFAT32BootSect->wFSInfo = rb_htole16(1);
+ pFAT32BootSect->wBkBootSec = rb_htole16(BackupBootSect);
pFAT32BootSect->bDrvNum = 0x80;
pFAT32BootSect->Reserved1 = 0;
pFAT32BootSect->bBootSig = 0x29;
- pFAT32BootSect->dBS_VolID = htole32(VolumeId);
+ pFAT32BootSect->dBS_VolID = rb_htole32(VolumeId);
memcpy(pFAT32BootSect->sVolLab, VolId, 11);
memcpy(pFAT32BootSect->sBS_FilSysType, "FAT32 ", 8 );
@@ -340,15 +344,15 @@ static void create_fsinfo(unsigned char* buf)
struct FAT_FSINFO* pFAT32FsInfo = (struct FAT_FSINFO*)buf;
/* FSInfo sect */
- pFAT32FsInfo->dLeadSig = htole32(0x41615252);
- pFAT32FsInfo->dStrucSig = htole32(0x61417272);
- pFAT32FsInfo->dFree_Count = htole32((uint32_t) -1);
- pFAT32FsInfo->dNxt_Free = htole32((uint32_t) -1);
- pFAT32FsInfo->dTrailSig = htole32(0xaa550000);
- pFAT32FsInfo->dFree_Count = htole32((UserAreaSize/SectorsPerCluster)-1);
+ pFAT32FsInfo->dLeadSig = rb_htole32(0x41615252);
+ pFAT32FsInfo->dStrucSig = rb_htole32(0x61417272);
+ pFAT32FsInfo->dFree_Count = rb_htole32((uint32_t) -1);
+ pFAT32FsInfo->dNxt_Free = rb_htole32((uint32_t) -1);
+ pFAT32FsInfo->dTrailSig = rb_htole32(0xaa550000);
+ pFAT32FsInfo->dFree_Count = rb_htole32((UserAreaSize/SectorsPerCluster)-1);
/* clusters 0-1 reserved, we used cluster 2 for the root dir */
- pFAT32FsInfo->dNxt_Free = htole32(3);
+ pFAT32FsInfo->dNxt_Free = rb_htole32(3);
}
static void create_firstfatsector(unsigned char* buf)
@@ -356,9 +360,9 @@ static void create_firstfatsector(unsigned char* buf)
uint32_t* p = (uint32_t*)buf; /* We know the buffer is aligned */
/* First FAT Sector */
- p[0] = htole32(0x0ffffff8); /* Reserved cluster 1 media id in low byte */
- p[1] = htole32(0x0fffffff); /* Reserved cluster 2 EOC */
- p[2] = htole32(0x0fffffff); /* end of cluster chain for root dir */
+ p[0] = rb_htole32(0x0ffffff8); /* Reserved cluster 1 media id in low byte */
+ p[1] = rb_htole32(0x0fffffff); /* Reserved cluster 2 EOC */
+ p[2] = rb_htole32(0x0fffffff); /* end of cluster chain for root dir */
}
int format_partition(struct ipod_t* ipod, int partition)