74 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2/* Copyright (C) 2017 Arm Ltd. */3#ifndef _UAPI_LINUX_ARM_SDEI_H4#define _UAPI_LINUX_ARM_SDEI_H5 6#define SDEI_1_0_FN_BASE 0xC40000207#define SDEI_1_0_MASK 0xFFFFFFE08#define SDEI_1_0_FN(n) (SDEI_1_0_FN_BASE + (n))9 10#define SDEI_1_0_FN_SDEI_VERSION SDEI_1_0_FN(0x00)11#define SDEI_1_0_FN_SDEI_EVENT_REGISTER SDEI_1_0_FN(0x01)12#define SDEI_1_0_FN_SDEI_EVENT_ENABLE SDEI_1_0_FN(0x02)13#define SDEI_1_0_FN_SDEI_EVENT_DISABLE SDEI_1_0_FN(0x03)14#define SDEI_1_0_FN_SDEI_EVENT_CONTEXT SDEI_1_0_FN(0x04)15#define SDEI_1_0_FN_SDEI_EVENT_COMPLETE SDEI_1_0_FN(0x05)16#define SDEI_1_0_FN_SDEI_EVENT_COMPLETE_AND_RESUME SDEI_1_0_FN(0x06)17#define SDEI_1_0_FN_SDEI_EVENT_UNREGISTER SDEI_1_0_FN(0x07)18#define SDEI_1_0_FN_SDEI_EVENT_STATUS SDEI_1_0_FN(0x08)19#define SDEI_1_0_FN_SDEI_EVENT_GET_INFO SDEI_1_0_FN(0x09)20#define SDEI_1_0_FN_SDEI_EVENT_ROUTING_SET SDEI_1_0_FN(0x0A)21#define SDEI_1_0_FN_SDEI_PE_MASK SDEI_1_0_FN(0x0B)22#define SDEI_1_0_FN_SDEI_PE_UNMASK SDEI_1_0_FN(0x0C)23#define SDEI_1_0_FN_SDEI_INTERRUPT_BIND SDEI_1_0_FN(0x0D)24#define SDEI_1_0_FN_SDEI_INTERRUPT_RELEASE SDEI_1_0_FN(0x0E)25#define SDEI_1_0_FN_SDEI_PRIVATE_RESET SDEI_1_0_FN(0x11)26#define SDEI_1_0_FN_SDEI_SHARED_RESET SDEI_1_0_FN(0x12)27 28#define SDEI_VERSION_MAJOR_SHIFT 4829#define SDEI_VERSION_MAJOR_MASK 0x7fff30#define SDEI_VERSION_MINOR_SHIFT 3231#define SDEI_VERSION_MINOR_MASK 0xffff32#define SDEI_VERSION_VENDOR_SHIFT 033#define SDEI_VERSION_VENDOR_MASK 0xffffffff34 35#define SDEI_VERSION_MAJOR(x) (x>>SDEI_VERSION_MAJOR_SHIFT & SDEI_VERSION_MAJOR_MASK)36#define SDEI_VERSION_MINOR(x) (x>>SDEI_VERSION_MINOR_SHIFT & SDEI_VERSION_MINOR_MASK)37#define SDEI_VERSION_VENDOR(x) (x>>SDEI_VERSION_VENDOR_SHIFT & SDEI_VERSION_VENDOR_MASK)38 39/* SDEI return values */40#define SDEI_SUCCESS 041#define SDEI_NOT_SUPPORTED -142#define SDEI_INVALID_PARAMETERS -243#define SDEI_DENIED -344#define SDEI_PENDING -545#define SDEI_OUT_OF_RESOURCE -1046 47/* EVENT_REGISTER flags */48#define SDEI_EVENT_REGISTER_RM_ANY 049#define SDEI_EVENT_REGISTER_RM_PE 150 51/* EVENT_STATUS return value bits */52#define SDEI_EVENT_STATUS_RUNNING 253#define SDEI_EVENT_STATUS_ENABLED 154#define SDEI_EVENT_STATUS_REGISTERED 055 56/* EVENT_COMPLETE status values */57#define SDEI_EV_HANDLED 058#define SDEI_EV_FAILED 159 60/* GET_INFO values */61#define SDEI_EVENT_INFO_EV_TYPE 062#define SDEI_EVENT_INFO_EV_SIGNALED 163#define SDEI_EVENT_INFO_EV_PRIORITY 264#define SDEI_EVENT_INFO_EV_ROUTING_MODE 365#define SDEI_EVENT_INFO_EV_ROUTING_AFF 466 67/* and their results */68#define SDEI_EVENT_TYPE_PRIVATE 069#define SDEI_EVENT_TYPE_SHARED 170#define SDEI_EVENT_PRIORITY_NORMAL 071#define SDEI_EVENT_PRIORITY_CRITICAL 172 73#endif /* _UAPI_LINUX_ARM_SDEI_H */74