drivers/scsi/isci/scu_event_codes.h

Source file repositories/reference/linux-study-clean/drivers/scsi/isci/scu_event_codes.h

File Facts

System
Linux kernel
Corpus path
drivers/scsi/isci/scu_event_codes.h
Extension
.h
Size
11161 bytes
Lines
337
Domain
Driver Families
Bucket
drivers/scsi
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef __SCU_EVENT_CODES_HEADER__
#define __SCU_EVENT_CODES_HEADER__

/**
 * This file contains the constants and macros for the SCU event codes.
 *
 *
 */

#define SCU_EVENT_TYPE_CODE_SHIFT      24
#define SCU_EVENT_TYPE_CODE_MASK       0x0F000000

#define SCU_EVENT_SPECIFIC_CODE_SHIFT  18
#define SCU_EVENT_SPECIFIC_CODE_MASK   0x00FC0000

#define SCU_EVENT_CODE_MASK \
	(SCU_EVENT_TYPE_CODE_MASK | SCU_EVENT_SPECIFIC_CODE_MASK)

/**
 * SCU_EVENT_TYPE() -
 *
 * This macro constructs an SCU event type from the type value.
 */
#define SCU_EVENT_TYPE(type) \
	((u32)(type) << SCU_EVENT_TYPE_CODE_SHIFT)

/**
 * SCU_EVENT_SPECIFIC() -
 *
 * This macro constructs an SCU event specifier from the code value.
 */
#define SCU_EVENT_SPECIFIC(code) \
	((u32)(code) << SCU_EVENT_SPECIFIC_CODE_SHIFT)

/**
 * SCU_EVENT_MESSAGE() -
 *
 * This macro constructs a combines an SCU event type and SCU event specifier
 * from the type and code values.
 */
#define SCU_EVENT_MESSAGE(type, code) \
	((type) | SCU_EVENT_SPECIFIC(code))

/**
 * SCU_EVENT_TYPE() -
 *
 * SCU_EVENT_TYPES
 */
#define SCU_EVENT_TYPE_SMU_COMMAND_ERROR  SCU_EVENT_TYPE(0x08)
#define SCU_EVENT_TYPE_SMU_PCQ_ERROR      SCU_EVENT_TYPE(0x09)
#define SCU_EVENT_TYPE_SMU_ERROR          SCU_EVENT_TYPE(0x00)
#define SCU_EVENT_TYPE_TRANSPORT_ERROR    SCU_EVENT_TYPE(0x01)
#define SCU_EVENT_TYPE_BROADCAST_CHANGE   SCU_EVENT_TYPE(0x02)
#define SCU_EVENT_TYPE_OSSP_EVENT         SCU_EVENT_TYPE(0x03)
#define SCU_EVENT_TYPE_FATAL_MEMORY_ERROR SCU_EVENT_TYPE(0x0F)
#define SCU_EVENT_TYPE_RNC_SUSPEND_TX     SCU_EVENT_TYPE(0x04)
#define SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX  SCU_EVENT_TYPE(0x05)
#define SCU_EVENT_TYPE_RNC_OPS_MISC       SCU_EVENT_TYPE(0x06)
#define SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT SCU_EVENT_TYPE(0x07)
#define SCU_EVENT_TYPE_ERR_CNT_EVENT      SCU_EVENT_TYPE(0x0A)

/**
 *
 *
 * SCU_EVENT_SPECIFIERS
 */
#define SCU_EVENT_SPECIFIER_DRIVER_SUSPEND 0x20
#define SCU_EVENT_SPECIFIER_RNC_RELEASE    0x00

/**
 *
 *
 * SMU_COMMAND_EVENTS
 */
#define SCU_EVENT_INVALID_CONTEXT_COMMAND \
	SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_COMMAND_ERROR, 0x00)

/**
 *
 *
 * SMU_PCQ_EVENTS
 */
#define SCU_EVENT_UNCORRECTABLE_PCQ_ERROR \
	SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_PCQ_ERROR, 0x00)

/**
 *
 *
 * SMU_EVENTS
 */

Annotation

Implementation Notes