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

#ifndef _XE_DRM_RAS_TYPES_H_
#define _XE_DRM_RAS_TYPES_H_

#include <linux/atomic.h>
#include <drm/xe_drm.h>

struct drm_ras_node;

/* Error categories reported by hardware */
enum hardware_error {
        HARDWARE_ERROR_CORRECTABLE = 0,
        HARDWARE_ERROR_NONFATAL,
        HARDWARE_ERROR_FATAL,
        HARDWARE_ERROR_MAX
};

/**
 * struct xe_drm_ras_counter - XE RAS counter
 *
 * This structure contains error component and counter information
 */
struct xe_drm_ras_counter {
        /** @name: error component name */
        const char *name;

        /** @counter: count of error */
        atomic_t counter;
};

/**
 * struct xe_drm_ras - XE DRM RAS structure
 *
 * This structure has details of error counters
 */
struct xe_drm_ras {
        /** @node: DRM RAS node */
        struct drm_ras_node *node;

        /** @info: info array for all types of errors */
        struct xe_drm_ras_counter *info[DRM_XE_RAS_ERR_SEV_MAX];
};

#endif