mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-13 18:46:19 +07:00
07c5ccd70a
Some required information is not exposed to userspace currently (eg. the PASID), pass this information back, along with other information which is currently communicated via sysfs, which saves some parsing effort in userspace. Signed-off-by: Alastair D'Silva <alastair@d-silva.org> Acked-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
67 lines
1.5 KiB
C
67 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
|
/* Copyright 2017 IBM Corp. */
|
|
#ifndef _UAPI_MISC_OCXL_H
|
|
#define _UAPI_MISC_OCXL_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/ioctl.h>
|
|
|
|
enum ocxl_event_type {
|
|
OCXL_AFU_EVENT_XSL_FAULT_ERROR = 0,
|
|
};
|
|
|
|
#define OCXL_KERNEL_EVENT_FLAG_LAST 0x0001 /* This is the last event pending */
|
|
|
|
struct ocxl_kernel_event_header {
|
|
__u16 type;
|
|
__u16 flags;
|
|
__u32 reserved;
|
|
};
|
|
|
|
struct ocxl_kernel_event_xsl_fault_error {
|
|
__u64 addr;
|
|
__u64 dsisr;
|
|
__u64 count;
|
|
__u64 reserved;
|
|
};
|
|
|
|
struct ocxl_ioctl_attach {
|
|
__u64 amr;
|
|
__u64 reserved1;
|
|
__u64 reserved2;
|
|
__u64 reserved3;
|
|
};
|
|
|
|
struct ocxl_ioctl_metadata {
|
|
__u16 version; // struct version, always backwards compatible
|
|
|
|
// Version 0 fields
|
|
__u8 afu_version_major;
|
|
__u8 afu_version_minor;
|
|
__u32 pasid; // PASID assigned to the current context
|
|
|
|
__u64 pp_mmio_size; // Per PASID MMIO size
|
|
__u64 global_mmio_size;
|
|
|
|
// End version 0 fields
|
|
|
|
__u64 reserved[13]; // Total of 16*u64
|
|
};
|
|
|
|
struct ocxl_ioctl_irq_fd {
|
|
__u64 irq_offset;
|
|
__s32 eventfd;
|
|
__u32 reserved;
|
|
};
|
|
|
|
/* ioctl numbers */
|
|
#define OCXL_MAGIC 0xCA
|
|
/* AFU devices */
|
|
#define OCXL_IOCTL_ATTACH _IOW(OCXL_MAGIC, 0x10, struct ocxl_ioctl_attach)
|
|
#define OCXL_IOCTL_IRQ_ALLOC _IOR(OCXL_MAGIC, 0x11, __u64)
|
|
#define OCXL_IOCTL_IRQ_FREE _IOW(OCXL_MAGIC, 0x12, __u64)
|
|
#define OCXL_IOCTL_IRQ_SET_FD _IOW(OCXL_MAGIC, 0x13, struct ocxl_ioctl_irq_fd)
|
|
#define OCXL_IOCTL_GET_METADATA _IOR(OCXL_MAGIC, 0x14, struct ocxl_ioctl_metadata)
|
|
|
|
#endif /* _UAPI_MISC_OCXL_H */
|