Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * Copyright 2010, 2011 Mark Nelson and Tseng-Hui (Frank) Lin, IBM Corporation
0004  */
0005 
0006 #ifndef _ASM_POWERPC_IO_EVENT_IRQ_H
0007 #define _ASM_POWERPC_IO_EVENT_IRQ_H
0008 
0009 #include <linux/types.h>
0010 #include <linux/notifier.h>
0011 
0012 #define PSERIES_IOEI_RPC_MAX_LEN 216
0013 
0014 #define PSERIES_IOEI_TYPE_ERR_DETECTED      0x01
0015 #define PSERIES_IOEI_TYPE_ERR_RECOVERED     0x02
0016 #define PSERIES_IOEI_TYPE_EVENT         0x03
0017 #define PSERIES_IOEI_TYPE_RPC_PASS_THRU     0x04
0018 
0019 #define PSERIES_IOEI_SUBTYPE_NOT_APP        0x00
0020 #define PSERIES_IOEI_SUBTYPE_REBALANCE_REQ  0x01
0021 #define PSERIES_IOEI_SUBTYPE_NODE_ONLINE    0x03
0022 #define PSERIES_IOEI_SUBTYPE_NODE_OFFLINE   0x04
0023 #define PSERIES_IOEI_SUBTYPE_DUMP_SIZE_CHANGE   0x05
0024 #define PSERIES_IOEI_SUBTYPE_TORRENT_IRV_UPDATE 0x06
0025 #define PSERIES_IOEI_SUBTYPE_TORRENT_HFI_CFGED  0x07
0026 
0027 #define PSERIES_IOEI_SCOPE_NOT_APP      0x00
0028 #define PSERIES_IOEI_SCOPE_RIO_HUB      0x36
0029 #define PSERIES_IOEI_SCOPE_RIO_BRIDGE       0x37
0030 #define PSERIES_IOEI_SCOPE_PHB          0x38
0031 #define PSERIES_IOEI_SCOPE_EADS_GLOBAL      0x39
0032 #define PSERIES_IOEI_SCOPE_EADS_SLOT        0x3A
0033 #define PSERIES_IOEI_SCOPE_TORRENT_HUB      0x3B
0034 #define PSERIES_IOEI_SCOPE_SERVICE_PROC     0x51
0035 
0036 /* Platform Event Log Format, Version 6, data portition of IO event section */
0037 struct pseries_io_event {
0038     uint8_t event_type;     /* 0x00 IO-Event Type       */
0039     uint8_t rpc_data_len;       /* 0x01 RPC data length     */
0040     uint8_t scope;          /* 0x02 Error/Event Scope   */
0041     uint8_t event_subtype;      /* 0x03 I/O-Event Sub-Type  */
0042     uint32_t drc_index;     /* 0x04 DRC Index       */
0043     uint8_t rpc_data[PSERIES_IOEI_RPC_MAX_LEN];
0044                     /* 0x08 RPC Data (0-216 bytes,  */
0045                     /* padded to 4 bytes alignment) */
0046 };
0047 
0048 extern struct atomic_notifier_head pseries_ioei_notifier_list;
0049 
0050 #endif /* _ASM_POWERPC_IO_EVENT_IRQ_H */