xref: /openbmc/linux/arch/s390/include/asm/chsc.h (revision e7bae9bb)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright IBM Corp. 2020
4  *
5  * Author(s): Alexandra Winter <wintera@linux.ibm.com>
6  *
7  * Interface for Channel Subsystem Call
8  */
9 #ifndef _ASM_S390_CHSC_H
10 #define _ASM_S390_CHSC_H
11 
12 #include <uapi/asm/chsc.h>
13 
14 /**
15  * struct chsc_pnso_naid_l2 - network address information descriptor
16  * @nit:  Network interface token
17  * @addr_lnid: network address and logical network id (VLAN ID)
18  */
19 struct chsc_pnso_naid_l2 {
20 	u64 nit;
21 	struct { u8 mac[6]; u16 lnid; } addr_lnid;
22 } __packed;
23 
24 struct chsc_pnso_resume_token {
25 	u64 t1;
26 	u64 t2;
27 } __packed;
28 
29 struct chsc_pnso_naihdr {
30 	struct chsc_pnso_resume_token resume_token;
31 	u32:32;
32 	u32 instance;
33 	u32:24;
34 	u8 naids;
35 	u32 reserved[3];
36 } __packed;
37 
38 struct chsc_pnso_area {
39 	struct chsc_header request;
40 	u8:2;
41 	u8 m:1;
42 	u8:5;
43 	u8:2;
44 	u8 ssid:2;
45 	u8 fmt:4;
46 	u16 sch;
47 	u8:8;
48 	u8 cssid;
49 	u16:16;
50 	u8 oc;
51 	u32:24;
52 	struct chsc_pnso_resume_token resume_token;
53 	u32 n:1;
54 	u32:31;
55 	u32 reserved[3];
56 	struct chsc_header response;
57 	u32:32;
58 	struct chsc_pnso_naihdr naihdr;
59 	struct chsc_pnso_naid_l2 entries[0];
60 } __packed __aligned(PAGE_SIZE);
61 
62 #endif /* _ASM_S390_CHSC_H */
63