root/drivers/gpu/drm/xe/xe_sysctrl_event_types.h
/* SPDX-License-Identifier: MIT */
/*
 * Copyright © 2026 Intel Corporation
 */

#ifndef _XE_SYSCTRL_EVENT_TYPES_H_
#define _XE_SYSCTRL_EVENT_TYPES_H_

#include <linux/types.h>

#define XE_SYSCTRL_EVENT_DATA_LEN               59

/* Modify as needed */
#define XE_SYSCTRL_EVENT_FLOOD                  16

/**
 * enum xe_sysctrl_event - Events reported by System Controller
 *
 * @XE_SYSCTRL_EVENT_THRESHOLD_CROSSED: Error counter threshold crossed
 */
enum xe_sysctrl_event {
        XE_SYSCTRL_EVENT_THRESHOLD_CROSSED      = 0x01,
};

/**
 * struct xe_sysctrl_event_request - Request structure for pending event
 */
struct xe_sysctrl_event_request {
        /** @vector: MSI-X vector that was triggered */
        u32 vector;
        /** @fn: Function index (0-7) of PCIe device */
        u32 fn:8;
        /** @reserved: Reserved for future use */
        u32 reserved:24;
        /** @reserved1: Reserved for future use */
        u32 reserved1[2];
} __packed;

/**
 * struct xe_sysctrl_event_response - Response structure for pending event
 */
struct xe_sysctrl_event_response {
        /** @count: Pending event count after this response */
        u32 count;
        /** @event: Pending event type */
        u32 event;
        /** @timestamp: Timestamp of most recent event */
        u64 timestamp;
        /** @extended: Event has extended payload */
        u32 extended:1;
        /** @reserved: Reserved for future use */
        u32 reserved:31;
        /** @data: Generic event data */
        u32 data[XE_SYSCTRL_EVENT_DATA_LEN];
} __packed;

#endif /* _XE_SYSCTRL_EVENT_TYPES_H_ */