ReactOS 0.4.15-dev-7788-g1ad9096
isohybrid.c File Reference
#include <time.h>
#include <ctype.h>
#include <fcntl.h>
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include "isohybrid.h"
#include "reactos_support_code.h"
Include dependency graph for isohybrid.c:

Go to the source code of this file.

Classes

struct  iso_primary_descriptor
 

Macros

#define _FILE_OFFSET_BITS   64
 
#define FMT   "%-20s %s\n"
 

Enumerations

enum  { VERBOSE = 1 , EFI = 2 , MAC = 4 }
 

Functions

void usage (void)
 
void printh (void)
 
int check_option (int argc, char *argv[])
 
uint16_t bendian_short (const uint16_t s)
 
uint32_t bendian_int (const uint32_t s)
 
uint16_t lendian_short (const uint16_t s)
 
uint32_t lendian_int (const uint32_t s)
 
uint64_t lendian_64 (const uint64_t s)
 
int check_banner (const uint8_t *buf)
 
int check_catalogue (const uint8_t *buf)
 
int read_catalogue (const uint8_t *buf)
 
void display_catalogue (void)
 
void read_mbr_template (char *path, uint8_t *mbr)
 
size_t initialise_mbr (uint8_t *mbr)
 
void display_mbr (const uint8_t *mbr, size_t len)
 
uint32_t chksum_crc32 (unsigned char *block, unsigned int length)
 
static uint16_tascii_to_utf16le (uint16_t *dst, const char *src)
 
int main (int argc, char *argv[])
 

Variables

charprog = NULL
 
int opterr
 
int optind
 
struct stat isostat
 
unsigned int padding = 0
 
uint8_t mode = 0
 
uint32_t head = 64
 
uint32_t sector = 32
 
uint32_t entry = 0
 
uint32_t offset = 0
 
uint32_t type = 0x17
 
uint32_t id = 0
 
uint8_t hd0 = 0
 
uint8_t partok = 0
 
char mbr_template_path [1024] = {0}
 
uint16_t ve [16]
 
uint32_t catoffset = 0
 
uint32_t c = 0
 
uint32_t cc = 0
 
uint32_t cs = 0
 
uint32_t psize = 0
 
uint32_t isosize = 0
 
uint32_t de_lba = 0
 
uint16_t de_seg = 0
 
uint16_t de_count = 0
 
uint16_t de_mbz2 = 0
 
uint8_t de_boot = 0
 
uint8_t de_media = 0
 
uint8_t de_sys = 0
 
uint8_t de_mbz1 = 0
 
uint32_t efi_lba = 0
 
uint32_t mac_lba = 0
 
uint16_t efi_count = 0
 
uint16_t mac_count = 0
 
uint8_t efi_boot = 0
 
uint8_t efi_media = 0
 
uint8_t efi_sys = 0
 
int apm_parts = 3
 
uint32_t crc_tab [256]
 

Macro Definition Documentation

◆ _FILE_OFFSET_BITS

#define _FILE_OFFSET_BITS   64

Definition at line 26 of file isohybrid.c.

◆ FMT

#define FMT   "%-20s %s\n"

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
VERBOSE 
EFI 
MAC 

Definition at line 57 of file isohybrid.c.

57{ VERBOSE = 1 , EFI = 2 , MAC = 4};
@ EFI
Definition: isohybrid.c:57
@ MAC
Definition: isohybrid.c:57
@ VERBOSE
Definition: isohybrid.c:57

Function Documentation

◆ ascii_to_utf16le()

static uint16_t * ascii_to_utf16le ( uint16_t dst,
const char src 
)
static

Definition at line 815 of file isohybrid.c.

816{
817 uint8_t *p = (uint8_t *)dst;
818 char c;
819
820 do {
821 c = *src++;
822 *p++ = c;
823 *p++ = 0;
824 } while (c);
825
826 return (uint16_t *)p;
827}
unsigned short int uint16_t
Definition: acefiex.h:54
GLenum src
Definition: glext.h:6340
const GLubyte * c
Definition: glext.h:8905
GLenum GLenum dst
Definition: glext.h:6340
GLfloat GLfloat p
Definition: glext.h:8902
uint32_t c
Definition: isohybrid.c:75
BYTE uint8_t
Definition: msvideo1.c:66

◆ bendian_int()

uint32_t bendian_int ( const uint32_t  s)

Definition at line 414 of file isohybrid.c.

415{
416 uint32_t r = 1;
417
418 if (!*(uint8_t *)&r)
419 return s;
420
421 r = (s & 0x000000FF) << 24 | (s & 0xFF000000) >> 24
422 | (s & 0x0000FF00) << 8 | (s & 0x00FF0000) >> 8;
423
424 return r;
425}
UINT32 uint32_t
Definition: types.h:75
GLdouble s
Definition: gl.h:2039
GLdouble GLdouble GLdouble r
Definition: gl.h:2055

◆ bendian_short()

uint16_t bendian_short ( const uint16_t  s)

Definition at line 400 of file isohybrid.c.

401{
402 uint16_t r = 1;
403
404 if (!*(uint8_t *)&r)
405 return s;
406
407 r = (s & 0x00FF) << 8 | (s & 0xFF00) >> 8;
408
409 return r;
410}

◆ check_banner()

int check_banner ( const uint8_t buf)

Definition at line 473 of file isohybrid.c.

474{
475 static const char banner[] = "\0CD001\1EL TORITO SPECIFICATION\0\0\0\0" \
476 "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" \
477 "\0\0\0\0\0";
478
479 if (!buf || memcmp(buf, banner, sizeof(banner) - 1))
480 return 1;
481
482 buf += sizeof(banner) - 1;
483 memcpy(&catoffset, buf, sizeof(catoffset));
484
486
487 return 0;
488}
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
uint32_t lendian_int(const uint32_t s)
Definition: isohybrid.c:442
uint32_t catoffset
Definition: isohybrid.c:74
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878

Referenced by main().

◆ check_catalogue()

int check_catalogue ( const uint8_t buf)

Definition at line 492 of file isohybrid.c.

493{
494 int i = 0;
495
496 for (i = 0, cs = 0; i < 16; i++)
497 {
498 ve[i] = 0;
499 memcpy(&ve[i], buf, sizeof(ve[i]));
500
501 ve[i] = lendian_short(ve[i]);
502
503 buf += 2;
504 cs += ve[i];
505
506 if (mode & VERBOSE)
507 printf("ve[%d]: %d, cs: %d\n", i, ve[i], cs);
508 }
509 if ((ve[0] != 0x0001) || (ve[15] != 0xAA55) || (cs & 0xFFFF))
510 return 1;
511
512 return 0;
513}
#define printf
Definition: freeldr.h:93
GLenum mode
Definition: glext.h:6217
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
uint32_t cs
Definition: isohybrid.c:75
uint16_t lendian_short(const uint16_t s)
Definition: isohybrid.c:428
uint16_t ve[16]
Definition: isohybrid.c:73

Referenced by main().

◆ check_option()

int check_option ( int  argc,
char argv[] 
)

Definition at line 271 of file isohybrid.c.

272{
273 char *err = NULL;
274 int n = 0, ind = 0;
275
276 const char optstr[] = ":h:s:e:o:t:i:b:umfcp?vV";
277 struct option lopt[] = \
278 {
279 { "entry", required_argument, NULL, 'e' },
280 { "offset", required_argument, NULL, 'o' },
281 { "type", required_argument, NULL, 't' },
282 { "id", required_argument, NULL, 'i' },
283
284 { "forcehd0", no_argument, NULL, 'f' },
285 { "ctrlhd0", no_argument, NULL, 'c' },
286 { "partok", no_argument, NULL, 'p'},
287#ifdef REACTOS_ISOHYBRID_EFI_MAC_SUPPORT
288 { "uefi", no_argument, NULL, 'u'},
289 { "mac", no_argument, NULL, 'm'},
290#endif
291 { "mbr", required_argument, NULL, 'b' },
292
293 { "help", no_argument, NULL, '?' },
294 { "verbose", no_argument, NULL, 'v' },
295 { "version", no_argument, NULL, 'V' },
296
297 { 0, 0, 0, 0 }
298 };
299
300 opterr = mode = 0;
301 while ((n = getopt_long_only(argc, argv, optstr, lopt, &ind)) != -1)
302 {
303 switch (n)
304 {
305 case 'h':
306 head = strtoul(optarg, &err, 0);
307 if (head < 1 || head > 256)
308 errx(1, "invalid head: `%s', 1 <= head <= 256", optarg);
309 break;
310
311 case 's':
312 sector = strtoul(optarg, &err, 0);
313 if (sector < 1 || sector > 63)
314 errx(1, "invalid sector: `%s', 1 <= sector <= 63", optarg);
315 break;
316
317 case 'e':
318 entry = strtoul(optarg, &err, 0);
319 if (entry < 1 || entry > 4)
320 errx(1, "invalid entry: `%s', 1 <= entry <= 4", optarg);
321 if (mode & MAC || mode & EFI)
322 errx(1, "setting an entry is unsupported with EFI or Mac");
323 break;
324
325 case 'o':
326 offset = strtoul(optarg, &err, 0);
327 if (*err || offset > 64)
328 errx(1, "invalid offset: `%s', 0 <= offset <= 64", optarg);
329 break;
330
331 case 't':
332 type = strtoul(optarg, &err, 0);
333 if (*err || type > 255)
334 errx(1, "invalid type: `%s', 0 <= type <= 255", optarg);
335 break;
336
337 case 'i':
338 id = strtoul(optarg, &err, 0);
339 if (*err)
340 errx(1, "invalid id: `%s'", optarg);
341 break;
342
343 case 'f':
344 hd0 = 1;
345 break;
346
347 case 'c':
348 hd0 = 2;
349 break;
350
351 case 'p':
352 partok = 1;
353 break;
354
355#ifdef REACTOS_ISOHYBRID_EFI_MAC_SUPPORT
356 case 'u':
357 mode |= EFI;
358 if (entry)
359 errx(1, "setting an entry is unsupported with EFI or Mac");
360 break;
361
362 case 'm':
363 mode |= MAC;
364 if (entry)
365 errx(1, "setting an entry is unsupported with EFI or Mac");
366 break;
367#endif
368
369 case 'b':
370 if (strlen(optarg) >= sizeof(mbr_template_path))
371 errx(1, "--mbr : Path too long");
373 break;
374
375 case 'v':
376 mode |= VERBOSE;
377 break;
378
379 case 'V':
380 printf("%s version %s\n", prog, VERSION);
381 exit(0);
382
383 case ':':
384 errx(1, "option `-%c' takes an argument", optopt);
385
386 default:
387 case '?':
388 if (optopt)
389 errx(1, "invalid option `-%c', see --help", optopt);
390
391 printh();
392 exit(0);
393 }
394 }
395
396 return optind;
397}
static int argc
Definition: ServiceArgs.c:12
UINT32 strtoul(const char *String, char **Terminator, UINT32 Base)
Definition: utclib.c:696
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
#define VERSION
Definition: rdesktop.h:45
int optopt
Definition: getopt.c:48
const char * optarg
Definition: getopt.c:49
#define NULL
Definition: types.h:112
#define no_argument
Definition: getopt.h:122
#define required_argument
Definition: getopt.h:123
int getopt_long_only(optarg_ctx *o, int argc, WCHAR *const *argv, const WCHAR *shortopts, const struct option *longopts, int *longind)
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLdouble n
Definition: glext.h:7729
GLintptr offset
Definition: glext.h:5920
uint8_t partok
Definition: isohybrid.c:69
uint32_t sector
Definition: isohybrid.c:61
void printh(void)
Definition: isohybrid.c:235
uint8_t hd0
Definition: isohybrid.c:68
uint32_t entry
Definition: isohybrid.c:63
char mbr_template_path[1024]
Definition: isohybrid.c:71
uint32_t head
Definition: isohybrid.c:60
char * prog
Definition: isohybrid.c:47
int optind
Definition: isohybrid.c:48
int opterr
Definition: getopt.c:46
#define argv
Definition: mplay32.c:18
#define err(...)
#define errx(...)
#define exit(n)
Definition: config.h:202
Definition: getopt.h:109

