]>
Commit | Line | Data |
---|---|---|
e6b6e10a PO |
1 | /* |
2 | * drivers/s390/cio/chp.h | |
3 | * | |
4 | * Copyright IBM Corp. 2007 | |
5 | * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | |
6 | */ | |
7 | ||
8 | #ifndef S390_CHP_H | |
9 | #define S390_CHP_H S390_CHP_H | |
10 | ||
11 | #include <linux/types.h> | |
12 | #include <linux/device.h> | |
e5854a58 | 13 | #include <asm/chpid.h> |
e6b6e10a PO |
14 | #include "chsc.h" |
15 | ||
e5854a58 PO |
16 | #define CHP_STATUS_STANDBY 0 |
17 | #define CHP_STATUS_CONFIGURED 1 | |
18 | #define CHP_STATUS_RESERVED 2 | |
19 | #define CHP_STATUS_NOT_RECOGNIZED 3 | |
20 | ||
21 | static inline int chp_test_bit(u8 *bitmap, int num) | |
22 | { | |
23 | int byte = num >> 3; | |
24 | int mask = 128 >> (num & 7); | |
25 | ||
26 | return (bitmap[byte] & mask) ? 1 : 0; | |
27 | } | |
28 | ||
29 | ||
e6b6e10a PO |
30 | struct channel_path { |
31 | struct chp_id chpid; | |
32 | int state; | |
33 | struct channel_path_desc desc; | |
34 | /* Channel-measurement related stuff: */ | |
35 | int cmg; | |
36 | int shared; | |
37 | void *cmg_chars; | |
38 | struct device dev; | |
39 | }; | |
40 | ||
41 | int chp_get_status(struct chp_id chpid); | |
42 | u8 chp_get_sch_opm(struct subchannel *sch); | |
43 | int chp_is_registered(struct chp_id chpid); | |
44 | void *chp_get_chp_desc(struct chp_id chpid); | |
45 | int chp_process_crw(int id, int available); | |
46 | void chp_remove_cmg_attr(struct channel_path *chp); | |
47 | int chp_add_cmg_attr(struct channel_path *chp); | |
48 | int chp_new(struct chp_id chpid); | |
e5854a58 PO |
49 | void chp_cfg_schedule(struct chp_id chpid, int configure); |
50 | void chp_cfg_cancel_deconfigure(struct chp_id chpid); | |
51 | int chp_info_get_status(struct chp_id chpid); | |
e6b6e10a PO |
52 | |
53 | #endif /* S390_CHP_H */ |