staging: rtl8192u: remove redundant assignment to pointer crypt
[linux/fpc-iii.git] / arch / s390 / include / uapi / asm / ipl.h
blob451ba7d08905c0a4d1fa91359e8ac863c228e520
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _ASM_S390_UAPI_IPL_H
3 #define _ASM_S390_UAPI_IPL_H
5 #include <linux/types.h>
7 /* IPL Parameter List header */
8 struct ipl_pl_hdr {
9 __u32 len;
10 __u8 flags;
11 __u8 reserved1[2];
12 __u8 version;
13 } __packed;
15 #define IPL_PL_FLAG_IPLPS 0x80
16 #define IPL_PL_FLAG_SIPL 0x40
17 #define IPL_PL_FLAG_IPLSR 0x20
19 /* IPL Parameter Block header */
20 struct ipl_pb_hdr {
21 __u32 len;
22 __u8 pbt;
23 } __packed;
25 /* IPL Parameter Block types */
26 enum ipl_pbt {
27 IPL_PBT_FCP = 0,
28 IPL_PBT_SCP_DATA = 1,
29 IPL_PBT_CCW = 2,
32 /* IPL Parameter Block 0 with common fields */
33 struct ipl_pb0_common {
34 __u32 len;
35 __u8 pbt;
36 __u8 flags;
37 __u8 reserved1[2];
38 __u8 loadparm[8];
39 __u8 reserved2[84];
40 } __packed;
42 #define IPL_PB0_FLAG_LOADPARM 0x80
44 /* IPL Parameter Block 0 for FCP */
45 struct ipl_pb0_fcp {
46 __u32 len;
47 __u8 pbt;
48 __u8 reserved1[3];
49 __u8 loadparm[8];
50 __u8 reserved2[304];
51 __u8 opt;
52 __u8 reserved3[3];
53 __u8 cssid;
54 __u8 reserved4[1];
55 __u16 devno;
56 __u8 reserved5[4];
57 __u64 wwpn;
58 __u64 lun;
59 __u32 bootprog;
60 __u8 reserved6[12];
61 __u64 br_lba;
62 __u32 scp_data_len;
63 __u8 reserved7[260];
64 __u8 scp_data[];
65 } __packed;
67 #define IPL_PB0_FCP_OPT_IPL 0x10
68 #define IPL_PB0_FCP_OPT_DUMP 0x20
70 /* IPL Parameter Block 0 for CCW */
71 struct ipl_pb0_ccw {
72 __u32 len;
73 __u8 pbt;
74 __u8 flags;
75 __u8 reserved1[2];
76 __u8 loadparm[8];
77 __u8 reserved2[84];
78 __u16 reserved3 : 13;
79 __u8 ssid : 3;
80 __u16 devno;
81 __u8 vm_flags;
82 __u8 reserved4[3];
83 __u32 vm_parm_len;
84 __u8 nss_name[8];
85 __u8 vm_parm[64];
86 __u8 reserved5[8];
87 } __packed;
89 #define IPL_PB0_CCW_VM_FLAG_NSS 0x80
90 #define IPL_PB0_CCW_VM_FLAG_VP 0x40
92 /* IPL Parameter Block 1 for additional SCP data */
93 struct ipl_pb1_scp_data {
94 __u32 len;
95 __u8 pbt;
96 __u8 scp_data[];
97 } __packed;
99 /* IPL Report List header */
100 struct ipl_rl_hdr {
101 __u32 len;
102 __u8 flags;
103 __u8 reserved1[2];
104 __u8 version;
105 __u8 reserved2[8];
106 } __packed;
108 /* IPL Report Block header */
109 struct ipl_rb_hdr {
110 __u32 len;
111 __u8 rbt;
112 __u8 reserved1[11];
113 } __packed;
115 /* IPL Report Block types */
116 enum ipl_rbt {
117 IPL_RBT_CERTIFICATES = 1,
118 IPL_RBT_COMPONENTS = 2,
121 /* IPL Report Block for the certificate list */
122 struct ipl_rb_certificate_entry {
123 __u64 addr;
124 __u64 len;
125 } __packed;
127 struct ipl_rb_certificates {
128 __u32 len;
129 __u8 rbt;
130 __u8 reserved1[11];
131 struct ipl_rb_certificate_entry entries[];
132 } __packed;
134 /* IPL Report Block for the component list */
135 struct ipl_rb_component_entry {
136 __u64 addr;
137 __u64 len;
138 __u8 flags;
139 __u8 reserved1[5];
140 __u16 certificate_index;
141 __u8 reserved2[8];
144 #define IPL_RB_COMPONENT_FLAG_SIGNED 0x80
145 #define IPL_RB_COMPONENT_FLAG_VERIFIED 0x40
147 struct ipl_rb_components {
148 __u32 len;
149 __u8 rbt;
150 __u8 reserved1[11];
151 struct ipl_rb_component_entry entries[];
152 } __packed;
154 #endif