Path: blob/master/arch/riscv/include/uapi/asm/hwprobe.h
26513 views
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */1/*2* Copyright 2023-2024 Rivos, Inc3*/45#ifndef _UAPI_ASM_HWPROBE_H6#define _UAPI_ASM_HWPROBE_H78#include <linux/types.h>910/*11* Interface for probing hardware capabilities from userspace, see12* Documentation/arch/riscv/hwprobe.rst for more information.13*/14struct riscv_hwprobe {15__s64 key;16__u64 value;17};1819#define RISCV_HWPROBE_KEY_MVENDORID 020#define RISCV_HWPROBE_KEY_MARCHID 121#define RISCV_HWPROBE_KEY_MIMPID 222#define RISCV_HWPROBE_KEY_BASE_BEHAVIOR 323#define RISCV_HWPROBE_BASE_BEHAVIOR_IMA (1 << 0)24#define RISCV_HWPROBE_KEY_IMA_EXT_0 425#define RISCV_HWPROBE_IMA_FD (1 << 0)26#define RISCV_HWPROBE_IMA_C (1 << 1)27#define RISCV_HWPROBE_IMA_V (1 << 2)28#define RISCV_HWPROBE_EXT_ZBA (1 << 3)29#define RISCV_HWPROBE_EXT_ZBB (1 << 4)30#define RISCV_HWPROBE_EXT_ZBS (1 << 5)31#define RISCV_HWPROBE_EXT_ZICBOZ (1 << 6)32#define RISCV_HWPROBE_EXT_ZBC (1 << 7)33#define RISCV_HWPROBE_EXT_ZBKB (1 << 8)34#define RISCV_HWPROBE_EXT_ZBKC (1 << 9)35#define RISCV_HWPROBE_EXT_ZBKX (1 << 10)36#define RISCV_HWPROBE_EXT_ZKND (1 << 11)37#define RISCV_HWPROBE_EXT_ZKNE (1 << 12)38#define RISCV_HWPROBE_EXT_ZKNH (1 << 13)39#define RISCV_HWPROBE_EXT_ZKSED (1 << 14)40#define RISCV_HWPROBE_EXT_ZKSH (1 << 15)41#define RISCV_HWPROBE_EXT_ZKT (1 << 16)42#define RISCV_HWPROBE_EXT_ZVBB (1 << 17)43#define RISCV_HWPROBE_EXT_ZVBC (1 << 18)44#define RISCV_HWPROBE_EXT_ZVKB (1 << 19)45#define RISCV_HWPROBE_EXT_ZVKG (1 << 20)46#define RISCV_HWPROBE_EXT_ZVKNED (1 << 21)47#define RISCV_HWPROBE_EXT_ZVKNHA (1 << 22)48#define RISCV_HWPROBE_EXT_ZVKNHB (1 << 23)49#define RISCV_HWPROBE_EXT_ZVKSED (1 << 24)50#define RISCV_HWPROBE_EXT_ZVKSH (1 << 25)51#define RISCV_HWPROBE_EXT_ZVKT (1 << 26)52#define RISCV_HWPROBE_EXT_ZFH (1 << 27)53#define RISCV_HWPROBE_EXT_ZFHMIN (1 << 28)54#define RISCV_HWPROBE_EXT_ZIHINTNTL (1 << 29)55#define RISCV_HWPROBE_EXT_ZVFH (1 << 30)56#define RISCV_HWPROBE_EXT_ZVFHMIN (1ULL << 31)57#define RISCV_HWPROBE_EXT_ZFA (1ULL << 32)58#define RISCV_HWPROBE_EXT_ZTSO (1ULL << 33)59#define RISCV_HWPROBE_EXT_ZACAS (1ULL << 34)60#define RISCV_HWPROBE_EXT_ZICOND (1ULL << 35)61#define RISCV_HWPROBE_EXT_ZIHINTPAUSE (1ULL << 36)62#define RISCV_HWPROBE_EXT_ZVE32X (1ULL << 37)63#define RISCV_HWPROBE_EXT_ZVE32F (1ULL << 38)64#define RISCV_HWPROBE_EXT_ZVE64X (1ULL << 39)65#define RISCV_HWPROBE_EXT_ZVE64F (1ULL << 40)66#define RISCV_HWPROBE_EXT_ZVE64D (1ULL << 41)67#define RISCV_HWPROBE_EXT_ZIMOP (1ULL << 42)68#define RISCV_HWPROBE_EXT_ZCA (1ULL << 43)69#define RISCV_HWPROBE_EXT_ZCB (1ULL << 44)70#define RISCV_HWPROBE_EXT_ZCD (1ULL << 45)71#define RISCV_HWPROBE_EXT_ZCF (1ULL << 46)72#define RISCV_HWPROBE_EXT_ZCMOP (1ULL << 47)73#define RISCV_HWPROBE_EXT_ZAWRS (1ULL << 48)74#define RISCV_HWPROBE_EXT_SUPM (1ULL << 49)75#define RISCV_HWPROBE_EXT_ZICNTR (1ULL << 50)76#define RISCV_HWPROBE_EXT_ZIHPM (1ULL << 51)77#define RISCV_HWPROBE_EXT_ZFBFMIN (1ULL << 52)78#define RISCV_HWPROBE_EXT_ZVFBFMIN (1ULL << 53)79#define RISCV_HWPROBE_EXT_ZVFBFWMA (1ULL << 54)80#define RISCV_HWPROBE_EXT_ZICBOM (1ULL << 55)81#define RISCV_HWPROBE_EXT_ZAAMO (1ULL << 56)82#define RISCV_HWPROBE_EXT_ZALRSC (1ULL << 57)83#define RISCV_HWPROBE_EXT_ZABHA (1ULL << 58)84#define RISCV_HWPROBE_KEY_CPUPERF_0 585#define RISCV_HWPROBE_MISALIGNED_UNKNOWN (0 << 0)86#define RISCV_HWPROBE_MISALIGNED_EMULATED (1 << 0)87#define RISCV_HWPROBE_MISALIGNED_SLOW (2 << 0)88#define RISCV_HWPROBE_MISALIGNED_FAST (3 << 0)89#define RISCV_HWPROBE_MISALIGNED_UNSUPPORTED (4 << 0)90#define RISCV_HWPROBE_MISALIGNED_MASK (7 << 0)91#define RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE 692#define RISCV_HWPROBE_KEY_HIGHEST_VIRT_ADDRESS 793#define RISCV_HWPROBE_KEY_TIME_CSR_FREQ 894#define RISCV_HWPROBE_KEY_MISALIGNED_SCALAR_PERF 995#define RISCV_HWPROBE_MISALIGNED_SCALAR_UNKNOWN 096#define RISCV_HWPROBE_MISALIGNED_SCALAR_EMULATED 197#define RISCV_HWPROBE_MISALIGNED_SCALAR_SLOW 298#define RISCV_HWPROBE_MISALIGNED_SCALAR_FAST 399#define RISCV_HWPROBE_MISALIGNED_SCALAR_UNSUPPORTED 4100#define RISCV_HWPROBE_KEY_MISALIGNED_VECTOR_PERF 10101#define RISCV_HWPROBE_MISALIGNED_VECTOR_UNKNOWN 0102#define RISCV_HWPROBE_MISALIGNED_VECTOR_SLOW 2103#define RISCV_HWPROBE_MISALIGNED_VECTOR_FAST 3104#define RISCV_HWPROBE_MISALIGNED_VECTOR_UNSUPPORTED 4105#define RISCV_HWPROBE_KEY_VENDOR_EXT_THEAD_0 11106#define RISCV_HWPROBE_KEY_ZICBOM_BLOCK_SIZE 12107#define RISCV_HWPROBE_KEY_VENDOR_EXT_SIFIVE_0 13108/* Increase RISCV_HWPROBE_MAX_KEY when adding items. */109110/* Flags */111#define RISCV_HWPROBE_WHICH_CPUS (1 << 0)112113#endif114115116