arch man page on Darwin

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
Darwin logo
[printable version]

ARCH(3)			 BSD Library Functions Manual		       ARCH(3)

NAME
     NXGetAllArchInfos, NXGetLocalArchInfo, NXGetArchInfoFromName,
     NXGetArchInfoFromCpuType, NXFindBestFatArch, NXCombineCpuSubtypes — get
     architecture information

SYNOPSIS
     #include <mach-o/arch.h>

     extern const NXArchInfo *
     NXGetAllArchInfos(void);

     extern const NXArchInfo *
     NXGetLocalArchInfo(void);

     extern const NXArchInfo *
     NXGetArchInfoFromName(const char *name);

     extern const NXArchInfo *
     NXGetArchInfoFromCpuType(cpu_type_t cputype, cpu_subtype_t cpusubtype);

     extern struct fat_arch *
     NXFindBestFatArch(cpu_type_t cputype, cpu_subtype_t cpusubtype,
	 struct fat_arch *fat_archs, uint32_t nfat_archs);

     extern cpu_subtype_t
     NXCombineCpuSubtypes(cpu_type_t cputype, cpu_subtype_t cpusubtype1,
	 cpu_subtype_t cpusubtype2);

DESCRIPTION
     These functions are intended for use in programs that have to deal with
     universal files or programs that can target multiple architectures.  Typ‐
     ically, a program will use a command-line argument that starts with
     “-arch name”, where this specifies an architecture.  These functions and
     data structures provide some help for processing architecture flags and
     then processing the contents of a universal file.

     The structure NXArchInfo is defined in ⟨mach-o/arch.h⟩:

		   typedef struct {
			   const char *name;
			   cpu_type_t cputype;
			   cpu_subtype_t cpusubtype;
			   enum NXByteOrder byteorder;
			   const char *description;
		   } NXArchInfo;
     It is used to hold the name of the architecture and the corresponding CPU
     type and CPU subtype, together with the architecture's byte order and a
     brief description string.

     The currently known architectures are:

     Name	   CPU Type	       CPU Subtype		   Description
     x86_64	   CPU_TYPE_X86_64     CPU_SUBTYPE_X86_64_ALL	   Intel
								   x86-64
     i386	   CPU_TYPE_I386       CPU_SUBTYPE_I386_ALL	   Intel 80x86
     arm	   CPU_TYPE_ARM	       CPU_SUBTYPE_ARM_ALL	   ARM
     arm64	   CPU_TYPE_ARM64      CPU_SUBTYPE_ARM64_ALL	   ARM64
     ppc	   CPU_TYPE_POWERPC    CPU_SUBTYPE_POWERPC_ALL	   PowerPC
     ppc64	   CPU_TYPE_POWERPC64  CPU_SUBTYPE_POWERPC64_ALL   PowerPC
								   64-bit
     m68k	   CPU_TYPE_MC680x0    CPU_SUBTYPE_MC680x0_ALL	   Motorola
								   68K
     hppa	   CPU_TYPE_HPPA       CPU_SUBTYPE_HPPA_ALL	   HP-PA
     i860	   CPU_TYPE_I860       CPU_SUBTYPE_I860_ALL	   Intel 860
     m88k	   CPU_TYPE_MC88000    CPU_SUBTYPE_MC88000_ALL	   Motorola
								   88K
     sparc	   CPU_TYPE_SPARC      CPU_SUBTYPE_SPARC_ALL	   SPARC
     i486	   CPU_TYPE_I386       CPU_SUBTYPE_486		   Intel 486
     i486SX	   CPU_TYPE_I386       CPU_SUBTYPE_486SX	   Intel 486SX
     pentium	   CPU_TYPE_I386       CPU_SUBTYPE_PENT		   Intel
								   Pentium
     i586	   CPU_TYPE_I386       CPU_SUBTYPE_586		   Intel 586
     pentpro	   CPU_TYPE_I386       CPU_SUBTYPE_PENTPRO	   Intel
								   Pentium Pro
     i686	   CPU_TYPE_I386       CPU_SUBTYPE_PENTPRO	   Intel
								   Pentium Pro
     pentIIm3	   CPU_TYPE_I386       CPU_SUBTYPE_PENTII_M3	   Intel
								   Pentium II
								   Model 3
     pentIIm5	   CPU_TYPE_I386       CPU_SUBTYPE_PENTII_M5	   Intel
								   Pentium II
								   Model 5
     pentium4	   CPU_TYPE_I386       CPU_SUBTYPE_PENTIUM_4	   Intel
								   Pentium 4
     armv4t	   CPU_TYPE_ARM	       CPU_SUBTYPE_ARM_V4T	   arm v4t
     armv5	   CPU_TYPE_ARM	       CPU_SUBTYPE_ARM_V5TEJ	   arm v5
     xscale	   CPU_TYPE_ARM	       CPU_SUBTYPE_ARM_XSCALE	   arm xscale
     armv6	   CPU_TYPE_ARM	       CPU_SUBTYPE_ARM_V6	   arm v6
     armv6m	   CPU_TYPE_ARM	       CPU_SUBTYPE_ARM_V6M	   arm v6m
     armv7	   CPU_TYPE_ARM	       CPU_SUBTYPE_ARM_V7	   arm v7
     armv7f	   CPU_TYPE_ARM	       CPU_SUBTYPE_ARM_V7F	   arm v7f
     armv7s	   CPU_TYPE_ARM	       CPU_SUBTYPE_ARM_V7S	   arm v7s
     armv7k	   CPU_TYPE_ARM	       CPU_SUBTYPE_ARM_V7K	   arm v7k
     armv7m	   CPU_TYPE_ARM	       CPU_SUBTYPE_ARM_V7M	   arm v7m
     armv7em	   CPU_TYPE_ARM	       CPU_SUBTYPE_ARM_V7EM	   arm v7em
     armv8	   CPU_TYPE_ARM	       CPU_SUBTYPE_ARM_V8	   arm v8
     arm64	   CPU_TYPE_ARM64      CPU_SUBTYPE_ARM64_V8	   arm64 v8
     ppc601	   CPU_TYPE_POWERPC    CPU_SUBTYPE_POWERPC_601	   PowerPC 601
     ppc603	   CPU_TYPE_POWERPC    CPU_SUBTYPE_POWERPC_603	   PowerPC 603
     ppc604	   CPU_TYPE_POWERPC    CPU_SUBTYPE_POWERPC_604	   PowerPC 604
     ppc604e	   CPU_TYPE_POWERPC    CPU_SUBTYPE_POWERPC_604e	   PowerPC
								   604e
     ppc750	   CPU_TYPE_POWERPC    CPU_SUBTYPE_POWERPC_750	   PowerPC 750
     ppc7400	   CPU_TYPE_POWERPC    CPU_SUBTYPE_POWERPC_7400	   PowerPC
								   7400
     ppc7450	   CPU_TYPE_POWERPC    CPU_SUBTYPE_POWERPC_7450	   PowerPC
								   7450
     ppc970	   CPU_TYPE_POWERPC    CPU_SUBTYPE_POWERPC_970	   PowerPC 970
     m68030	   CPU_TYPE_MC680x0    CPU_SUBTYPE_MC68030_ONLY	   Motorola
								   68030
     m68040	   CPU_TYPE_MC680x0    CPU_SUBTYPE_MC68040	   Motorola
								   68040
     hppa7100LC	   CPU_TYPE_HPPA       CPU_SUBTYPE_HPPA_7100LC	   HP-PA
								   7100LC

     The first set of entries are used for the architecture family.  The sec‐
     ond set of entries are used for a specific architecture, when more than
     one specific architecture is supported in a family of architectures.

     NXGetAllArchInfos() returns a pointer to an array of all known NXArchInfo
     structures.  The last NXArchInfo is marked by a NULL name.

     NXGetLocalArchInfo() returns the NXArchInfo for the local host, or NULL
     if none is known.

     NXGetArchInfoFromName() and NXGetArchInfoFromCpuType() return the NXArch‐
     Info from the architecture's name or CPU type/CPU subtype combination.  A
     CPU subtype of CPU_SUBTYPE_MULTIPLE can be used to request the most gen‐
     eral NXArchInfo known for the given CPU type.  NULL is returned if no
     matching NXArchInfo can be found.

     NXFindBestFatArch() is passed a CPU type and CPU subtype and a set of
     fat_arch structs.	It selects the best one that matches (if any), and
     returns a pointer to that fat_arch struct (or NULL).  The fat_arch
     structs must be in the host byte order and correct such that fat_archs
     really points to enough memory for nfat_archs structs.  It is possible
     that this routine could fail if new CPU types or CPU subtypes are added
     and an old version of this routine is used.  But if there is an exact
     match between the CPU type and CPU subtype and one of the fat_arch
     structs, this routine will always succeed.

     NXCombineCpuSubtypes() returns the resulting CPU subtype when combining
     two different CPU subtypes for the specified CPU type.  If the two CPU
     subtypes can't be combined (the specific subtypes are mutually exclu‐
     sive), -1 is returned, indicating it is an error to combine them.	This
     can also fail and return -1 if new CPU types or CPU subtypes are added
     and an old version of this routine is used.  But if the CPU subtypes are
     the same, they can always be combined and this routine will return the
     CPU subtype passed in.

SEE ALSO
     arch(1)

			      September 13, 2013
[top]

List of man pages available for Darwin

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net