blob: 4a65803baa08aab2dfd2fb6dd5877110c5e44c55 [file] [log] [blame]
Sebastian Ottd2fc4392012-08-28 16:44:51 +02001#ifndef _ASM_S390_EADM_H
2#define _ASM_S390_EADM_H
3
4#include <linux/types.h>
5
6struct arqb {
7 u64 data;
8 u16 fmt:4;
9 u16:12;
10 u16 cmd_code;
11 u16:16;
12 u16 msb_count;
13 u32 reserved[12];
14} __packed;
15
16#define ARQB_CMD_MOVE 1
17
18struct arsb {
19 u16 fmt:4;
20 u32:28;
21 u8 ef;
22 u8:8;
23 u8 ecbi;
24 u8:8;
25 u8 fvf;
26 u16:16;
27 u8 eqc;
28 u32:32;
29 u64 fail_msb;
30 u64 fail_aidaw;
31 u64 fail_ms;
32 u64 fail_scm;
33 u32 reserved[4];
34} __packed;
35
36struct msb {
37 u8 fmt:4;
38 u8 oc:4;
39 u8 flags;
40 u16:12;
41 u16 bs:4;
42 u32 blk_count;
43 u64 data_addr;
44 u64 scm_addr;
45 u64:64;
46} __packed;
47
48struct aidaw {
49 u8 flags;
50 u32 :24;
51 u32 :32;
52 u64 data_addr;
53} __packed;
54
55#define MSB_OC_CLEAR 0
56#define MSB_OC_READ 1
57#define MSB_OC_WRITE 2
58#define MSB_OC_RELEASE 3
59
60#define MSB_FLAG_BNM 0x80
61#define MSB_FLAG_IDA 0x40
62
63#define MSB_BS_4K 0
64#define MSB_BS_1M 1
65
66#define AOB_NR_MSB 124
67
68struct aob {
69 struct arqb request;
70 struct arsb response;
71 struct msb msb[AOB_NR_MSB];
72} __packed __aligned(PAGE_SIZE);
73
74#endif /* _ASM_S390_EADM_H */