Referenced by main().

◆ chksum_crc32()

uint32_t chksum_crc32 ( unsigned char block,
unsigned int  length 
)

Definition at line 788 of file isohybrid.c.

789{
790 register unsigned long crc;
791 unsigned long i;
792
793 crc = 0xFFFFFFFF;
794 for (i = 0; i < length; i++)
795 {
796 crc = ((crc >> 8) & 0x00FFFFFF) ^ crc_tab[(crc ^ *block++) & 0xFF];
797 }
798 return (crc ^ 0xFFFFFFFF);
799}
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
uint32_t crc_tab[256]
Definition: isohybrid.c:97
static unsigned int block
Definition: xmlmemory.c:101

◆ display_catalogue()

void display_catalogue ( void  )

Definition at line 589 of file isohybrid.c.

590{
591 printf("de_boot: %hhu\n", de_boot);
592 printf("de_media: %hhu\n", de_media);
593 printf("de_seg: %hu\n", de_seg);
594 printf("de_sys: %hhu\n", de_sys);
595 printf("de_mbz1: %hhu\n", de_mbz1);
596 printf("de_count: %hu\n", de_count);
597 printf("de_lba: %u\n", de_lba);
598 printf("de_mbz2: %hu\n", de_mbz2);
599}
uint16_t de_mbz2
Definition: isohybrid.c:81
uint16_t de_seg
Definition: isohybrid.c:81
uint8_t de_media
Definition: isohybrid.c:82
uint32_t de_lba
Definition: isohybrid.c:80
uint8_t de_boot
Definition: isohybrid.c:82
uint16_t de_count
Definition: isohybrid.c:81
uint8_t de_sys
Definition: isohybrid.c:82
uint8_t de_mbz1
Definition: isohybrid.c:82

Referenced by main().

◆ display_mbr()

void display_mbr ( const uint8_t mbr,
size_t  len 
)

Definition at line 760 of file isohybrid.c.

761{
762 unsigned char c = 0;
763 unsigned int i = 0, j = 0;
764
765 printf("sizeof(MBR): %zu bytes\n", len);
766 for (i = 0; i < len; i++)
767 {
768 if (!(i % 16))
769 printf("%04d ", i);
770
771 if (!(i % 8))
772 printf(" ");
773
774 c = mbr[i];
775 printf("%02x ", c);
776
777 if (!((i + 1) % 16))
778 {
779 printf(" |");
780 for (; j <= i; j++)
781 printf("%c", isprint(mbr[j]) ? mbr[j] : '.');
782 printf("|\n");
783 }
784 }
785}
#define isprint(c)
Definition: acclib.h:73
GLenum GLsizei len
Definition: glext.h:6722
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
Definition: glfuncs.h:250

Referenced by main().

◆ initialise_mbr()

size_t initialise_mbr ( uint8_t mbr)

Definition at line 620 of file isohybrid.c.

621{
622 int i = 0;
623 uint32_t tmp = 0;
624 uint8_t ptype = 0, *rbm = mbr;
625 uint8_t bhead = 0, bsect = 0, bcyle = 0;
626 uint8_t ehead = 0, esect = 0, ecyle = 0;
627
628#ifndef ISOHYBRID_C_STANDALONE
629 extern unsigned char isohdpfx[][MBRSIZE];
630#endif
631
632 if (mbr_template_path[0]) {
634 } else {
635
636#ifdef ISOHYBRID_C_STANDALONE
637
638 err(1, "This is a standalone binary. You must specify --mbr. E.g with /usr/lib/syslinux/isohdpfx.bin");
639
640#else
641
642 memcpy(mbr, &isohdpfx[hd0 + 3 * partok], MBRSIZE);
643
644#endif /* ! ISOHYBRID_C_STANDALONE */
645
646 }
647
648#ifdef REACTOS_ISOHYBRID_EFI_MAC_SUPPORT
649 if (mode & MAC) {
650 memcpy(mbr, afp_header, sizeof(afp_header));
651 }
652#endif
653
654 if (!entry)
655 entry = 1;
656
657#ifdef REACTOS_ISOHYBRID_EFI_MAC_SUPPORT
658 if (mode & EFI)
659 type = 0;
660#endif
661
662 mbr += MBRSIZE; /* offset 432 */
663
664 tmp = lendian_int(de_lba * 4);
665 memcpy(mbr, &tmp, sizeof(tmp));
666 mbr += sizeof(tmp); /* offset 436 */
667
668 tmp = 0;
669 memcpy(mbr, &tmp, sizeof(tmp));
670 mbr += sizeof(tmp); /* offset 440 */
671
672 tmp = lendian_int(id);
673 memcpy(mbr, &tmp, sizeof(tmp));
674 mbr += sizeof(tmp); /* offset 444 */
675
676 mbr[0] = '\0';
677 mbr[1] = '\0';
678 mbr += 2; /* offset 446 */
679
680 ptype = type;
681 psize = c * head * sector - offset;
682
683 bhead = (offset / sector) % head;
684 bsect = (offset % sector) + 1;
685 bcyle = offset / (head * sector);
686
687 bsect += (bcyle & 0x300) >> 2;
688 bcyle &= 0xFF;
689
690 ehead = head - 1;
691 esect = sector + (((cc - 1) & 0x300) >> 2);
692 ecyle = (cc - 1) & 0xFF;
693
694 for (i = 1; i <= 4; i++)
695 {
696 memset(mbr, 0, 16);
697 if (i == entry)
698 {
699 mbr[0] = 0x80;
700 mbr[1] = bhead;
701 mbr[2] = bsect;
702 mbr[3] = bcyle;
703 mbr[4] = ptype;
704 mbr[5] = ehead;
705 mbr[6] = esect;
706 mbr[7] = ecyle;
707
708 tmp = lendian_int(offset);
709 memcpy(&mbr[8], &tmp, sizeof(tmp));
710
711 tmp = lendian_int(psize);
712 memcpy(&mbr[12], &tmp, sizeof(tmp));
713 }
714#ifdef REACTOS_ISOHYBRID_EFI_MAC_SUPPORT
715 if (i == 2 && (mode & EFI))
716 {
717 mbr[0] = 0x0;
718 mbr[1] = 0xfe;
719 mbr[2] = 0xff;
720 mbr[3] = 0xff;
721 mbr[4] = 0xef;
722 mbr[5] = 0xfe;
723 mbr[6] = 0xff;
724 mbr[7] = 0xff;
725
726 tmp = lendian_int(efi_lba * 4);
727 memcpy(&mbr[8], &tmp, sizeof(tmp));
728
729 tmp = lendian_int(efi_count);
730 memcpy(&mbr[12], &tmp, sizeof(tmp));
731 }
732 if (i == 3 && (mode & MAC))
733 {
734 mbr[0] = 0x0;
735 mbr[1] = 0xfe;
736 mbr[2] = 0xff;
737 mbr[3] = 0xff;
738 mbr[4] = 0x0;
739 mbr[5] = 0xfe;
740 mbr[6] = 0xff;
741 mbr[7] = 0xff;
742
743 tmp = lendian_int(mac_lba * 4);
744 memcpy(&mbr[8], &tmp, sizeof(tmp));
745
746 tmp = lendian_int(mac_count);
747 memcpy(&mbr[12], &tmp, sizeof(tmp));
748 }
749#endif
750 mbr += 16;
751 }
752 mbr[0] = 0x55;
753 mbr[1] = 0xAA;
754 mbr += 2;
755
756 return mbr - rbm;
757}
void read_mbr_template(char *path, uint8_t *mbr)
Definition: isohybrid.c:603
uint32_t mac_lba
Definition: isohybrid.c:83
uint32_t cc
Definition: isohybrid.c:75
uint16_t mac_count
Definition: isohybrid.c:84
uint32_t offset
Definition: isohybrid.c:64
uint32_t psize
Definition: isohybrid.c:77
uint16_t efi_count
Definition: isohybrid.c:84
uint32_t efi_lba
Definition: isohybrid.c:83
uint32_t type
Definition: isohybrid.c:65
#define MBRSIZE
Definition: isohybrid.h:25
#define memset(x, y, z)
Definition: compat.h:39

Referenced by main().

◆ lendian_64()

uint64_t lendian_64 ( const uint64_t  s)

Definition at line 456 of file isohybrid.c.

457{
458 uint64_t r = 1;
459
460 if (*(uint8_t *)&r)
461 return s;
462
463 r = (s & 0x00000000000000FFull) << 56 | (s & 0xFF00000000000000ull) >> 56
464 | (s & 0x000000000000FF00ull) << 40 | (s & 0x00FF000000000000ull) >> 40
465 | (s & 0x0000000000FF0000ull) << 24 | (s & 0x0000FF0000000000ull) >> 24
466 | (s & 0x00000000FF000000ull) << 8 | (s & 0x000000FF00000000ull) >> 8;
467
468 return r;
469}
UINT64 uint64_t
Definition: types.h:77

◆ lendian_int()

uint32_t lendian_int ( const uint32_t  s)

Definition at line 442 of file isohybrid.c.

443{
444 uint32_t r = 1;
445
446 if (*(uint8_t *)&r)
447 return s;
448
449 r = (s & 0x000000FF) << 24 | (s & 0xFF000000) >> 24
450 | (s & 0x0000FF00) << 8 | (s & 0x00FF0000) >> 8;
451
452 return r;
453}

Referenced by check_banner(), initialise_mbr(), main(), and read_catalogue().

◆ lendian_short()

uint16_t lendian_short ( const uint16_t  s)

Definition at line 428 of file isohybrid.c.

429{
430 uint16_t r = 1;
431
432 if (*(uint8_t *)&r)
433 return s;
434
435 r = (s & 0x00FF) << 8 | (s & 0xFF00) >> 8;
436
437 return r;
438}

Referenced by check_catalogue(), main(), and read_catalogue().

◆ main()

int main ( int argc  ,
char argv[] 
)

Definition at line 972 of file isohybrid.c.

