|
|
1.1 ! root 1: /* ! 2: * This file contains the current known set of flags and constants for the ! 3: * known architectures. ! 4: */ ! 5: #import <mach/machine.h> ! 6: #import <stuff/bytesex.h> ! 7: ! 8: /* ! 9: * The structure describing an architecture flag with the string of the flag ! 10: * name, and the cputype and cpusubtype. ! 11: */ ! 12: struct arch_flag { ! 13: char *name; ! 14: cpu_type_t cputype; ! 15: cpu_subtype_t cpusubtype; ! 16: }; ! 17: ! 18: /* ! 19: * get_arch_from_flag() is passed a name of an architecture flag and returns ! 20: * zero if that flag is not known and non-zero if the flag is known. ! 21: * If the pointer to the arch_flag is not NULL it is filled in with the ! 22: * arch_flag struct that matches the name. ! 23: */ ! 24: extern int get_arch_from_flag( ! 25: char *name, ! 26: struct arch_flag *arch_flag); ! 27: ! 28: /* ! 29: * get_arch_from_host() gets the architecture from the host this is running on ! 30: * and returns zero if the architecture is not known and zero if the ! 31: * architecture is known. If the parameters family_arch_flag and ! 32: * specific_arch_flag are not NULL they get fill in with the family ! 33: * architecture and specific architecure for the host. If the architecture ! 34: * is unknown and the parameters are not NULL then all fields are set to zero. ! 35: */ ! 36: extern int get_arch_from_host( ! 37: struct arch_flag *family_arch_flag, ! 38: struct arch_flag *specific_arch_flag); ! 39: ! 40: /* ! 41: * get_arch_flags() returns a pointer to an array of all currently know ! 42: * architecture flags (terminated with an entry with all zeros). ! 43: */ ! 44: extern const struct arch_flag *get_arch_flags( ! 45: void); ! 46: ! 47: /* ! 48: * arch_usage() is called when an unknown architecture flag is encountered. ! 49: * It prints the currently know architecture flags on stderr. ! 50: */ ! 51: extern void arch_usage( ! 52: void); ! 53: ! 54: /* ! 55: * set_arch_flag_name() sets the name field of the specified arch_flag to ! 56: * match it's cputype and cpusubtype. The string is allocated via malloc by ! 57: * the routines in "allocate.h" and errors are handled by the routines in ! 58: * "error.h". ! 59: */ ! 60: extern void set_arch_flag_name( ! 61: struct arch_flag *p); ! 62: ! 63: /* ! 64: * get_arch_name_from_types() returns the name of the architecture for the ! 65: * specified cputype and cpusubtype if known. If unknown it returns a pointer ! 66: * to the string "unknown". ! 67: */ ! 68: extern const char *get_arch_name_from_types( ! 69: cpu_type_t cputype, ! 70: cpu_subtype_t cpusubtype); ! 71: ! 72: /* ! 73: * get_arch_family_from_cputype() returns the family architecture for the ! 74: * specified cputype if known. If unknown it returns NULL. ! 75: */ ! 76: extern const struct arch_flag *get_arch_family_from_cputype( ! 77: cpu_type_t cputype); ! 78: ! 79: /* ! 80: * get_byte_sex_from_flag() returns the byte sex of the architecture for the ! 81: * specified cputype and cpusubtype if known. If unknown it returns ! 82: * UNKNOWN_BYTE_SEX. If the bytesex can be determined directly as in the case ! 83: * of reading a magic number from a file that should be done and this routine ! 84: * should not be used as it could be out of date. ! 85: */ ! 86: extern enum byte_sex get_byte_sex_from_flag( ! 87: const struct arch_flag *flag);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.