From 0f51f663f06728f38f518073a23d69a7c1b0d792 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Tue, 27 Jan 2026 23:24:33 +0100 Subject: [PATCH] musl: update some hexagon headers from the quic fork --- .../include/hexagon-linux-musl/bits/hwcap.h | 31 +++++++++++++++++++ .../include/hexagon-linux-musl/bits/signal.h | 8 ++--- lib/libc/musl/arch/hexagon/bits/hwcap.h | 31 +++++++++++++++++++ lib/libc/musl/arch/hexagon/bits/signal.h | 5 +-- 4 files changed, 69 insertions(+), 6 deletions(-) create mode 100644 lib/libc/include/hexagon-linux-musl/bits/hwcap.h create mode 100644 lib/libc/musl/arch/hexagon/bits/hwcap.h diff --git a/lib/libc/include/hexagon-linux-musl/bits/hwcap.h b/lib/libc/include/hexagon-linux-musl/bits/hwcap.h new file mode 100644 index 0000000000000000000000000000000000000000..40b13e18f93622c10d83840c3a2add7788421e61 --- /dev/null +++ b/lib/libc/include/hexagon-linux-musl/bits/hwcap.h @@ -0,0 +1,31 @@ +/* ISA version encoding in bits 0-6 (7 bits) */ +#define HWCAP_HEXAGON_ISA_MASK 0x7F /* ISA version mask */ + +/* ISA version enumeration values */ +#define HWCAP_HEXAGON_ISA_V2 1 /* Hexagon V2 */ +#define HWCAP_HEXAGON_ISA_V3 2 /* Hexagon V3 */ +#define HWCAP_HEXAGON_ISA_V4 3 /* Hexagon V4 */ +#define HWCAP_HEXAGON_ISA_V5 4 /* Hexagon V5 */ +#define HWCAP_HEXAGON_ISA_V55 5 /* Hexagon V55 */ +#define HWCAP_HEXAGON_ISA_V60 6 /* Hexagon V60 */ +#define HWCAP_HEXAGON_ISA_V62 7 /* Hexagon V62 */ +#define HWCAP_HEXAGON_ISA_V65 8 /* Hexagon V65 */ +#define HWCAP_HEXAGON_ISA_V66 9 /* Hexagon V66 */ +#define HWCAP_HEXAGON_ISA_V67 10 /* Hexagon V67 */ +#define HWCAP_HEXAGON_ISA_V68 11 /* Hexagon V68 */ +#define HWCAP_HEXAGON_ISA_V69 12 /* Hexagon V69 */ +#define HWCAP_HEXAGON_ISA_V71 13 /* Hexagon V71 */ +#define HWCAP_HEXAGON_ISA_V73 14 /* Hexagon V73 */ +#define HWCAP_HEXAGON_ISA_V79 15 /* Hexagon V79 */ + +/* Essential feature flags */ +#define HWCAP_HEXAGON_HVX (1 << 7) /* HVX (Hexagon Vector eXtensions) */ +#define HWCAP_HEXAGON_CABAC (1 << 8) /* CABAC acceleration */ +#define HWCAP_HEXAGON_HVX_LENGTH_128B (1 << 9) /* HVX 128-byte vector length */ +#define HWCAP_HEXAGON_HVX_IEEE_FP (1 << 10) /* HVX IEEE floating point */ +#define HWCAP_HEXAGON_AUDIO (1 << 11) /* Audio ISA extensions */ + +/* Utility macros for userspace applications */ +#define HWCAP_HEXAGON_GET_ISA(hwcap) ((hwcap) & HWCAP_HEXAGON_ISA_MASK) +#define HWCAP_HEXAGON_IS_ISA(hwcap, version) (HWCAP_HEXAGON_GET_ISA(hwcap) == (version)) +#define HWCAP_HEXAGON_HAS_ISA(hwcap, version) (HWCAP_HEXAGON_GET_ISA(hwcap) >= (version)) diff --git a/lib/libc/include/hexagon-linux-musl/bits/signal.h b/lib/libc/include/hexagon-linux-musl/bits/signal.h index ec67d3ba01e005f06f717136a8b9a9cb0837c94d..9753066b6d840cf11d1f86cdc9cd2b48a16952c5 100644 --- a/lib/libc/include/hexagon-linux-musl/bits/signal.h +++ b/lib/libc/include/hexagon-linux-musl/bits/signal.h @@ -31,9 +31,10 @@ typedef struct sigcontext unsigned long pc; unsigned long cause; unsigned long badva; + unsigned long cs0; + unsigned long cs1; unsigned long pad1; - unsigned long long pad2; -} mcontext_t; +} __attribute__((__aligned__(8))) mcontext_t; #else typedef struct { unsigned long __regs[48]; @@ -61,7 +62,6 @@ typedef struct __ucontext { #define SA_RESTART 0x10000000 #define SA_NODEFER 0x40000000 #define SA_RESETHAND 0x80000000 -#define SA_RESTORER 0x04000000 #endif @@ -100,4 +100,4 @@ typedef struct __ucontext { #define SIGSYS 31 #define SIGUNUSED SIGSYS -#define _NSIG 65 \ No newline at end of file +#define _NSIG 65 diff --git a/lib/libc/musl/arch/hexagon/bits/hwcap.h b/lib/libc/musl/arch/hexagon/bits/hwcap.h new file mode 100644 index 0000000000000000000000000000000000000000..40b13e18f93622c10d83840c3a2add7788421e61 --- /dev/null +++ b/lib/libc/musl/arch/hexagon/bits/hwcap.h @@ -0,0 +1,31 @@ +/* ISA version encoding in bits 0-6 (7 bits) */ +#define HWCAP_HEXAGON_ISA_MASK 0x7F /* ISA version mask */ + +/* ISA version enumeration values */ +#define HWCAP_HEXAGON_ISA_V2 1 /* Hexagon V2 */ +#define HWCAP_HEXAGON_ISA_V3 2 /* Hexagon V3 */ +#define HWCAP_HEXAGON_ISA_V4 3 /* Hexagon V4 */ +#define HWCAP_HEXAGON_ISA_V5 4 /* Hexagon V5 */ +#define HWCAP_HEXAGON_ISA_V55 5 /* Hexagon V55 */ +#define HWCAP_HEXAGON_ISA_V60 6 /* Hexagon V60 */ +#define HWCAP_HEXAGON_ISA_V62 7 /* Hexagon V62 */ +#define HWCAP_HEXAGON_ISA_V65 8 /* Hexagon V65 */ +#define HWCAP_HEXAGON_ISA_V66 9 /* Hexagon V66 */ +#define HWCAP_HEXAGON_ISA_V67 10 /* Hexagon V67 */ +#define HWCAP_HEXAGON_ISA_V68 11 /* Hexagon V68 */ +#define HWCAP_HEXAGON_ISA_V69 12 /* Hexagon V69 */ +#define HWCAP_HEXAGON_ISA_V71 13 /* Hexagon V71 */ +#define HWCAP_HEXAGON_ISA_V73 14 /* Hexagon V73 */ +#define HWCAP_HEXAGON_ISA_V79 15 /* Hexagon V79 */ + +/* Essential feature flags */ +#define HWCAP_HEXAGON_HVX (1 << 7) /* HVX (Hexagon Vector eXtensions) */ +#define HWCAP_HEXAGON_CABAC (1 << 8) /* CABAC acceleration */ +#define HWCAP_HEXAGON_HVX_LENGTH_128B (1 << 9) /* HVX 128-byte vector length */ +#define HWCAP_HEXAGON_HVX_IEEE_FP (1 << 10) /* HVX IEEE floating point */ +#define HWCAP_HEXAGON_AUDIO (1 << 11) /* Audio ISA extensions */ + +/* Utility macros for userspace applications */ +#define HWCAP_HEXAGON_GET_ISA(hwcap) ((hwcap) & HWCAP_HEXAGON_ISA_MASK) +#define HWCAP_HEXAGON_IS_ISA(hwcap, version) (HWCAP_HEXAGON_GET_ISA(hwcap) == (version)) +#define HWCAP_HEXAGON_HAS_ISA(hwcap, version) (HWCAP_HEXAGON_GET_ISA(hwcap) >= (version)) diff --git a/lib/libc/musl/arch/hexagon/bits/signal.h b/lib/libc/musl/arch/hexagon/bits/signal.h index 1a2715dd5496889a3b5ead0b40c5c723a58dadb0..9753066b6d840cf11d1f86cdc9cd2b48a16952c5 100644 --- a/lib/libc/musl/arch/hexagon/bits/signal.h +++ b/lib/libc/musl/arch/hexagon/bits/signal.h @@ -31,9 +31,10 @@ typedef struct sigcontext unsigned long pc; unsigned long cause; unsigned long badva; + unsigned long cs0; + unsigned long cs1; unsigned long pad1; - unsigned long long pad2; -} mcontext_t; +} __attribute__((__aligned__(8))) mcontext_t; #else typedef struct { unsigned long __regs[48]; -- 2.54.0