1*7c8c0b82SPatrick Mooney /* 2*7c8c0b82SPatrick Mooney * This file and its contents are supplied under the terms of the 3*7c8c0b82SPatrick Mooney * Common Development and Distribution License ("CDDL"), version 1.0. 4*7c8c0b82SPatrick Mooney * You may only use this file in accordance with the terms of version 5*7c8c0b82SPatrick Mooney * 1.0 of the CDDL. 6*7c8c0b82SPatrick Mooney * 7*7c8c0b82SPatrick Mooney * A full copy of the text of the CDDL should have accompanied this 8*7c8c0b82SPatrick Mooney * source. A copy of the CDDL is also available via the Internet at 9*7c8c0b82SPatrick Mooney * http://www.illumos.org/license/CDDL. 10*7c8c0b82SPatrick Mooney */ 11*7c8c0b82SPatrick Mooney 12*7c8c0b82SPatrick Mooney /* 13*7c8c0b82SPatrick Mooney * Copyright 2019 Joyent, Inc. 14*7c8c0b82SPatrick Mooney * Copyright 2022 Oxide Computer Company 15*7c8c0b82SPatrick Mooney */ 16*7c8c0b82SPatrick Mooney 17*7c8c0b82SPatrick Mooney #ifndef _SYS_SMT_MACHCPU_H 18*7c8c0b82SPatrick Mooney #define _SYS_SMT_MACHCPU_H 19*7c8c0b82SPatrick Mooney 20*7c8c0b82SPatrick Mooney #include <sys/types.h> 21*7c8c0b82SPatrick Mooney 22*7c8c0b82SPatrick Mooney #ifdef __cplusplus 23*7c8c0b82SPatrick Mooney extern "C" { 24*7c8c0b82SPatrick Mooney #endif 25*7c8c0b82SPatrick Mooney 26*7c8c0b82SPatrick Mooney /* 27*7c8c0b82SPatrick Mooney * The SMT exclusion logic requires `struct cpu_smt` be present in 28*7c8c0b82SPatrick Mooney * `struct machcpu` as the field `mcpu_smt`. It is defined here, on its own, so 29*7c8c0b82SPatrick Mooney * it may be easily included by the relevant machine architecture(s). 30*7c8c0b82SPatrick Mooney */ 31*7c8c0b82SPatrick Mooney typedef struct cpu_smt { 32*7c8c0b82SPatrick Mooney lock_t cs_lock; 33*7c8c0b82SPatrick Mooney char cs_pad[56]; 34*7c8c0b82SPatrick Mooney struct cpu *cs_sib; 35*7c8c0b82SPatrick Mooney volatile uint64_t cs_intr_depth; 36*7c8c0b82SPatrick Mooney volatile uint64_t cs_state; 37*7c8c0b82SPatrick Mooney volatile uint64_t cs_sibstate; 38*7c8c0b82SPatrick Mooney } cpu_smt_t; 39*7c8c0b82SPatrick Mooney 40*7c8c0b82SPatrick Mooney #ifdef __cplusplus 41*7c8c0b82SPatrick Mooney } 42*7c8c0b82SPatrick Mooney #endif 43*7c8c0b82SPatrick Mooney 44*7c8c0b82SPatrick Mooney #endif /* _SYS_SMT_MACHCPU_H */ 45