1*8d67ca89SAndroid Build Coastguard Worker /* $OpenBSD: asm.h,v 1.1 2004/02/01 05:09:49 drahn Exp $ */ 2*8d67ca89SAndroid Build Coastguard Worker /* $NetBSD: asm.h,v 1.4 2001/07/16 05:43:32 matt Exp $ */ 3*8d67ca89SAndroid Build Coastguard Worker 4*8d67ca89SAndroid Build Coastguard Worker /* 5*8d67ca89SAndroid Build Coastguard Worker * Copyright (c) 1990 The Regents of the University of California. 6*8d67ca89SAndroid Build Coastguard Worker * All rights reserved. 7*8d67ca89SAndroid Build Coastguard Worker * 8*8d67ca89SAndroid Build Coastguard Worker * This code is derived from software contributed to Berkeley by 9*8d67ca89SAndroid Build Coastguard Worker * William Jolitz. 10*8d67ca89SAndroid Build Coastguard Worker * 11*8d67ca89SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 12*8d67ca89SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions 13*8d67ca89SAndroid Build Coastguard Worker * are met: 14*8d67ca89SAndroid Build Coastguard Worker * 1. Redistributions of source code must retain the above copyright 15*8d67ca89SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer. 16*8d67ca89SAndroid Build Coastguard Worker * 2. Redistributions in binary form must reproduce the above copyright 17*8d67ca89SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer in the 18*8d67ca89SAndroid Build Coastguard Worker * documentation and/or other materials provided with the distribution. 19*8d67ca89SAndroid Build Coastguard Worker * 3. Neither the name of the University nor the names of its contributors 20*8d67ca89SAndroid Build Coastguard Worker * may be used to endorse or promote products derived from this software 21*8d67ca89SAndroid Build Coastguard Worker * without specific prior written permission. 22*8d67ca89SAndroid Build Coastguard Worker * 23*8d67ca89SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24*8d67ca89SAndroid Build Coastguard Worker * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25*8d67ca89SAndroid Build Coastguard Worker * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26*8d67ca89SAndroid Build Coastguard Worker * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27*8d67ca89SAndroid Build Coastguard Worker * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28*8d67ca89SAndroid Build Coastguard Worker * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29*8d67ca89SAndroid Build Coastguard Worker * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30*8d67ca89SAndroid Build Coastguard Worker * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31*8d67ca89SAndroid Build Coastguard Worker * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32*8d67ca89SAndroid Build Coastguard Worker * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33*8d67ca89SAndroid Build Coastguard Worker * SUCH DAMAGE. 34*8d67ca89SAndroid Build Coastguard Worker * 35*8d67ca89SAndroid Build Coastguard Worker * from: @(#)asm.h 5.5 (Berkeley) 5/7/91 36*8d67ca89SAndroid Build Coastguard Worker */ 37*8d67ca89SAndroid Build Coastguard Worker 38*8d67ca89SAndroid Build Coastguard Worker #pragma once 39*8d67ca89SAndroid Build Coastguard Worker 40*8d67ca89SAndroid Build Coastguard Worker #define __bionic_asm_align 64 41*8d67ca89SAndroid Build Coastguard Worker 42*8d67ca89SAndroid Build Coastguard Worker #undef __bionic_asm_function_type 43*8d67ca89SAndroid Build Coastguard Worker #define __bionic_asm_function_type %function 44*8d67ca89SAndroid Build Coastguard Worker 45*8d67ca89SAndroid Build Coastguard Worker #if defined(__ARM_FEATURE_BTI_DEFAULT) 46*8d67ca89SAndroid Build Coastguard Worker #define __bionic_asm_aarch64_feature_bti (1 << 0) 47*8d67ca89SAndroid Build Coastguard Worker #undef __bionic_asm_custom_entry 48*8d67ca89SAndroid Build Coastguard Worker #define __bionic_asm_custom_entry(f) bti c 49*8d67ca89SAndroid Build Coastguard Worker #else 50*8d67ca89SAndroid Build Coastguard Worker #define __bionic_asm_aarch64_feature_bti 0 51*8d67ca89SAndroid Build Coastguard Worker #endif 52*8d67ca89SAndroid Build Coastguard Worker 53*8d67ca89SAndroid Build Coastguard Worker #if defined(__ARM_FEATURE_PAC_DEFAULT) 54*8d67ca89SAndroid Build Coastguard Worker #define __bionic_asm_aarch64_feature_pac (1 << 1) 55*8d67ca89SAndroid Build Coastguard Worker #else 56*8d67ca89SAndroid Build Coastguard Worker #define __bionic_asm_aarch64_feature_pac 0 57*8d67ca89SAndroid Build Coastguard Worker #endif 58*8d67ca89SAndroid Build Coastguard Worker 59*8d67ca89SAndroid Build Coastguard Worker #undef __bionic_asm_custom_note_gnu_section 60*8d67ca89SAndroid Build Coastguard Worker #define __bionic_asm_custom_note_gnu_section() \ 61*8d67ca89SAndroid Build Coastguard Worker .pushsection .note.gnu.property, "a"; \ 62*8d67ca89SAndroid Build Coastguard Worker .balign 8; \ 63*8d67ca89SAndroid Build Coastguard Worker .long 4; \ 64*8d67ca89SAndroid Build Coastguard Worker .long 0x10; \ 65*8d67ca89SAndroid Build Coastguard Worker .long 0x5; /* NT_GNU_PROPERTY_TYPE_0 */ \ 66*8d67ca89SAndroid Build Coastguard Worker .asciz "GNU"; \ 67*8d67ca89SAndroid Build Coastguard Worker .long 0xc0000000; /* GNU_PROPERTY_AARCH64_FEATURE_1_AND */ \ 68*8d67ca89SAndroid Build Coastguard Worker .long 4; \ 69*8d67ca89SAndroid Build Coastguard Worker .long (__bionic_asm_aarch64_feature_pac | \ 70*8d67ca89SAndroid Build Coastguard Worker __bionic_asm_aarch64_feature_bti); \ 71*8d67ca89SAndroid Build Coastguard Worker .long 0; \ 72*8d67ca89SAndroid Build Coastguard Worker .popsection; 73*8d67ca89SAndroid Build Coastguard Worker 74*8d67ca89SAndroid Build Coastguard Worker #define NT_MEMTAG_LEVEL_MASK 3 75*8d67ca89SAndroid Build Coastguard Worker #define NT_MEMTAG_LEVEL_NONE 0 76*8d67ca89SAndroid Build Coastguard Worker #define NT_MEMTAG_LEVEL_ASYNC 1 77*8d67ca89SAndroid Build Coastguard Worker #define NT_MEMTAG_LEVEL_SYNC 2 78*8d67ca89SAndroid Build Coastguard Worker #define NT_MEMTAG_HEAP 4 79*8d67ca89SAndroid Build Coastguard Worker #define NT_MEMTAG_STACK 8 80