Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/s390/include/asm/crw.h
26493 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
/*
3
* Data definitions for channel report processing
4
* Copyright IBM Corp. 2000, 2009
5
* Author(s): Ingo Adlung <[email protected]>,
6
* Martin Schwidefsky <[email protected]>,
7
* Cornelia Huck <[email protected]>,
8
*/
9
10
#ifndef _ASM_S390_CRW_H
11
#define _ASM_S390_CRW_H
12
13
#include <linux/types.h>
14
15
/*
16
* Channel Report Word
17
*/
18
struct crw {
19
__u32 res1 : 1; /* reserved zero */
20
__u32 slct : 1; /* solicited */
21
__u32 oflw : 1; /* overflow */
22
__u32 chn : 1; /* chained */
23
__u32 rsc : 4; /* reporting source code */
24
__u32 anc : 1; /* ancillary report */
25
__u32 res2 : 1; /* reserved zero */
26
__u32 erc : 6; /* error-recovery code */
27
__u32 rsid : 16; /* reporting-source ID */
28
} __attribute__ ((packed));
29
30
typedef void (*crw_handler_t)(struct crw *, struct crw *, int);
31
32
extern int crw_register_handler(int rsc, crw_handler_t handler);
33
extern void crw_unregister_handler(int rsc);
34
extern void crw_handle_channel_report(void);
35
void crw_wait_for_channel_report(void);
36
37
#define NR_RSCS 16
38
39
#define CRW_RSC_MONITOR 0x2 /* monitoring facility */
40
#define CRW_RSC_SCH 0x3 /* subchannel */
41
#define CRW_RSC_CPATH 0x4 /* channel path */
42
#define CRW_RSC_CONFIG 0x9 /* configuration-alert facility */
43
#define CRW_RSC_CSS 0xB /* channel subsystem */
44
45
#define CRW_ERC_EVENT 0x00 /* event information pending */
46
#define CRW_ERC_AVAIL 0x01 /* available */
47
#define CRW_ERC_INIT 0x02 /* initialized */
48
#define CRW_ERC_TERROR 0x03 /* temporary error */
49
#define CRW_ERC_IPARM 0x04 /* installed parm initialized */
50
#define CRW_ERC_TERM 0x05 /* terminal */
51
#define CRW_ERC_PERRN 0x06 /* perm. error, fac. not init */
52
#define CRW_ERC_PERRI 0x07 /* perm. error, facility init */
53
#define CRW_ERC_PMOD 0x08 /* installed parameters modified */
54
55
#endif /* _ASM_S390_CRW_H */
56
57