1412042e2SAndrew Turner /*- 2412042e2SAndrew Turner * Copyright (c) 1991 Regents of the University of California. 3412042e2SAndrew Turner * All rights reserved. 4412042e2SAndrew Turner * 5412042e2SAndrew Turner * Redistribution and use in source and binary forms, with or without 6412042e2SAndrew Turner * modification, are permitted provided that the following conditions 7412042e2SAndrew Turner * are met: 8412042e2SAndrew Turner * 1. Redistributions of source code must retain the above copyright 9412042e2SAndrew Turner * notice, this list of conditions and the following disclaimer. 10412042e2SAndrew Turner * 2. Redistributions in binary form must reproduce the above copyright 11412042e2SAndrew Turner * notice, this list of conditions and the following disclaimer in the 12412042e2SAndrew Turner * documentation and/or other materials provided with the distribution. 13f72c920cSEd Maste * 3. Neither the name of the University nor the names of its contributors 14412042e2SAndrew Turner * may be used to endorse or promote products derived from this software 15412042e2SAndrew Turner * without specific prior written permission. 16412042e2SAndrew Turner * 17412042e2SAndrew Turner * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 18412042e2SAndrew Turner * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19412042e2SAndrew Turner * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20412042e2SAndrew Turner * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 21412042e2SAndrew Turner * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22412042e2SAndrew Turner * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23412042e2SAndrew Turner * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24412042e2SAndrew Turner * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25412042e2SAndrew Turner * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26412042e2SAndrew Turner * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27412042e2SAndrew Turner * SUCH DAMAGE. 28412042e2SAndrew Turner * from: FreeBSD: src/sys/i386/include/proc.h,v 1.11 2001/06/29 29412042e2SAndrew Turner */ 30412042e2SAndrew Turner 31d5d97bedSMike Karels #ifdef __arm__ 32d5d97bedSMike Karels #include <arm/proc.h> 33d5d97bedSMike Karels #else /* !__arm__ */ 34d5d97bedSMike Karels 35412042e2SAndrew Turner #ifndef _MACHINE_PROC_H_ 36412042e2SAndrew Turner #define _MACHINE_PROC_H_ 37412042e2SAndrew Turner 3885b7c566SAndrew Turner struct ptrauth_key { 3985b7c566SAndrew Turner uint64_t pa_key_lo; 4085b7c566SAndrew Turner uint64_t pa_key_hi; 4185b7c566SAndrew Turner }; 4285b7c566SAndrew Turner 43412042e2SAndrew Turner struct mdthread { 44412042e2SAndrew Turner int md_spinlock_count; /* (k) */ 45412042e2SAndrew Turner register_t md_saved_daif; /* (k) */ 46ae92ace0SAndrew Turner uintptr_t md_canary; 4785b7c566SAndrew Turner 4885b7c566SAndrew Turner /* 4985b7c566SAndrew Turner * The pointer authentication keys. These are shared within a process, 5085b7c566SAndrew Turner * however this may change for some keys as the PAuth ABI Extension to 5185b7c566SAndrew Turner * ELF for the Arm 64-bit Architecture [1] is currently (July 2021) at 5285b7c566SAndrew Turner * an Alpha release quality so may change. 5385b7c566SAndrew Turner * 5485b7c566SAndrew Turner * [1] https://github.com/ARM-software/abi-aa/blob/main/pauthabielf64/pauthabielf64.rst 5585b7c566SAndrew Turner */ 5685b7c566SAndrew Turner struct { 5785b7c566SAndrew Turner struct ptrauth_key apia; 5885b7c566SAndrew Turner struct ptrauth_key apib; 5985b7c566SAndrew Turner struct ptrauth_key apda; 6085b7c566SAndrew Turner struct ptrauth_key apdb; 6185b7c566SAndrew Turner struct ptrauth_key apga; 6285b7c566SAndrew Turner } md_ptrauth_user; 6385b7c566SAndrew Turner 6485b7c566SAndrew Turner struct { 6585b7c566SAndrew Turner struct ptrauth_key apia; 6685b7c566SAndrew Turner } md_ptrauth_kern; 676a9c2e63SAndrew Turner 686a9c2e63SAndrew Turner uint64_t md_reserved[4]; 69412042e2SAndrew Turner }; 70412042e2SAndrew Turner 71412042e2SAndrew Turner struct mdproc { 7250e3ab6bSAlan Cox long md_dummy; 73412042e2SAndrew Turner }; 74412042e2SAndrew Turner 75412042e2SAndrew Turner #define KINFO_PROC_SIZE 1088 769dcf90f8SEd Schouten #define KINFO_PROC32_SIZE 816 77412042e2SAndrew Turner 78412042e2SAndrew Turner #endif /* !_MACHINE_PROC_H_ */ 79d5d97bedSMike Karels 80d5d97bedSMike Karels #endif /* !__arm__ */ 81