/* Solaris compatible AT_HWCAP bits. */ #define AV_SPARC_MUL32 0x00000100 /* 32x32 multiply is efficient */ #define AV_SPARC_DIV32 0x00000200 /* 32x32 divide is efficient */ #define AV_SPARC_FSMULD 0x00000400 /* 'fsmuld' is efficient */ #define AV_SPARC_V8PLUS 0x00000800 /* v9 insn available to 32bit */ #define AV_SPARC_POPC 0x00001000 /* 'popc' is efficient */ #define AV_SPARC_VIS 0x00002000 /* VIS insns available */ #define AV_SPARC_VIS2 0x00004000 /* VIS2 insns available */ #define AV_SPARC_ASI_BLK_INIT 0x00008000 /* block init ASIs available */ #define AV_SPARC_FMAF 0x00010000 /* fused multiply-add */ #define AV_SPARC_VIS3 0x00020000 /* VIS3 insns available */ #define AV_SPARC_HPC 0x00040000 /* HPC insns available */ #define AV_SPARC_RANDOM 0x00080000 /* 'random' insn available */ #define AV_SPARC_TRANS 0x00100000 /* transaction insns available */ #define AV_SPARC_FJFMAU 0x00200000 /* unfused multiply-add */ #define AV_SPARC_IMA 0x00400000 /* integer multiply-add */ #define AV_SPARC_ASI_CACHE_SPARING \ 0x00800000 /* cache sparing ASIs available */ #define AV_SPARC_PAUSE 0x01000000 /* PAUSE available */ #define AV_SPARC_CBCOND 0x02000000 /* CBCOND insns available */
/* Solaris decided to enumerate every single crypto instruction type *intheAT_HWCAPbits.Thisiswasteful,sinceifcryptoispresent, *youstillneedtolookintheCFRregistertoseeiftheopcodeis *reallyavailable.Sowesimplyadvertiseonly"crypto"support.
*/ #define HWCAP_SPARC_CRYPTO 0x04000000 /* CRYPTO insns available */ #define HWCAP_SPARC_ADI 0x08000000 /* ADI available */
/* This is the location that an ET_DYN program is loaded if exec'ed. Typical useofthisistoinvoke"./ld.sosomeprog"totestoutanewversionof theloader.Weneedtomakesurethatitisoutofthewayoftheprogram
that it will "exec", and that there is sufficient room for the brk. */
/* This yields a string that ld.so will use to load implementation specificlibrariesforoptimization.Thisismorespecificin
intent than poking at uname or /proc/cpuinfo. */
#define ELF_PLATFORM (NULL)
#define SET_PERSONALITY(ex) \ do { if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \
set_thread_flag(TIF_32BIT); \ else \
clear_thread_flag(TIF_32BIT); \ /* flush_thread will update pgd cache */ \ if (personality(current->personality) != PER_LINUX32) \
set_personality(PER_LINUX | \
(current->personality & (~PER_MASK))); \
} while (0)
externunsignedint vdso_enabled;
#define ARCH_DLINFO \ do { \ externstruct adi_config adi_state; \ if (vdso_enabled) \
NEW_AUX_ENT(AT_SYSINFO_EHDR, \
(unsignedlong)current->mm->context.vdso); \
NEW_AUX_ENT(AT_ADI_BLKSZ, adi_state.caps.blksz); \
NEW_AUX_ENT(AT_ADI_NBITS, adi_state.caps.nbits); \
NEW_AUX_ENT(AT_ADI_UEONADI, adi_state.caps.ue_on_adi); \
} while (0)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.