973{
974 int i = 0;
975 FILE *fp = NULL;
976 uint8_t *buf = NULL, *bufz = NULL;
977 int cylsize = 0, frac = 0;
978 size_t mbr_size;
979#ifdef REACTOS_ISOHYBRID_EFI_MAC_SUPPORT
980 size_t orig_gpt_size, free_space, gpt_size;
981#endif
983
984 prog = strcpy(alloca(strlen(argv[0]) + 1), argv[0]);
986 argc -= i;
987 argv += i;
988
989 if (!argc)
990 {
991 usage();
992 return 1;
993 }
994
995#ifdef REACTOS_ISOHYBRID_EFI_MAC_SUPPORT
996 if ((mode & EFI) && offset)
997 errx(1, "%s: --offset is invalid with UEFI images\n", argv[0]);
998#endif
999
1000 srand((unsigned int)time(NULL) << (getppid() << getpid()));
1001
1002 if (!(fp = fopen(argv[0], "rb+")))
1003 err(1, "could not open file `%s'", argv[0]);
1004
1005 if (fseeko(fp, (off_t) (16 << 11), SEEK_SET))
1006 err(1, "%s: seek error - 0", argv[0]);
1007
1008 if (fread(&descriptor, sizeof(char), sizeof(descriptor), fp) != sizeof(descriptor))
1009 err(1, "%s: read error - 0", argv[0]);
1010
1011 if (fseeko(fp, (off_t) 17 * 2048, SEEK_SET))
1012 err(1, "%s: seek error - 1", argv[0]);
1013
1014 bufz = buf = calloc(BUFSIZE, sizeof(char));
1015 if (fread(buf, sizeof(char), BUFSIZE, fp) != BUFSIZE)
1016 err(1, "%s", argv[0]);
1017
1018 if (check_banner(buf))
1019 errx(1, "%s: could not find boot record", argv[0]);
1020
1021 if (mode & VERBOSE)
1022 printf("catalogue offset: %d\n", catoffset);
1023
1024 if (fseeko(fp, ((off_t) catoffset) * 2048, SEEK_SET))
1025 err(1, "%s: seek error - 2", argv[0]);
1026
1027 buf = bufz;
1028 memset(buf, 0, BUFSIZE);
1029 if (fread(buf, sizeof(char), BUFSIZE, fp) != BUFSIZE)
1030 err(1, "%s", argv[0]);
1031
1032 if (check_catalogue(buf))
1033 errx(1, "%s: invalid boot catalogue", argv[0]);
1034
1035 buf += sizeof(ve);
1036 if (read_catalogue(buf))
1037 errx(1, "%s: unexpected boot catalogue parameters", argv[0]);
1038
1039 if (mode & VERBOSE)
1041
1042 buf += 32;
1043
1044#ifdef REACTOS_ISOHYBRID_EFI_MAC_SUPPORT
1045 if (mode & EFI)
1046 {
1047 if (!read_efi_section(buf)) {
1048 buf += 32;
1049 if (!read_efi_catalogue(buf, &efi_count, &efi_lba) && efi_lba) {
1050 offset = 0;
1051 } else {
1052 errx(1, "%s: invalid efi catalogue", argv[0]);
1053 }
1054 } else {
1055 errx(1, "%s: unable to find efi image", argv[0]);
1056 }
1057 }
1058#endif
1059
1060 buf += 32;
1061
1062#ifdef REACTOS_ISOHYBRID_EFI_MAC_SUPPORT
1063 if (mode & MAC)
1064 {
1065 if (!read_efi_section(buf)) {
1066 buf += 32;
1067 if (!read_efi_catalogue(buf, &mac_count, &mac_lba) && mac_lba) {
1068 offset = 0;
1069 } else {
1070 errx(1, "%s: invalid efi catalogue", argv[0]);
1071 }
1072 } else {
1073 errx(1, "%s: unable to find mac efi image", argv[0]);
1074 }
1075 }
1076#endif
1077
1078 if (fseeko(fp, (((off_t) de_lba) * 2048 + 0x40), SEEK_SET))
1079 err(1, "%s: seek error - 3", argv[0]);
1080
1081 buf = bufz;
1082 memset(buf, 0, BUFSIZE);
1083 if (fread(buf, sizeof(char), 4, fp) != 4)
1084 err(1, "%s", argv[0]);
1085
1086 if (memcmp(buf, "\xFB\xC0\x78\x70", 4))
1087 errx(1, "%s: boot loader does not have an isolinux.bin hybrid " \
1088 "signature. Note that isolinux-debug.bin does not support " \
1089 "hybrid booting", argv[0]);
1090
1091 if (stat(argv[0], &isostat))
1092 err(1, "%s", argv[0]);
1093
1095#ifdef REACTOS_ISOHYBRID_EFI_MAC_SUPPORT
1096 free_space = isostat.st_size - isosize;
1097#endif
1098
1099 cylsize = head * sector * 512;
1100 frac = isostat.st_size % cylsize;
1101 padding = (frac > 0) ? cylsize - frac : 0;
1102
1103 if (mode & VERBOSE)
1104 printf("imgsize: %zu, padding: %d\n", (size_t)isostat.st_size, padding);
1105
1106 cc = c = ( isostat.st_size + padding) / cylsize;
1107 if (c > 1024)
1108 {
1109 warnx("Warning: more than 1024 cylinders: %d", c);
1110 warnx("Not all BIOSes will be able to boot this device");
1111 cc = 1024;
1112 }
1113
1114 if (!id)
1115 {
1116 if (fseeko(fp, (off_t) 440, SEEK_SET))
1117 err(1, "%s: seek error - 4", argv[0]);
1118
1119 if (fread(&id, 1, 4, fp) != 4)
1120 err(1, "%s: read error", argv[0]);
1121
1122 id = lendian_int(id);
1123 if (!id)
1124 {
1125 if (mode & VERBOSE)
1126 printf("random ");
1127 id = rand();
1128 }
1129 }
1130 if (mode & VERBOSE)
1131 printf("id: %u\n", id);
1132
1133 buf = bufz;
1134 memset(buf, 0, BUFSIZE);
1135 mbr_size = initialise_mbr(buf);
1136
1137 if (mode & VERBOSE)
1138 display_mbr(buf, mbr_size);
1139
1140 if (fseeko(fp, (off_t) 0, SEEK_SET))
1141 err(1, "%s: seek error - 5", argv[0]);
1142
1143 if (fwrite(buf, sizeof(char), mbr_size, fp) != mbr_size)
1144 err(1, "%s: write error - 1", argv[0]);
1145
1146#ifdef REACTOS_ISOHYBRID_EFI_MAC_SUPPORT
1147 if (efi_lba) {
1148 reverse_uuid(basic_partition);
1149 reverse_uuid(hfs_partition);
1150
1151 /* 512 byte header, 128 entries of 128 bytes */
1152 orig_gpt_size = gpt_size = 512 + (128 * 128);
1153
1154 /* Leave space for the APM if necessary */
1155 if (mac_lba)
1156 gpt_size += (4 * 2048);
1157
1158 buf = calloc(gpt_size, sizeof(char));
1159 memset(buf, 0, gpt_size);
1160
1161 /*
1162 * We need to ensure that we have enough space for the secondary GPT.
1163 * Unlike the primary, this doesn't need a hole for the APM. We still
1164 * want to be 1MB aligned so just bump the padding by a megabyte.
1165 */
1166 if (free_space < orig_gpt_size && padding < orig_gpt_size) {
1167 padding += 1024 * 1024;
1168 }
1169
1170 /*
1171 * Determine the size of the ISO filesystem. This will define the size
1172 * of the partition that covers it.
1173 */
1174 psize = isosize / 512;
1175
1176 /*
1177 * Primary GPT starts at sector 1, secondary GPT starts at 1 sector
1178 * before the end of the image
1179 */
1180 initialise_gpt(buf, 1, (isostat.st_size + padding - 512) / 512, 1);
1181
1182 if (fseeko(fp, (off_t) 512, SEEK_SET))
1183 err(1, "%s: seek error - 6", argv[0]);
1184
1185 if (fwrite(buf, sizeof(char), gpt_size, fp) != gpt_size)
1186 err(1, "%s: write error - 2", argv[0]);
1187 }
1188
1189 if (mac_lba)
1190 {
1191 /* Apple partition entries filling 2048 bytes each */
1192 int apm_size = apm_parts * 2048;
1193
1194 buf = realloc(buf, apm_size);
1195 memset(buf, 0, apm_size);
1196
1197 initialise_apm(buf, APM_OFFSET);
1198
1199 fseeko(fp, (off_t) APM_OFFSET, SEEK_SET);
1200 fwrite(buf, sizeof(char), apm_size, fp);
1201 }
1202#endif
1203
1204 if (padding)
1205 {
1206 if (fsync(fileno(fp)))
1207 err(1, "%s: could not synchronise", argv[0]);
1208
1209 if (ftruncate(fileno(fp), isostat.st_size + padding))
1210 err(1, "%s: could not add padding bytes", argv[0]);
1211 }
1212
1213#ifdef REACTOS_ISOHYBRID_EFI_MAC_SUPPORT
1214 if (efi_lba) {
1215 buf = realloc(buf, orig_gpt_size);
1216 memset(buf, 0, orig_gpt_size);
1217
1218 buf += orig_gpt_size - sizeof(struct gpt_header);
1219
1220 initialise_gpt(buf, (isostat.st_size + padding - 512) / 512, 1, 0);
1221
1222 /* Shift back far enough to write the 128 GPT entries */
1223 buf -= 128 * sizeof(struct gpt_part_header);
1224
1225 /*
1226 * Seek far enough back that the gpt header is 512 bytes before the
1227 * end of the image
1228 */
1229
1230 if (fseeko(fp, (isostat.st_size + padding) - orig_gpt_size, SEEK_SET))
1231 err(1, "%s: seek error - 8", argv[0]);
1232
1233 if (fwrite(buf, sizeof(char), orig_gpt_size, fp) != orig_gpt_size)
1234 err(1, "%s: write error - 4", argv[0]);
1235 }
1236#endif
1237
1238 free(buf);
1239 fclose(fp);
1240
1241 return 0;
1242}
#define stat
Definition: acwin.h:99
#define fileno
Definition: acwin.h:102
#define realloc
Definition: debug_ros.c:6
#define free
Definition: debug_ros.c:5
#define BUFSIZE
Definition: discard.c:12
#define frac(x)
Definition: texture.c:364
__kernel_off_t off_t
Definition: linux.h:201
_Check_return_opt_ _CRTIMP size_t __cdecl fread(_Out_writes_bytes_(_ElementSize *_Count) void *_DstBuf, _In_ size_t _ElementSize, _In_ size_t _Count, _Inout_ FILE *_File)
_Check_return_ _CRTIMP FILE *__cdecl fopen(_In_z_ const char *_Filename, _In_z_ const char *_Mode)
_Check_return_opt_ _CRTIMP int __cdecl fclose(_Inout_ FILE *_File)
_Check_return_opt_ _CRTIMP size_t __cdecl fwrite(_In_reads_bytes_(_Size *_Count) const void *_Str, _In_ size_t _Size, _In_ size_t _Count, _Inout_ FILE *_File)
void __cdecl srand(_In_ unsigned int _Seed)
_Check_return_ int __cdecl rand(void)
Definition: rand.c:10
int ftruncate(int, off_t)
Definition: unistd.h:30
int check_catalogue(const uint8_t *buf)
Definition: isohybrid.c:492
uint32_t isosize
Definition: isohybrid.c:77
int apm_parts
Definition: isohybrid.c:87
struct stat isostat
Definition: isohybrid.c:49
int read_catalogue(const uint8_t *buf)
Definition: isohybrid.c:517
void display_catalogue(void)
Definition: isohybrid.c:589
size_t initialise_mbr(uint8_t *mbr)
Definition: isohybrid.c:620
void display_mbr(const uint8_t *mbr, size_t len)
Definition: isohybrid.c:760
int check_banner(const uint8_t *buf)
Definition: isohybrid.c:473
int check_option(int argc, char *argv[])
Definition: isohybrid.c:271
void usage(void)
Definition: isohybrid.c:228
unsigned int padding
Definition: isohybrid.c:50
#define SEEK_SET
Definition: jmemansi.c:26
#define alloca
Definition: malloc.h:357
__u16 time
Definition: mkdosfs.c:8
#define warnx(...)
#define calloc
Definition: rosglue.h:14
descriptor
Definition: scsi.h:3951
#define getpid
Definition: wintirpc.h:52

