1672Fermer1674
squalylLe 16/11/2005 à 10:55
[nosmile]typedef union {
	struct {
		unsigned long Zero;          // Check this with IsZero.
		unsigned long StringOffset;  // If Zero is really zero, this is an offset into the string table.
	} StringRef __attribute__((packed));
	char Name[8];        // Otherwise, this is the name of the symbol.
} coff_symname_t __attribute__((packed));

// Symbol Entry
typedef struct {
	coff_symname_t Name;
	unsigned long Value;
	unsigned short Section;
	unsigned short Type;
	unsigned char Class;
	unsigned char AuxSymbolCount;
} coff_symbol_t __attribute__((packed));

#define COFF_RELOC_DIR2 0x01
#define COFF_RELOC_DIR4 0x06
#define COFF_RELOC_ABS1 0x0F
#define COFF_RELOC_ABS2 0x10
#define COFF_RELOC_ABS4 0x11
#define COFF_RELOC_REL1 0x12
#define COFF_RELOC_REL2 0x13
#define COFF_RELOC_REL4 0x14
#define COFF_RELOC_ABS4_NEG 0x45
#define COFF_RELOC_ABS2_NEG 0x7161
#define COFF_RELOC_ABS1_NEG 0x7162
#define COFF_RELOC_UNOPTIMIZABLE 0x8000

typedef struct {
	unsigned long Location;
	unsigned long Symbol;
	unsigned short Type;
} coff_reloc_t __attribute__((packed));
[/nosmile]

Ethaniel :
En matière de sentiments, on ne connaît pas plus les siens que ceux des autres !

habon