Annotation of GNUtools/cctools/include/stuff/bytesex.h, revision 1.1

1.1     ! root        1: /* bytesex.h */
        !             2: #import <mach-o/fat.h>
        !             3: #import <mach-o/loader.h>
        !             4: #import <mach/m68k/thread_status.h>
        !             5: #import <mach/m98k/thread_status.h>
        !             6: #import <mach/m88k/thread_status.h>
        !             7: #import <mach/i860/thread_status.h>
        !             8: #import <mach/i386/thread_status.h>
        !             9: #import <mach/hppa/thread_status.h>
        !            10: #import <mach/sparc/thread_status.h>
        !            11: #import <mach-o/nlist.h>
        !            12: #import <mach-o/reloc.h>
        !            13: #import <bsd/ranlib.h>
        !            14: #import "stuff/bool.h"
        !            15: 
        !            16: enum byte_sex {
        !            17:     UNKNOWN_BYTE_SEX,
        !            18:     BIG_ENDIAN_BYTE_SEX,
        !            19:     LITTLE_ENDIAN_BYTE_SEX
        !            20: };
        !            21: 
        !            22: #define SWAP_SHORT(a) ( ((a & 0xff) << 8) | ((unsigned short)(a) >> 8) )
        !            23: 
        !            24: #define SWAP_LONG(a) ( ((a) << 24) | \
        !            25:                      (((a) << 8) & 0x00ff0000) | \
        !            26:                      (((a) >> 8) & 0x0000ff00) | \
        !            27:        ((unsigned long)(a) >> 24) )
        !            28: 
        !            29: extern float SWAP_FLOAT(
        !            30:     float f);
        !            31: 
        !            32: extern double SWAP_DOUBLE(
        !            33:     double d);
        !            34: 
        !            35: extern enum byte_sex get_host_byte_sex(
        !            36:     void);
        !            37: 
        !            38: extern void swap_fat_header(
        !            39:     struct fat_header *fat_header,
        !            40:     enum byte_sex target_byte_sex);
        !            41: 
        !            42: extern void swap_fat_arch(
        !            43:     struct fat_arch *fat_archs,
        !            44:     unsigned long nfat_arch,
        !            45:     enum byte_sex target_byte_sex);
        !            46: 
        !            47: extern void swap_mach_header(
        !            48:     struct mach_header *mh,
        !            49:     enum byte_sex target_byte_sex);
        !            50: 
        !            51: extern void swap_load_command(
        !            52:     struct load_command *lc,
        !            53:     enum byte_sex target_byte_sex);
        !            54: 
        !            55: extern void swap_segment_command(
        !            56:     struct segment_command *sg,
        !            57:     enum byte_sex target_byte_sex);
        !            58: 
        !            59: extern void swap_section(
        !            60:     struct section *s,
        !            61:     unsigned long nsects,
        !            62:     enum byte_sex target_byte_sex);
        !            63: 
        !            64: extern void swap_symtab_command(
        !            65:     struct symtab_command *st,
        !            66:     enum byte_sex target_byte_sex);
        !            67: 
        !            68: extern void swap_dysymtab_command(
        !            69:     struct dysymtab_command *dyst,
        !            70:     enum byte_sex target_byte_sex);
        !            71: 
        !            72: extern void swap_symseg_command(
        !            73:     struct symseg_command *ss,
        !            74:     enum byte_sex target_byte_sex);
        !            75: 
        !            76: extern void swap_fvmlib_command(
        !            77:     struct fvmlib_command *fl,
        !            78:     enum byte_sex target_byte_sex);
        !            79: 
        !            80: extern void swap_dylib_command(
        !            81:     struct dylib_command *dl,
        !            82:     enum byte_sex target_byte_sex);
        !            83: 
        !            84: extern void swap_dylinker_command(
        !            85:     struct dylinker_command *dyld,
        !            86:     enum byte_sex target_byte_sex);
        !            87: 
        !            88: extern void swap_fvmfile_command(
        !            89:     struct fvmfile_command *ff,
        !            90:     enum byte_sex target_byte_sex);
        !            91: 
        !            92: extern void swap_thread_command(
        !            93:     struct thread_command *ut,
        !            94:     enum byte_sex target_byte_sex);
        !            95: 
        !            96: extern void swap_m68k_thread_state_regs(
        !            97:     struct m68k_thread_state_regs *cpu,
        !            98:     enum byte_sex target_byte_sex);
        !            99: 
        !           100: extern void swap_m68k_thread_state_68882(
        !           101:     struct m68k_thread_state_68882 *fpu,
        !           102:     enum byte_sex target_byte_sex);
        !           103: 
        !           104: extern void swap_m68k_thread_state_user_reg(
        !           105:     struct m68k_thread_state_user_reg *user_reg,
        !           106:     enum byte_sex target_byte_sex);
        !           107: 
        !           108: extern void swap_m98k_thread_state_grf_t(
        !           109:     m98k_thread_state_grf_t *cpu,
        !           110:     enum byte_sex target_byte_sex);
        !           111: 
        !           112: extern void swap_m88k_thread_state_grf_t(
        !           113:     m88k_thread_state_grf_t *cpu,
        !           114:     enum byte_sex target_byte_sex);
        !           115: 
        !           116: extern void swap_m88k_thread_state_xrf_t(
        !           117:     m88k_thread_state_xrf_t *fpu,
        !           118:     enum byte_sex target_byte_sex);
        !           119: 
        !           120: extern void swap_m88k_thread_state_user_t(
        !           121:     m88k_thread_state_user_t *user,
        !           122:     enum byte_sex target_byte_sex);
        !           123: 
        !           124: extern void swap_m88110_thread_state_impl_t(
        !           125:     m88110_thread_state_impl_t *spu,
        !           126:     enum byte_sex target_byte_sex);
        !           127: 
        !           128: extern void swap_i860_thread_state_regs(
        !           129:     struct i860_thread_state_regs *cpu,
        !           130:     enum byte_sex target_byte_sex);
        !           131: 
        !           132: extern void swap_i386_thread_state(
        !           133:     i386_thread_state_t *cpu,
        !           134:     enum byte_sex target_byte_sex);
        !           135: 
        !           136: extern void swap_i386_thread_fpstate(
        !           137:     i386_thread_fpstate_t *fpu,
        !           138:     enum byte_sex target_byte_sex);
        !           139: 
        !           140: extern void swap_i386_thread_exceptstate(
        !           141:     i386_thread_exceptstate_t *exc,
        !           142:     enum byte_sex target_byte_sex);
        !           143: 
        !           144: extern void swap_i386_thread_cthreadstate(
        !           145:     i386_thread_cthreadstate_t *user,
        !           146:     enum byte_sex target_byte_sex);
        !           147: 
        !           148: extern void swap_hppa_integer_thread_state(
        !           149:     struct hp_pa_integer_thread_state *regs,
        !           150:     enum byte_sex target_byte_order);
        !           151: 
        !           152: extern void swap_hppa_frame_thread_state(
        !           153:   struct hp_pa_frame_thread_state *frame,
        !           154:   enum byte_sex target_byte_order);
        !           155: 
        !           156: extern void swap_hppa_fp_thread_state(
        !           157:   struct hp_pa_fp_thread_state *fp,
        !           158:   enum byte_sex target_byte_order);
        !           159: 
        !           160: extern void swap_sparc_thread_state_regs(
        !           161:   struct sparc_thread_state_regs *cpu,
        !           162:   enum byte_sex target_byte_order);
        !           163: 
        !           164: extern void swap_sparc_thread_state_fpu(
        !           165:   struct sparc_thread_state_fpu *fpu,
        !           166:   enum byte_sex target_byte_order);
        !           167: 
        !           168: extern void swap_ident_command(
        !           169:     struct ident_command *id_cmd,
        !           170:     enum byte_sex target_byte_sex);
        !           171: 
        !           172: extern void swap_nlist(
        !           173:     struct nlist *symbols,
        !           174:     unsigned long nsymbols,
        !           175:     enum byte_sex target_byte_sex);
        !           176: 
        !           177: extern void swap_ranlib(
        !           178:     struct ranlib *ranlibs,
        !           179:     unsigned long nranlibs,
        !           180:     enum byte_sex target_byte_sex);
        !           181: 
        !           182: extern void swap_relocation_info(
        !           183:     struct relocation_info *relocs,
        !           184:     unsigned long nrelocs,
        !           185:     enum byte_sex target_byte_sex);
        !           186: 
        !           187: extern void swap_indirect_symbols(
        !           188:     unsigned long *indirect_symbols,
        !           189:     unsigned long nindirect_symbols,
        !           190:     enum byte_sex target_byte_sex);
        !           191: 
        !           192: extern void swap_dylib_reference(
        !           193:     struct dylib_reference *refs,
        !           194:     unsigned long nrefs,
        !           195:     enum byte_sex target_byte_sex);
        !           196: 
        !           197: extern void swap_dylib_module(
        !           198:     struct dylib_module *mods,
        !           199:     unsigned long nmods,
        !           200:     enum byte_sex target_byte_sex);
        !           201: 
        !           202: extern void swap_dylib_table_of_contents(
        !           203:     struct dylib_table_of_contents *tocs,
        !           204:     unsigned long ntocs,
        !           205:     enum byte_sex target_byte_sex);
        !           206: 
        !           207: /*
        !           208:  * swap_object_headers() swaps the object file headers from the host byte sex
        !           209:  * into the non-host byte sex.  It returns TRUE if it can and did swap the
        !           210:  * headers else returns FALSE and does not touch the headers and prints an error
        !           211:  * using the error() routine.
        !           212:  */
        !           213: extern enum bool swap_object_headers(
        !           214:     struct mach_header *mh,
        !           215:     struct load_command *load_commands);
        !           216: 
        !           217: /*
        !           218:  * get_toc_byte_sex() guesses the byte sex of the table of contents of the
        !           219:  * library mapped in at the address, addr, of size, size based on the first
        !           220:  * object file's bytesex.  If it can't figure it out, because the library has
        !           221:  * no object file members or is malformed it will return UNKNOWN_BYTE_SEX.
        !           222:  */
        !           223: extern enum byte_sex get_toc_byte_sex(
        !           224:     char *addr,
        !           225:     unsigned long size);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.