◆ printh()

void printh ( void  )

Definition at line 235 of file isohybrid.c.

236{
237#define FMT "%-20s %s\n"
238
239 usage();
240
241 printf("\n");
242 printf("Options:\n");
243 printf(FMT, " -h <X>", "Number of geometry heads (default 64)");
244 printf(FMT, " -s <X>", "Number of geometry sectors (default 32)");
245 printf(FMT, " -e --entry", "Specify partition entry number (1-4)");
246 printf(FMT, " -o --offset", "Specify partition offset (default 0)");
247 printf(FMT, " -t --type", "Specify partition type (default 0x17)");
248 printf(FMT, " -i --id", "Specify MBR ID (default random)");
249#ifdef REACTOS_ISOHYBRID_EFI_MAC_SUPPORT
250 printf(FMT, " -u --uefi", "Build EFI bootable image");
251 printf(FMT, " -m --mac", "Add AFP table support");
252#endif
253 printf(FMT, " -b --mbr <PATH>", "Load MBR from PATH");
254
255 printf("\n");
256 printf(FMT, " --forcehd0", "Assume we are loaded as disk ID 0");
257 printf(FMT, " --ctrlhd0", "Assume disk ID 0 if the Ctrl key is pressed");
258 printf(FMT, " --partok", "Allow booting from within a partition");
259
260 printf("\n");
261 printf(FMT, " -? --help", "Display this help");
262 printf(FMT, " -v --verbose", "Display verbose output");
263 printf(FMT, " -V --version", "Display version information");
264
265 printf("\n");
266 printf("Report bugs to <pj.pandit@yahoo.co.in>\n");
267}
#define FMT

Referenced by check_option().

◆ read_catalogue()

int read_catalogue ( const uint8_t buf)

Definition at line 517 of file isohybrid.c.

518{
519 memcpy(&de_boot, buf++, 1);
520 memcpy(&de_media, buf++, 1);
521
522 memcpy(&de_seg, buf, 2);
524 buf += 2;
525
526 memcpy(&de_sys, buf++, 1);
527 memcpy(&de_mbz1, buf++, 1);
528
529 memcpy(&de_count, buf, 2);
531 buf += 2;
532
533 memcpy(&de_lba, buf, 4);
535 buf += 4;
536
537 memcpy(&de_mbz2, buf, 2);
539 buf += 2;
540
541 if (de_boot != 0x88 || de_media != 0
542 || (de_seg != 0 && de_seg != 0x7C0) || de_count != 4)
543 return 1;
544
545 return 0;
546}

Referenced by main().

◆ read_mbr_template()

void read_mbr_template ( char path,
uint8_t mbr 
)

Definition at line 603 of file isohybrid.c.

604{
605 FILE *fp;
606 size_t ret;
607
608 fp = fopen(path, "rb");
609 if (fp == NULL)
610 err(1, "could not open MBR template file `%s'", path);
611 clearerr(fp);
612 ret = fread(mbr, 1, MBRSIZE, fp);
613 if (ferror(fp) || ret != MBRSIZE)
614 err(1, "error while reading MBR template file `%s'", path);
615 fclose(fp);
616}
_Check_return_ _CRTIMP int __cdecl ferror(_In_ FILE *_File)
_CRTIMP void __cdecl clearerr(_Inout_ FILE *_File)
int ret

Referenced by initialise_mbr().

◆ usage()

void usage ( void  )

Definition at line 228 of file isohybrid.c.

229{
230 printf("Usage: %s [OPTIONS] <boot.iso>\n", prog);
231}

Referenced by main(), and printh().

Variable Documentation

◆ apm_parts

int apm_parts = 3

Definition at line 87 of file isohybrid.c.

Referenced by main().

◆ c

uint32_t c = 0

Definition at line 75 of file isohybrid.c.

Referenced by ascii_to_utf16le().

◆ catoffset

uint32_t catoffset = 0

Definition at line 74 of file isohybrid.c.

Referenced by check_banner(), and main().

◆ cc

uint32_t cc = 0

Definition at line 75 of file isohybrid.c.

Referenced by __ieee754_j0(), __ieee754_j1(), __ieee754_y0(), __ieee754_y1(), __remainder_piby2(), _getws(), _tcschr(), _tcsrchr(), _TIFFNoPostDecode(), _TIFFNoRowDecode(), _TIFFNoRowEncode(), _TIFFNoStripDecode(), _TIFFNoStripEncode(), _TIFFNoTileDecode(), _TIFFNoTileEncode(), _TIFFSwab16BitData(), _TIFFSwab24BitData(), _TIFFSwab32BitData(), _TIFFSwab64BitData(), adns__consistency(), CC_WMInitDialog(), Consonant_is_below_base_form(), Consonant_is_post_base_form(), Consonant_is_pre_base_form(), CryptCATClose(), CryptCATEnumerateAttr(), CryptCATEnumerateCatAttr(), CryptCATEnumerateMember(), CryptCATGetAttrInfo(), CryptCATGetCatAttrInfo(), CryptCATGetMemberInfo(), CryptCATOpen(), DIB_16BPP_HLine(), DispCallFunc(), DumpModeDecode(), DumpModeEncode(), f_read(), f_write(), fgets(), fgetws(), find_cc_var(), fpAcc(), fpDiff(), get_device_change_count(), GetColor(), gets(), halve1DimagePackedPixel(), halveImage3D(), halveImagePackedPixel(), halveImagePackedPixel3D(), halveImagePackedPixelSlice(), halveImageSlice(), horAcc16(), horAcc32(), horAcc8(), horDiff16(), horDiff32(), horDiff8(), init_cc(), initialise_mbr(), FxDmaTransactionProgramOrReserveDma::InvokeProgramDma(), is_volume_mounted(), main(), mmioStringToFOURCCA(), new_cc_var(), OnColorButton(), PredictorEncodeRow(), PredictorEncodeTile(), release_cc(), remainder(), sfnt_is_postscript(), swabHorAcc16(), swabHorAcc32(), swabHorDiff16(), swabHorDiff32(), test_marshal(), TIFFAppendToStrip(), TIFFReadRawStrip1(), TIFFReadRawTile1(), TIFFWriteEncodedStrip(), TIFFWriteEncodedTile(), TIFFWriteRawStrip(), TIFFWriteRawTile(), TranslateFunctionName(), verify_device(), verify_vcb(), warning(), and WDML_ServerNameProc().

◆ crc_tab

uint32_t crc_tab[256]

Definition at line 97 of file isohybrid.c.

Referenced by chksum_crc32().

◆ cs

uint32_t cs = 0

Definition at line 75 of file isohybrid.c.

Referenced by check_catalogue().

◆ de_boot

uint8_t de_boot = 0

Definition at line 82 of file isohybrid.c.

Referenced by display_catalogue(), and read_catalogue().

◆ de_count

uint16_t de_count = 0

Definition at line 81 of file isohybrid.c.

Referenced by display_catalogue(), and read_catalogue().

◆ de_lba

uint32_t de_lba = 0

Definition at line 80 of file isohybrid.c.

Referenced by display_catalogue(), initialise_mbr(), main(), and read_catalogue().

◆ de_mbz1

uint8_t de_mbz1 = 0

Definition at line 82 of file isohybrid.c.

Referenced by display_catalogue(), and read_catalogue().

◆ de_mbz2

uint16_t de_mbz2 = 0

Definition at line 81 of file isohybrid.c.

Referenced by display_catalogue(), and read_catalogue().

◆ de_media

uint8_t de_media = 0

Definition at line 82 of file isohybrid.c.

Referenced by display_catalogue(), and read_catalogue().

◆ de_seg

uint16_t de_seg = 0

Definition at line 81 of file isohybrid.c.

Referenced by display_catalogue(), and read_catalogue().

◆ de_sys

uint8_t de_sys = 0

Definition at line 82 of file isohybrid.c.

Referenced by display_catalogue(), and read_catalogue().

◆ efi_boot

uint8_t efi_boot = 0

Definition at line 85 of file isohybrid.c.

◆ efi_count

uint16_t efi_count = 0

Definition at line 84 of file isohybrid.c.

Referenced by initialise_mbr(), and main().

◆ efi_lba

uint32_t efi_lba = 0

Definition at line 83 of file isohybrid.c.

Referenced by initialise_mbr(), and main().

◆ efi_media

uint8_t efi_media = 0

Definition at line 85 of file isohybrid.c.

◆ efi_sys

uint8_t efi_sys = 0

Definition at line 85 of file isohybrid.c.

◆ entry

uint32_t entry = 0

Definition at line 63 of file isohybrid.c.

