| /* SPDX-License-Identifier: GPL-2.0 */ | 
 | /* | 
 |  * Copyright IBM Corp. 2020 | 
 |  * | 
 |  * Author(s): Alexandra Winter <wintera@linux.ibm.com> | 
 |  * | 
 |  * Interface for Channel Subsystem Call | 
 |  */ | 
 | #ifndef _ASM_S390_CHSC_H | 
 | #define _ASM_S390_CHSC_H | 
 |  | 
 | #include <uapi/asm/chsc.h> | 
 |  | 
 | /** | 
 |  * Operation codes for CHSC PNSO: | 
 |  *    PNSO_OC_NET_BRIDGE_INFO - only addresses that are visible to a bridgeport | 
 |  *    PNSO_OC_NET_ADDR_INFO   - all addresses | 
 |  */ | 
 | #define PNSO_OC_NET_BRIDGE_INFO		0 | 
 | #define PNSO_OC_NET_ADDR_INFO		3 | 
 | /** | 
 |  * struct chsc_pnso_naid_l2 - network address information descriptor | 
 |  * @nit:  Network interface token | 
 |  * @addr_lnid: network address and logical network id (VLAN ID) | 
 |  */ | 
 | struct chsc_pnso_naid_l2 { | 
 | 	u64 nit; | 
 | 	struct { u8 mac[6]; u16 lnid; } addr_lnid; | 
 | } __packed; | 
 |  | 
 | struct chsc_pnso_resume_token { | 
 | 	u64 t1; | 
 | 	u64 t2; | 
 | } __packed; | 
 |  | 
 | struct chsc_pnso_naihdr { | 
 | 	struct chsc_pnso_resume_token resume_token; | 
 | 	u32:32; | 
 | 	u32 instance; | 
 | 	u32:24; | 
 | 	u8 naids; | 
 | 	u32 reserved[3]; | 
 | } __packed; | 
 |  | 
 | struct chsc_pnso_area { | 
 | 	struct chsc_header request; | 
 | 	u8:2; | 
 | 	u8 m:1; | 
 | 	u8:5; | 
 | 	u8:2; | 
 | 	u8 ssid:2; | 
 | 	u8 fmt:4; | 
 | 	u16 sch; | 
 | 	u8:8; | 
 | 	u8 cssid; | 
 | 	u16:16; | 
 | 	u8 oc; | 
 | 	u32:24; | 
 | 	struct chsc_pnso_resume_token resume_token; | 
 | 	u32 n:1; | 
 | 	u32:31; | 
 | 	u32 reserved[3]; | 
 | 	struct chsc_header response; | 
 | 	u32:32; | 
 | 	struct chsc_pnso_naihdr naihdr; | 
 | 	struct chsc_pnso_naid_l2 entries[]; | 
 | } __packed __aligned(PAGE_SIZE); | 
 |  | 
 | #endif /* _ASM_S390_CHSC_H */ |