wok diff syslinux/stuff/iso2exe/win32.c @ rev 14264
syslinux/iso2exe: fix initrd offset
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Mon Apr 01 09:45:40 2013 +0200 (2013-04-01) |
parents | 692d9593f959 |
children | ff85ea851c53 |
line diff
1.1 --- a/syslinux/stuff/iso2exe/win32.c Sun Mar 31 22:55:34 2013 +0100 1.2 +++ b/syslinux/stuff/iso2exe/win32.c Mon Apr 01 09:45:40 2013 +0200 1.3 @@ -14,6 +14,7 @@ 1.4 if (j <= 0) break; 1.5 } 1.6 return i; 1.7 +#define read fullread 1.8 } 1.9 1.10 static int fullwrite(int fd, char *p, int n) 1.11 @@ -24,6 +25,7 @@ 1.12 if (j <= 0) break; 1.13 } 1.14 return i; 1.15 +#define write fullwrite 1.16 } 1.17 1.18 static void exec16bits(char *isoFileName) 1.19 @@ -39,9 +41,9 @@ 1.20 fdiso = open(isoFileName, O_RDONLY|O_BINARY); 1.21 fdtmp = open(tmpFileName, O_WRONLY|O_BINARY|O_CREAT,0555); 1.22 for (i = 0; i < 0x8000; i += sizeof(buffer)) { 1.23 - fullread(fdiso, (char *) buffer, sizeof(buffer)); 1.24 + read(fdiso, (char *) buffer, sizeof(buffer)); 1.25 if (i == 0) buffer[15] = 0; // kill PE header 1.26 - fullwrite(fdtmp, (char *) buffer, sizeof(buffer)); 1.27 + write(fdtmp, (char *) buffer, sizeof(buffer)); 1.28 } 1.29 close(fdiso); 1.30 close(fdtmp); 1.31 @@ -64,17 +66,17 @@ 1.32 1.33 fdiso = open(isoFileName, O_RDONLY|O_BINARY); 1.34 if (lseek(fdiso, 17 * 2048L, SEEK_SET) != -1 && 1.35 - fullread(fdiso, buffer, 2048) == 2048 && 1.36 + read(fdiso, buffer, 2048) == 2048 && 1.37 strncmp(buffer+23,"EL TORITO SPECIFICATION",23) == 0) { 1.38 unsigned long lba = * (unsigned long *) (buffer + 71); 1.39 1.40 if (lseek(fdiso, lba * 2048L, SEEK_SET) != -1 && 1.41 - fullread(fdiso, buffer, 2048) == 2048 && 1.42 + read(fdiso, buffer, 2048) == 2048 && 1.43 * (unsigned long *) (buffer + 0) == 1 && 1.44 * (unsigned long *) (buffer + 30) == 0x88AA55) { 1.45 lba = * (unsigned long *) (buffer + 40); 1.46 if (lseek(fdiso, lba * 2048L, SEEK_SET) != -1 && 1.47 - fullread(fdiso, buffer, 2048) == 2048) 1.48 + read(fdiso, buffer, 2048) == 2048) 1.49 magic = * (unsigned long *) (buffer + 64); 1.50 } 1.51 } 1.52 @@ -126,7 +128,7 @@ 1.53 drive >>= 1; 1.54 fdiso = open(isoFileName, O_RDONLY|O_BINARY); 1.55 for (s = 0;;) { 1.56 - int s, n = fullread(fdiso, buffer, sizeof(buffer)); 1.57 + int s, n = read(fdiso, buffer, sizeof(buffer)); 1.58 if (n <= 0) break; 1.59 n = (n+511)/512; 1.60 if (s == 0) isohybrid = buffer[69]; 1.61 @@ -160,10 +162,10 @@ 1.62 read(fd, buffer, sizeof(buffer)); 1.63 n = buffer[BOOTSTRAP_SECTOR_COUNT_OFFSET]; 1.64 if (n != 0 && 1.65 - lseek(fd, * (unsigned long *) (buffer + 60) - (512 * n), 1.66 + lseek(fd, * (unsigned short *) (buffer + 66) - (512 * n), 1.67 SEEK_SET) != -1) { 1.68 for (i = 0; i < n; i++) { 1.69 - fullread(fd, buffer, 512); 1.70 + read(fd, buffer, 512); 1.71 if (i == 1) strncpy(buffer, isoFileName, 512); 1.72 rdwrsector(MODE_WRITE, 0, i, 1, buffer); 1.73 }