Referenced by _svcauth_des(), abort_dochost_tasks(), abort_window_bindings(), acpi_bus_find_driver(), acpi_bus_receive_event(), acquire_shader_resources(), ACTION_CostFinalize(), ACTION_FinishCustomActions(), ACTION_GetComponentInstallStates(), ACTION_GetFeatureInstallStates(), ACTION_InstallFiles(), ACTION_InstallValidate(), ACTION_MsiPublishAssemblies(), ACTION_MsiUnpublishAssemblies(), ACTION_PatchFiles(), ACTION_ProcessComponents(), ACTION_PublishFeatures(), ACTION_RegisterClassInfo(), ACTION_RegisterExtensionInfo(), ACTION_RegisterMIMEInfo(), ACTION_RegisterProgIdInfo(), ACTION_RemoveFiles(), ACTION_UnpublishFeatures(), ACTION_UnpublishProduct(), ACTION_UnregisterClassInfo(), ACTION_UnregisterExtensionInfo(), ACTION_UnregisterMIMEInfo(), ACTION_UnregisterProgIdInfo(), ACTION_UpdateComponentStates(), FileChildWindow::activate_entry(), activate_textservices(), StartMenu::ActivateEntry(), add_active_textservice(), add_coclass_typeinfo(), add_component_by_priority(), add_cookie(), add_cookie_headers(), add_data_to_folder(), add_dispinterface_typeinfo(), hhp_key_value_section::add_entry(), add_entry(), add_enum_typeinfo(), add_files_to_folder(), add_func_desc(), add_function_decl(), add_glsl_program_entry(), add_id3_picture(), add_id3_text(), add_importlib(), add_local_oid_text_to_control(), add_resource_data_entry(), add_resource_dir_entry(), add_sink_handler(), add_source_to_list(), add_structure_typeinfo(), add_table(), add_undo(), add_union_typeinfo(), add_var_desc(), add_wildcard(), QuickLaunchBar::AddButton(), AddCustomizeItem(), StartMenu::AddEntry(), StartMenu::AddShellEntries(), QuickLaunchBar::AddShortcuts(), AddStringToHash(), alloc_msi_remote_handle(), alloc_msihandle(), alloc_rootdir_entry(), alloc_user_entry(), AllocateDictionaryEntry(), apartment_disconnectproxies(), apartment_findfromoxid(), apartment_findfromtid(), apartment_freeunusedlibraries(), apartment_getclassobject(), apartment_release(), appbar_cliprect(), appbar_notify_all(), apply_lights(), arbfp_blit_set(), arbfp_blit_type_compare(), arbfp_free_blit_shader(), arbfp_free_ffpshader(), assign_stub_out_args(), atifs_free_ffpshader(), ATL::AtlComModuleRegisterServer(), ATL::AtlComModuleUnregisterServer(), attr_cache_entry_create(), attr_cache_entry_deref(), attr_cache_entry_expired(), attr_cache_entry_free(), attr_cache_entry_ref(), attr_cache_find_or_create(), attr_cache_insert(), attr_cache_update(), AVISplitter_next_request(), BIDI_DetermineLevels(), build_iface_list(), Bus_FDO_PnP(), Bus_PlugInDevice(), byte_swap_ifd_data(), cache_authorization(), cache_basic_authorization(), cache_cleanup(), cache_containers_enum(), cache_containers_find(), cache_containers_free(), cache_insert(), cache_lookup(), Pane::calc_single_width(), Pane::calc_widths(), calculate_ea_list_length(), calculate_file_cost(), callwndproc_proc(), FxIoQueue::CancelIrps(), cctrl_event_OnButtonClicked(), cctrl_event_OnCheckButtonToggled(), cctrl_event_OnControlActivating(), cctrl_event_OnItemSelected(), cert_find_alt_name_entry(), CertAddStoreToCollection(), CertGetNameStringW(), CertRemoveStoreFromCollection(), CertVerifyCRLRevocation(), ChannelHooks_ClientFillBuffer(), ChannelHooks_ClientGetSize(), ChannelHooks_ClientNotify(), ChannelHooks_ServerFillBuffer(), ChannelHooks_ServerGetSize(), ChannelHooks_ServerNotify(), check_codebase(), check_for_additional_prototype_types(), check_option(), check_pointers(), chmc_pmgl_add_entry(), chmc_pmgl_done(), ciffile_FindComponent(), ciffile_FindGroup(), ciffile_Release(), cl_addr_compare(), cl_exid_compare(), ClassInsertCScanList(), ClassRemoveCScanList(), clear_output_vars(), clear_task_timer(), ClientIdentity_QueryMultipleInterfaces(), clipbrd_wndproc(), clone_hlsl_type(), close_output_buffer(), XMLStorage::XMLWriter::close_pre(), cmp_codepage(), CoGetPSClsid(), CoInitializeEx(), collect_connections(), collect_objects(), CollectProgramsThread::collect_programs(), FindProgramDlg::collect_programs_callback(), collect_query_data(), Collection_control(), Collection_enumCert(), Collection_enumCRL(), Collection_enumCTL(), Collection_release(), COM_GetRegisteredClassObject(), COM_RevokeAllClasses(), COM_TlsDestroy(), FileChildWindow::Command(), compare_function_decl_rb(), compare_function_rb(), compare_hlsl_types(), compare_hlsl_types_rb(), compare_param_hlsl_types(), CompartmentEnumGuid_Next(), CompartmentMgr_ClearCompartment(), CompartmentMgr_Destructor(), CompartmentMgr_GetCompartment(), compile_function(), COMPOBJ_DllList_Add(), COMPOBJ_DllList_Free(), COMPOBJ_DllList_Get(), COMPOBJ_DllList_ReleaseRef(), component_free(), component_GetDependency(), component_GetDetVersion(), component_GetUrl(), ComponentEnum_Clone(), ComponentEnum_Next(), ComponentEnum_Release(), ComponentInfo_Compare(), components_count_type(), connect_scripts(), connection_collector(), context_apply_fbo_entry(), context_apply_fbo_state(), context_bind_shader_resources(), context_create_fbo_entry(), context_destroy_fbo_entry(), context_destroy_gl_resources(), context_entry_from_guid(), context_enum_fbo_entries(), context_find_fbo_entry(), context_get_entry(), context_handle_registered(), context_load_shader_resources(), context_queue_fbo_entry_destruction(), context_reuse_fbo_entry(), context_surface_update(), ContextPropertyList_Copy(), ContextPropertyList_EnumPropIDs(), ContextPropertyList_FindProperty(), ContextPropertyList_Free(), ContextPropertyList_RemoveProperty(), ContextPropertyList_SetProperty(), Control_WndProc(), Control_WndProc_Create(), ConvertDbgHelp(), copy_data_blocks(), CorDebug_Terminate(), CoRegisterInitializeSpy(), CoRegisterPSClsid(), CoRevokeClassObject(), CoUninitialize(), count_children(), XMLStorage::XMLWriter::create(), create_automatic_entry(), create_msft_typeinfo(), create_msft_typelib(), create_sltg_typelib(), create_sub_body(), create_taskdialog_template(), CreateComponentInfo(), CreateTestPalette(), CredUIConfirmCredentialsW(), CredUIPromptForCredentialsW(), CRYPT_AsnDecodeAltNameEntry(), CRYPT_AsnDecodeCRLEntry(), CRYPT_AsnDecodeCTLEntry(), CRYPT_AsnEncodeAltNameEntry(), CRYPT_AsnEncodeCRLEntry(), CRYPT_AsnEncodeCTLEntry(), CRYPT_CollectionAddContext(), CRYPT_CollectionAdvanceEnum(), CRYPT_FindCertificateInCRL(), CRYPT_FormatAltNameEntry(), CRYPT_GetCachedSIP(), CRYPT_RegWriteToReg(), crypt_sip_free(), CryptCATEnumerateMember(), CryptEnumOIDInfo(), CryptFindOIDInfo(), ctrl_container_on_wm_destroy(), ctrl_container_reparent(), ctrl_container_resize(), ctrl_free(), ctrl_set_font(), CURSORICON_LoadFromFileW(), custom_proc_wrapper(), customctrl_resize(), CustomizeClassic_OnInitDialog(), CustomizeClassic_OnOK(), d3d8_allocate_handle(), d3d8_free_handle(), d3d8_get_object(), d3d8_resource_free_private_data(), d3d9_resource_free_private_data(), d3d_device3_NextViewport(), d3d_device_inner_Release(), d3d_viewport_NextLight(), d3dcompiler_shader_reflection_type_compare(), d3dcompiler_shader_reflection_type_destroy(), d3drm_image_palettise(), d3drm_object_cleanup(), d3drm_object_delete_destroy_callback(), d3dx_effect_cleanup(), D3DXFrameFind(), D3DXLoadMeshFromXInMemory(), D3DXLoadSkinMeshFromXof(), DataCache_CreateEntry(), DataCache_Destroy(), DataCache_DiscardCache(), DataCache_Draw(), DataCache_EnumCache(), DataCache_GetEntryForFormatEtc(), DataCache_GetExtent(), DataCache_IsDirty(), DataCache_Load(), DataCache_OnRun(), DataCache_OnStop(), DataCache_Save(), DataCache_Uncache(), DataCache_UpdateCache(), ddraw7_EnumSurfaces(), ddraw_allocate_handle(), ddraw_free_handle(), ddraw_get_object(), ddraw_surface7_FreePrivateData(), deactivate_remove_conflicting_ts(), deactivate_textservices(), debug_client_get_target(), debug_dump_instr_list(), debugclient_DetachProcesses(), debugclient_Release(), debugsymbols_GetSourceEntryOffsetRegions(), debugsymbols_GetSourceEntryString(), debugsymbols_GetSourceEntryStringWide(), DECLARE_INTERFACE_(), declare_prefix(), declare_stub_args(), decode_readdir_entry(), deleg_fh_cmp(), deleg_file_cmp(), deleg_lock_find(), deleg_lock_update(), deleg_open_find(), deleg_stateid_cmp(), delegation_find(), delegation_remove(), delete_domain(), delete_glsl_program_entry(), delete_registered_ept_entry(), DeleteHashTable(), DeleteList(), dequeue_task(), destroy_cookies(), destroy_format(), destroy_script(), detach_inner_window(), detach_ranges(), detach_selection(), NotifyArea::DetermineHideState(), device_assign(), device_free_sampler(), device_leftover_sampler(), device_status(), deviceid_compare(), dict_enum_Next(), dictionary_Items(), dictionary_Keys(), dictionary_RemoveAll(), disable_children(), CMenuFocusManager::DisableMouseTrack(), RdpClientUI::Display_DrawText(), DllMain(), DoAction1(), DoAction10(), DoAction11(), DoAction12(), DoAction2(), DoAction3(), DoAction4(), DoAction5(), DoAction6(), DoAction7(), DoAction8(), DoAction9(), does_any_iface(), DoTestCaseB(), DoTestEntry(), Pane::draw_item(), dump_alt_name_entry(), dump_TLBRefType(), EditWindowProc(), emfdc_create_palette(), EMFDRV_CreatePalette(), empty_body_list(), empty_frame_queue(), empty_header_list(), empty_new_prop_list(), empty_param_list(), empty_redo_stack(), end_container(), entry_invis(), SDIMainFrame::entry_selected(), MDIShellBrowserChild::entry_selected(), entry_updatable(), enum_components_Next(), enum_groups_Next(), CEnumRegRoot::EnumerateNext(), CEnumNTDirectory::EnumerateNext(), EnumerateSecurityPackagesW(), EnumTfDocumentMgr_Next(), TaskBar::EnumWndProc(), ept_delete(), ept_insert(), ept_map(), event_add_local(), event_add_source(), event_cleanup_subscriptions(), event_remove(), event_subscribe(), events_OnFileOk(), events_OnFolderChange(), events_OnFolderChanging(), events_OnOverwrite(), events_OnSelectionChange(), events_OnTypeChange(), exec_queued_code(), ext4_xattr_block_fetch(), ext4_xattr_compute_hash(), ext4_xattr_entry_data(), ext4_xattr_inode_fetch(), ext4_xattr_rehash(), ext4_xattr_set_inode_entry(), ext4_xattr_write_to_disk(), ShellDirectory::extract_icons(), fcbopen_main(), FCIDestroy(), feature_cost(), fields_memsize(), file_device_find_or_create(), file_layout_recall_all(), file_layout_recall_file(), file_layout_recall_fsid(), FileChildWindow::FileChildWindow(), fill_delegated_proxy_table(), fill_delegated_stub_table(), fill_in_file_stream_information(), fill_process(), fill_source_list(), fill_stubless_table(), find_action_by_guid(), find_adjacent_face(), find_arg(), find_array_or_string_in_struct(), find_body(), find_cached_table(), find_container(), find_cookie(), NtObjDirectory::find_entry(), RegDirectory::find_entry(), ShellDirectory::find_entry(), WinDirectory::find_entry(), find_entry(), find_entry_by_id(), find_entry_by_name(), find_entry_default(), find_entryW(), find_ept_entry(), find_ffp_frag_shader(), find_file(), find_filepatch(), find_first_entry(), find_first_id_entry(), find_global_prop(), find_hfontitem(), find_http_header(), find_identifier(), find_importinfo(), find_input_signature(), find_installed_monitor(), find_last_loop(), find_local(), find_loop_control_values(), find_name_space(), find_next(), find_prop(), find_proxy_manager(), find_ps_factory(), find_resource_data(), find_resource_dir_entry(), find_resourceA(), find_resourceW(), find_superblock(), find_window(), FindOrAddString(), flush_pending_tasks(), follow_parent(), for_each_iface(), for_each_serializable(), free_assembly(), free_authorization_cache(), free_cached_tables(), free_cookie_domain_list(), free_extension(), free_feature(), free_folder(), free_function_decl_rb(), free_function_rb(), free_handle(), free_hlsl_type(), free_http_headers(), free_information_tree(), free_instr_list(), free_list(), free_oid_info(), free_output_buffer(), free_package_structures(), free_parsed_config_file(), free_recorded_instruction(), free_resource_directory(), free_session(), free_sinks(), free_source_list(), free_stack(), Entry::free_subentries(), free_tls_list(), free_transforms(), free_travellog_entry(), free_user_entry(), FreeDictionaryEntry(), FreeUrlCacheSpaceW(), function_invoke(), function_local_cmp(), GdipCreateBitmapFromHBITMAP(), GdipDeleteGraphics(), GdipEnumerateMetafileSrcRectDestPoints(), GdipPlayMetafileRecord(), gen_stub(), gen_stub_thunk(), generic_handle_registered(), get_active_textservice(), get_appbar(), get_apple_string(), get_attrp(), get_attrv(), get_best_icon_file_entry(), get_best_icon_file_offset(), get_block_bh_mdl(), get_block_bh_pin(), get_body(), get_bool_const(), get_cctrl(), get_cctrl_from_dlgid(), get_client_counts(), get_context_handle_offset(), get_cookie(), get_cookie_container(), get_cookie_domain(), get_declared_prefix_uri(), get_default_script_guid(), get_domattr(), get_driver_version_info(), get_fat(), get_first_item(), get_func_flags(), get_func_handle_var(), get_func_obj_entry(), get_func_oi2_flags(), get_function_buffer_size(), get_generic_handle_offset(), get_glsl_program_entry(), get_item(), get_keyitem_pair(), get_logical_processor_count(), get_loop_control_const(), get_manifest_in_module(), get_mime_filter(), get_nscategory_entry(), get_padding(), get_param_flags(), get_parameter_by_name(), Entry::get_path_base(), get_range_object(), get_reflection_type(), get_resource_sizes(), get_runtime_info(), get_script_host(), get_server(), get_spy_entry(), get_src_param(), get_static_entry(), get_struct_fc(), get_stub_manager(), get_stub_manager_from_ipid(), get_stub_manager_from_object(), get_temp_binary(), get_textservice_clsid(), get_textservice_sink(), get_ttf_nametable_entry(), get_type(), get_user_full_handle(), get_user_object_handle(), get_volume_space_required(), get_win_string(), GetDictionaryEntry(), CNtObjectFolderExtractIcon::GetIconLocation(), CRegistryFolderExtractIcon::GetIconLocation(), CNtObjectFolder::GetInfoFromPidl(), CRegistryFolder::GetInfoFromPidl(), getInterfaceEntryByIndex(), getInterfaceEntryByName(), getInterfaceStatsByName(), GetPrivateProfileIntA(), GetPrivateProfileIntW(), GetPrivateProfileStringA(), GetPrivateProfileStringW(), GetProfileIntA(), GetProfileIntW(), GetProfileStringA(), GetProfileStringW(), GetTargetInterface(), FxVerifierLock::GetThreadTableEntry(), gid_cmp(), glsl_program_key_compare(), glyph_rb_compare(), glyph_rb_free(), grab_table(), group_cache_copy(), group_cache_free(), group_cmp(), gxv_EntryTable_validate(), gxv_StateArray_validate(), gxv_XEntryTable_validate(), gxv_XStateArray_validate(), handle_readdir(), handle_upcall(), FxPkgPnp::HandleQueryDeviceRelations(), has_all_extensions_removed(), has_delegated_locks(), has_extensions(), has_one_extension_installed(), has_out_arg_or_return(), hash_mac_addrs(), HashAddString(), HashInsert(), HashLookup(), HashPrint(), HashRemove(), hook_thread_proc(), HTMLAttributeCollection_invoke(), HTMLAttributeCollection_Release(), HTMLDocumentNode_destructor(), HTMLElement_destructor(), HtmlHelpW(), IAssemblyEnumImpl_GetNextAssembly(), IAssemblyEnumImpl_Release(), ICInfo(), ICInstall(), ICO_ExtractIconExW(), IcoDecoder_GetFrame(), ICOpen(), ICreateTypeInfo2_fnAddRefTypeInfo(), ICRemove(), id3_link(), ID3DXFontImpl_GetGlyphData(), IDirectInputDevice2WImpl_GetProperty(), IDirectInputDevice2WImpl_SetProperty(), IDirectMusicCollectionImpl_EnumInstrument(), IDirectMusicCollectionImpl_GetInstrument(), IDirectSoundBufferImpl_Unlock(), idmap_query_attrs(), IDxDiagContainerImpl_EnumChildContainerNames(), IDxDiagContainerImpl_EnumPropNames(), IDxDiagContainerImpl_GetChildContainerInternal(), IDxDiagContainerImpl_GetProp(), IEnumSTATSTGImpl_GetNextRef(), IFileDialog2_fnUnadvise(), IFileDialogCustomize_fnGetSelectedControlItem(), IHlinkBC_fnRelease(), IHlinkBC_SetInitialHlink(), IHlinkBC_UpdateHlink(), ImageUnload(), ImagingFactory_CreateBitmapFromHBITMAP(), IMAPIPROP_GetValue(), import_certs_from_dir(), BookmarkList::import_IE_favorites(), inf_free(), inf_next_section(), inf_section_free(), inf_section_next_value(), init_cache_entry(), init_library(), init_script_cache(), init_stream_header(), init_table_list(), CRegWatcher::InitEvent(), initialise_mbr(), insert_assembly(), Pane::insert_entries(), TrayNotifyDlg::InsertItem(), CExplorerBand::InsertSubitems(), ShellBrowser::InsertSubitems(), install_assembly(), InternetSession_UnregisterMimeFilter(), invalidate_handle(), IOAPICDump(), IOAPICSetupIrqs(), IPersistStreamImpl_Load(), IPropData_fnGetPropList(), IPropData_fnHrGetPropAccess(), IPropData_fnRelease(), IRichEditOle_fnGetObject(), IrotEnumRunning(), IrotGetObject(), IrotGetTimeOfLastChange(), IrotIsRunning(), IrotNoteChangeTime(), IrotRegister(), IrotRevoke(), is_attr(), is_full_pointer_function(), is_full_uninstall(), is_interpreted_func(), is_object(), is_registered_patch_media(), CMenuFocusManager::IsTrackedWindow(), CMenuFocusManager::IsTrackedWindowOrParent(), iterate_all_classes(), iterate_all_extensions(), ITypeInfo_fnAddressOfMember(), ITypeInfo_fnGetRefTypeInfo(), ITypeLib2_fnRelease(), ShellBrowser::jump_to(), FileChildWindow::jump_to_int(), ShellBrowser::jump_to_pidl(), KeystrokeMgr_IsPreservedKey(), KeystrokeMgr_PreserveKey(), KeystrokeMgr_UnpreserveKey(), CRegWatcher::KillInternat(), layout_coverage_status(), layout_entry_compare(), layout_ordered_insert(), layout_recall_merge(), layout_recall_range(), layout_state_deferred_recalls(), layout_state_find_and_delete(), layout_state_find_or_create(), layout_state_free_layouts(), layout_state_free_recalls(), layout_state_merge(), layout_update_range(), ldap_first_attributeA(), ldap_first_attributeW(), ldap_get_dnA(), ldap_get_dnW(), ldap_get_valuesA(), ldap_get_valuesW(), ldap_next_attributeA(), ldap_next_attributeW(), LdrpAccessResource(), lie_about_fs_type(), lineGetCountryW(), list_add(), list_add_head(), list_add_tail(), list_del(), list_del_init(), list_remove(), list_search(), LISTBOX_Directory(), LL_hook_proc(), load_given_appid(), load_given_class(), load_given_extension(), load_given_mime(), load_given_progid(), load_IFD_entry(), LoadIfdMetadata(), LocalServer_QueryService(), lock_range_cmp(), Lookup(), lookup_entry(), lookup_identifier(), lookup_named_item(), LookupIconIdFromDirectoryEx(), mac_entry_insert(), main(), marshal_nfs41_close(), marshal_nfs41_dirquery(), marshal_nfs41_eaget(), marshal_nfs41_easet(), marshal_nfs41_filequery(), marshal_nfs41_fileset(), marshal_nfs41_getacl(), marshal_nfs41_header(), marshal_nfs41_lock(), marshal_nfs41_mount(), marshal_nfs41_open(), marshal_nfs41_rw(), marshal_nfs41_setacl(), marshal_nfs41_shutdown(), marshal_nfs41_symlink(), marshal_nfs41_unlock(), marshal_nfs41_unmount(), marshal_nfs41_volume(), ME_ApplyStyle(), ME_CommitCoalescingUndo(), ME_CommitUndo(), ME_ContinueCoalescingTransaction(), ME_DestroyEditor(), ME_EmptyUndoStack(), ME_Redo(), ME_Undo(), merge_free_rows(), merge_table(), MimeBody_DeleteProp(), MimeBody_GetParameters(), MimeBody_SetProp(), MimeInternat_FindCharset(), MimeInternat_GetCharsetInfo(), MimeInternat_Release(), MmAllocSwapPage(), MMDevEnum_UnregisterEndpointNotificationCallback(), MmPageOutPhysicalAddress(), MmpPageOutPhysicalAddress(), move_files_wildcard(), MSFT_CustData(), MSFT_ReadAllGuids(), MSFT_ReadAllRefs(), MSFT_ReadGuid(), MSFT_ReadName(), MSFT_ReadString(), msi_add_cabinet_stream(), msi_check_publish(), msi_check_unpublish(), MSI_CommitTables(), msi_dialog_destroy(), msi_dialog_find_control(), msi_dialog_find_control_by_hwnd(), msi_dialog_find_control_by_type(), msi_dialog_find_font(), msi_dialog_set_tab_order(), msi_dialog_update_all_controls(), msi_dialog_update_controls(), msi_event_cleanup_all_subscriptions(), msi_event_fire(), msi_get_cabinet_stream(), msi_get_loaded_component(), msi_get_loaded_feature(), msi_get_loaded_file(), msi_get_loaded_folder(), MSI_GetFeatureCost(), msi_package_add_info(), msi_package_add_media_disk(), msi_publish_patches(), msi_publish_sourcelist(), msi_reset_source_folders(), msi_resolve_target_folder(), msi_seltree_add_child_features(), MSI_SetFeatureStates(), MSI_SetFeatureStateW(), MSI_SetTargetPathW(), msi_table_apply_transform(), msi_vcl_get_cost(), MsiDatabaseMergeW(), MsiSourceListAddSourceExW(), MUIClearPage(), MUIClearStyledText(), MUIClearText(), MUIDisplayErrorV(), MUIDisplayPage(), MUIGetEntry(), MUIGetString(), MUISetStyledText(), MUISetText(), mxwriter_get_output(), name_cache_entry_accessed(), name_cache_entry_changed(), name_cache_entry_create(), name_cache_entry_invalidate(), name_cache_entry_rename(), name_cache_entry_update(), name_cache_entry_updated(), name_cache_insert(), name_cache_remove(), name_cache_search(), name_cache_unlink(), name_cache_unlink_children_recursive(), namespacemanager_getDeclaredPrefix(), namespacemanager_getURI(), navigate_history(), NBNameCacheAddEntry(), CEnumRegKey::NextKey(), CEnumRegKey::NextValue(), nfs41_abs_path_compare(), nfs41_attr_cache_lookup(), nfs41_attr_cache_update(), nfs41_client_delegation_free(), nfs41_client_delegation_recovery(), nfs41_client_delegation_return_lru(), nfs41_CloseSrvOpen(), nfs41_Create(), nfs41_CreateVNetRoot(), nfs41_GetReparsePoint(), nfs41_Lock(), nfs41_mount(), nfs41_QueryDirectory(), nfs41_QueryEaInformation(), nfs41_QueryFileInformation(), nfs41_QuerySecurityInformation(), nfs41_QueryVolumeInformation(), nfs41_Read(), nfs41_recover_client_state(), nfs41_server_find_or_create(), nfs41_SetEaInformation(), nfs41_SetFileInformation(), nfs41_SetReparsePoint(), nfs41_SetSecurityInformation(), nfs41_shutdown_daemon(), nfs41_superblock_list_free(), nfs41_Unlock(), nfs41_unmount(), nfs41_upcall(), nfs41_UpcallCreate(), nfs41_UpcallWaitForReply(), nfs41_Write(), nfs_decode_compound(), nfs_encode_compound(), FindProgramDlg::Notify(), NotifyArea::Notify(), notify_clients(), FxPkgPnp::NotPowerPolicyOwnerEnterNewState(), nsChannelBSC_beginning_transaction(), nswindow_to_window(), NtUserValidateHandleSecure(), oc_long(), oc_short(), OLEFontImpl_Release(), OnCreate(), ShellBrowser::OnDefaultCommand(), OnTimer(), ShellBrowser::OnTreeGetDispInfo(), ShellBrowser::OnTreeItemExpanding(), ShellBrowser::OnTreeItemRClick(), ShellBrowser::OnTreeItemSelected(), open_connection(), open_dde_url(), open_deleg_cmp(), open_state_free(), open_stream(), open_unlock_delegate(), open_unlock_remove(), OutputQueue_FreeSamples(), OutputQueueImpl_ThreadProc(), Pane::Pane(), param_rb_compare(), parse_supported_runtime(), patch_add_media(), patch_offset_list_free(), patch_update_file_sequence(), patch_update_filepatch_sequence(), pattern_threads_init(), PdhCloseQuery(), PdhCollectQueryDataWithTime(), PeekHistory(), PHEventSink_Invoke(), PiNotifyDeviceInterfaceChange(), PiNotifyHardwareProfileChange(), PiNotifyTargetDeviceChange(), pnfs_file_device_list_free(), pnfs_file_device_list_invalidate(), pnfs_file_device_notify(), pnfs_layout_list_free(), pnfs_layout_recall_status(), pnfs_layout_state_prepare(), pnfs_rpc_layoutget(), FxPkgPnp::PnpEnterNewState(), FxPkgPnp::PnpProcessEventInner(), pool_alloc(), pool_destroy(), pop_control_frame(), pop_element(), pop_task(), populate_ea_list(), FxPkgPnp::PowerEnterNewState(), FxPkgPnp::PowerPolicyEnterNewState(), FxPkgPnp::PowerPolicyProcessEventInner(), FxPkgPnp::PowerProcessEventInner(), principal_cmp(), print_wait_status(), procaddr(), process_colcache(), process_directory(), process_dochost_tasks(), process_palette(), process_response_headers(), process_state_property(), process_tfs_iface(), process_timer(), FxSelfManagedIoMachine::ProcessEvent(), FxDevicePwrRequirementMachine::ProcessEventInner(), FxWakeInterruptMachine::ProcessEventInner(), FxPowerIdleMachine::ProcessEventLocked(), CMenuFocusManager::ProcessMouseDown(), CMenuFocusManager::ProcessMouseMove(), CMenuFocusManager::ProcessMouseUp(), NotifyArea::ProcessTrayNotification(), PropertyBag_Release(), PropertyStore_GetAt(), PropertyStore_GetCount(), PropertyStore_LookupValue(), PropertyStore_Release(), proxy_free_variables(), proxy_manager_destroy(), proxy_manager_disconnect(), proxy_manager_find_ifproxy(), Proxy_MarshalInterface(), QueryCygwinSymlink(), queue_add_timer(), queue_get_timeout(), queue_timer(), queue_timer_expire(), queueoutchar(), radiobuttonlist_on_bn_clicked(), radiobuttonlist_set_selected_item(), RasGetLinkStatistics(), RasSetCustomAuthDataA(), RasSetCustomAuthDataW(), NtObjDirectory::read_directory(), RegDirectory::read_directory(), RegistryRoot::read_directory(), ShellDirectory::read_directory(), WinDirectory::read_directory(), Entry::read_directory_base(), read_prop(), Entry::read_tree(), Root::read_tree(), ReadChmSystem(), readdir_add_dots(), readdir_copy_both_dir_info(), readdir_copy_dir_info(), readdir_copy_entry(), readdir_copy_full_dir_info(), reader_clear_attrs(), reader_clear_elements(), reader_clear_ns(), reader_get_element(), reader_lookup_ns(), reader_lookup_nsdef(), reader_mark_ns_nodes(), reader_move_to_first_attribute(), reader_parse_endtag(), reader_pop_element(), reader_pop_ns_nodes(), recover_locks(), refcount_component(), TaskBar::Refresh(), TrayNotifyDlg::Refresh(), NotifyArea::Refresh(), TrayNotifyDlg::RefreshProperties(), release_script(), release_script_hosts(), release_shader_resources(), release_signature(), release_std_git(), release_typelib(), ReleaseComponentInfos(), remove_attribute(), remove_folder(), remove_persistent_folder(), remove_target_tasks(), FxIrpQueue::RemoveIrpFromListEntry(), replacetextwithname(), reset_cabinet(), reset_program_constant_version(), resource_dup_string(), Resync(), retrieve_cached_authorization(), retrieve_cached_basic_authorization(), revoke_registered_psclsids(), root_client_find(), root_client_find_addrs(), root_free(), rpc_cancel_thread(), RPC_RegisterChannelHook(), RPC_RegisterInterface(), RPC_UnregisterAllChannelHooks(), RPC_UnregisterInterface(), RpcAssoc_Release(), RpcMgmtWaitServerListen(), RPCRT4_destroy_all_protseqs(), RPCRT4_find_interface(), RPCRT4_get_or_create_serverprotseq(), RPCRT4_GetAssociation(), RPCRT4_ServerFreeAllRegisteredAuthInfo(), RPCRT4_ServerGetRegisteredAuthInfo(), RPCRT4_start_listen(), RPCRT4_stop_listen(), RpcServerAssoc_FindContextHandle(), RpcServerAssoc_GetAssociation(), RpcServerInqBindings(), RpcServerUnregisterIf(), RtlDeleteTimerQueueEx(), run_insert_script(), RunningObjectTableImpl_Destroy(), RunningObjectTableImpl_GetObject(), RunningObjectTableImpl_GetTimeOfLastChange(), RunningObjectTableImpl_IsRunning(), RunningObjectTableImpl_NoteChangeTime(), RunningObjectTableImpl_Release(), RunningObjectTableImpl_Revoke(), RuntimeHost_AddDomain(), RuntimeHost_DeleteDomain(), RuntimeHost_Destroy(), runtimehost_uninit(), sampler(), save_dib(), save_emf(), save_mfpict(), save_persistent_cookie(), save_view_cache(), FileChildWindow::scan_entry(), ScanDiff(), schan_EnumerateSecurityPackagesW(), schedule_install_files(), ScriptFreeCache(), SdbpAddStringToTable(), SdbpTableDestroy(), search_manifest_in_module(), SECUR32_findPackageW(), SECUR32_freeProviders(), ShellBrowser::select_entry(), ShellBrowser::select_folder(), FxUsbInterface::SelectSettingByIndex(), server_compare(), FileChildWindow::set_curdir(), set_glsl_compute_shader_program(), set_glsl_shader_program(), set_lib_flags(), set_target_path(), set_textservice_sink(), FileTypeManager::set_type(), setEntryLink(), TrayNotifyDlg::SetIconMode(), shader_arb_handle_instruction(), shader_arb_load_constants_f(), shader_cleanup_reg_maps(), shader_constant_is_local(), shader_delete_constant_list(), shader_generate_arb_declarations(), shader_generate_glsl_declarations(), shader_glsl_compile_compute_shader(), shader_glsl_destroy(), shader_glsl_find_ffp_fragment_shader(), shader_glsl_find_ffp_vertex_shader(), shader_glsl_free_ffp_fragment_shader(), shader_glsl_free_ffp_vertex_shader(), shader_glsl_load_constants_f(), shader_glsl_load_constants_i(), shader_glsl_load_constantsB(), shader_glsl_loop(), shader_glsl_rep(), shader_hw_else(), shader_hw_endif(), shader_hw_endloop(), shader_hw_endrep(), shader_hw_ifc(), shader_hw_loop(), shader_hw_rep(), shader_record_sample(), shader_sm4_free(), should_enumerate_device(), ShowDiff(), sig_tree_compare(), SkipIdentical(), SkipIdenticalN(), SLTG_DoRefs(), SLTG_ReadName(), sltg_write_header(), snapshot_GetData(), snapshot_GetDataHere(), SnmpUtilVarBindListFree(), Entry::sort_directory(), source_find(), source_rb_compare(), SQLGetPrivateProfileString(), SQLGetPrivateProfileStringW(), SQLWritePrivateProfileString(), stack_find(), stack_peek(), stack_pop(), start_address_thread(), START_TEST(), state_cleanup(), stateblock_init_lights(), stateid_array(), StdGlobalInterfaceTable_FindEntry(), StdGlobalInterfaceTable_GetInterfaceFromGlobal(), StdGlobalInterfaceTable_RegisterInterfaceInGlobal(), StdGlobalInterfaceTable_RevokeInterfaceFromGlobal(), StorageBaseImpl_DeleteStorageTree(), string_buffer_get(), string_buffer_list_cleanup(), StringHashTableFree(), StringListAppend(), stub_manager_delete(), stub_manager_disconnect(), stub_manager_find_ifstub(), stub_manager_ipid_to_ifstub(), superblock_compare(), surface_set_compatible_renderbuffer(), SYSLINK_ClearDoc(), SYSLINK_Draw(), SYSLINK_GetFocusLink(), SYSLINK_GetLinkItemByIndex(), SYSLINK_GetNextLink(), SYSLINK_GetPrevLink(), SYSLINK_HitTest(), SYSLINK_LinkAtPt(), SYSLINK_Render(), SYSLINK_SetFocusLink(), TableFindPtr(), taskdialog_clear_controls(), tdiGetMibForIfEntity(), tdiGetMibForIpEntity(), test_AddMonitor(), test_CompareStringA(), test_decodeCRLDistPoints(), test_decodeCRLIssuingDistPoint(), test_decodeCRLToBeSigned(), test_default_properties(), test_DeleteMonitor(), Test_DelNodeA(), Test_DelNodeW(), TEST_DoEntry(), TEST_DoTestEntry(), test_encodeAltName(), test_encodeAuthorityKeyId2(), test_encodeCRLDistPoints(), test_encodeCRLIssuingDistPoint(), test_encodeCRLToBeSigned(), test_enumerate(), test_get_attributes(), test_get_dataType(), test_get_nodeTypeString(), test_GetAcceptLanguagesA(), test_GetDIBits(), test_GetProductInfo(), test_handles_process(), test_HashLinks(), test_installOIDFunctionAddress(), test_namespaces_as_attributes(), test_nodeTypedValue(), test_saxreader_encoding(), test_saxreader_features(), test_slist(), test_SummaryInfo(), test_thread_start_address(), test_tiff_palette(), testFindCertInCRL(), testFindCRL(), testQuery(), TextCompare(), texture2d_cleanup_sub_resources(), thread_count(), ThreadFocusHookProc(), ThreadMgr_AssociateFocus(), ThreadMgr_Destructor(), ThreadMgr_OnDocumentMgrDestruction(), TLB_append_guid(), TLB_append_str(), TLB_copy_all_custdata(), TLB_FreeCustData(), TLB_get_custdata_by_guid(), TLB_ReadTypeLib(), TransactedSnapshotImpl_Commit(), TransactedSnapshotImpl_CopyTree(), TransactedSnapshotImpl_CreateStubEntry(), TransactedSnapshotImpl_DestroyTemporaryCopy(), TransactedSnapshotImpl_EnsureReadEntry(), TransactedSnapshotImpl_FindFirstChild(), TransactedSnapshotImpl_MadeCopy(), TransactedSnapshotImpl_MakeStreamDirty(), tt_face_free_name(), tt_face_load_font_dir(), tt_face_load_loca(), tt_face_load_name(), tt_face_lookup_table(), tt_name_ascii_from_other(), tt_name_ascii_from_utf16(), TWAIN_ProcessEvent(), type_buffer_alignment(), type_has_full_pointer(), type_has_pointers(), type_new_function(), type_union_get_cases(), type_union_get_switch_value(), ui_create_colourmap(), ui_draw_text(), uid_cmp(), CRegWatcher::Uninit(), uninitialize_directinput_instance(), uninstall_assembly(), union_memsize(), unlock_init_spies(), unregister_namespace(), update_ini_callback(), update_open_dropdown(), NotifyArea::UpdateIcons(), urlcache_entry_alloc(), urlcache_entry_commit(), urlcache_entry_free(), urlcache_next_entry(), user_cache_copy(), user_cache_free(), user_type_offset(), user_type_registered(), UserAllocHandle(), UserDereferenceObject(), UserFreeHandle(), UserGetObject(), UserGetObjectNoErr(), UserMarkObjectDestroy(), username_cmp(), UserObjectInDestroy(), FxCmResList::ValidateAndClearMapping(), FxCmResList::ValidatePortAddressRange(), FxCmResList::ValidateRegisterPhysicalAddressRange(), FxCmResList::ValidateRegisterSystemAddressRange(), FxCmResList::ValidateRegisterSystemBaseAddress(), FxCmResList::ValidateResourceUnmap(), vbnamespacemanager_popContext(), vbnamespacemanager_Release(), verify_cert_revocation_with_crl_offline(), verify_cert_revocation_with_crl_online(), vfatDelFCBFromTable(), vfatGrabFCBFromTable(), viewport_activate(), visit_http_headers(), wine_rb_flip_color(), wine_rb_get(), wine_rb_is_red(), wine_rb_put(), wine_rb_remove(), wine_rb_remove_key(), wined3d_colour_from_ddraw_colour(), wined3d_ffp_frag_program_key_compare(), wined3d_ffp_vertex_program_key_compare(), wined3d_palette_get_entries(), wined3d_palette_set_entries(), wined3d_private_store_cleanup(), wined3d_private_store_free_private_data(), wined3d_private_store_get_private_data(), wined3d_register_window(), wined3d_sampler_compare(), wined3d_state_get_light(), wined3d_state_record_lights(), wined3d_texture_cleanup(), wined3d_texture_unload(), wined3d_unregister_window(), wined3d_wndproc(), WLDAP32_ldap_next_entry(), WLDAP32_ldap_next_reference(), WMSFT_compile_custdata(), WMSFT_compile_guids(), WMSFT_compile_impfile(), WMSFT_compile_impinfo(), WMSFT_compile_names(), WMSFT_compile_strings(), FileChildWindow::WndProc(), QuickLaunchBar::WndProc(), StartMenu::WndProc(), NotifyArea::WndProc(), WNetEnumCachedPasswords(), write_args(), XMLStorage::XMLWriter::write_attributes(), write_client_call_routine(), write_client_ifaces(), write_coclasses(), write_conf_or_var_desc(), write_context_handle_rundowns(), write_cpp_method_def(), write_data_blocks(), write_descriptors(), write_endpoints(), write_enums(), write_expr_eval_routine_list(), write_expr_eval_routines(), write_fields(), write_files(), write_fixed_array_pointer_descriptions(), write_folders(), write_forward_decls(), write_func_param_struct(), write_function_stub(), write_function_stubs(), write_generic_handle_routine_list(), write_generic_handle_routines(), write_header_stmts(), write_id_data_stmts(), write_imports(), write_inline_wrappers(), write_interfaces(), write_local_stubs_stmts(), write_method_macro(), write_msi_summary_info(), write_no_repeat_pointer_descriptions(), write_output_buffer(), write_parameters_init(), write_pointer_checks(), write_pointer_description_offsets(), XMLStorage::XMLWriter::write_post(), XMLStorage::XMLWriter::write_pre(), write_proc_func_header(), write_procformatstring_func(), write_progids(), write_proxy_stmts(), write_range_tfs(), write_registry_values(), write_remoting_arg(), write_remoting_arguments(), write_resources(), write_rundown_routines(), write_server_stmts(), write_struct_members(), write_struct_tfs(), write_typelib_interfaces(), write_typelib_regscript(), write_union_tfs(), write_user_quad_list(), write_user_types(), write_varying_array_pointer_descriptions(), WritePrivateProfileStringA(), WritePrivateProfileStringW(), WriteProfileStringA(), WriteProfileStringW(), writer_close_starttag(), writer_find_ns(), writer_find_ns_current(), writer_free_element(), writer_free_element_stack(), writer_output_ns(), writer_push_ns(), writestdout(), WSHIoctl_GetInterfaceList(), xmlDictGrow(), xmlDictLookup(), xmlDictQLookup(), xmlHashAddEntry3(), xmlHashDefaultDeallocator(), xmlHashLookup3(), xmlHashQLookup3(), xmlHashRemoveEntry3(), xmlHashUpdateEntry3(), xmlreader_MoveToAttributeByName(), xmlreader_MoveToElement(), xmlreader_MoveToNextAttribute(), xslprocessor_addParameter(), xslprocessor_Release(), ZSTD_ldm_insertEntry(), and ZSTD_ldm_makeEntryAndInsertByTag().

◆ hd0

uint8_t hd0 = 0

Definition at line 68 of file isohybrid.c.

Referenced by check_option(), and initialise_mbr().

◆ head

uint32_t head = 64

Definition at line 60 of file isohybrid.c.

Referenced by check_option(), initialise_mbr(), and main().

◆ id

uint32_t id = 0

Definition at line 66 of file isohybrid.c.

◆ isosize

uint32_t isosize = 0

Definition at line 77 of file isohybrid.c.

Referenced by main().

◆ isostat

struct stat isostat

Definition at line 49 of file isohybrid.c.

Referenced by main().

◆ mac_count

uint16_t mac_count = 0

Definition at line 84 of file isohybrid.c.

Referenced by initialise_mbr(), and main().

◆ mac_lba

uint32_t mac_lba = 0

Definition at line 83 of file isohybrid.c.

Referenced by initialise_mbr(), and main().

◆ mbr_template_path

char mbr_template_path[1024] = {0}

Definition at line 71 of file isohybrid.c.

Referenced by check_option(), and initialise_mbr().

◆ mode

Definition at line 56 of file isohybrid.c.

◆ offset

Definition at line 64 of file isohybrid.c.

Referenced by initialise_mbr().

◆ opterr

int opterr
extern

Definition at line 46 of file getopt.c.

Referenced by check_option().

◆ optind

int optind

Definition at line 48 of file isohybrid.c.

Referenced by check_option().

◆ padding

unsigned int padding = 0

Definition at line 50 of file isohybrid.c.

Referenced by main().

◆ partok

uint8_t partok = 0

Definition at line 69 of file isohybrid.c.

Referenced by check_option(), and initialise_mbr().

◆ prog

◆ psize

uint32_t psize = 0

Definition at line 77 of file isohybrid.c.

Referenced by initialise_mbr(), and main().

◆ sector

◆ type

uint32_t type = 0x17

Definition at line 65 of file isohybrid.c.

Referenced by initialise_mbr().

◆ ve

uint16_t ve[16]

Definition at line 73 of file isohybrid.c.

Referenced by check_catalogue(), and main().