Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/s390/include/asm/chsc.h
26493 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
/*
3
* Copyright IBM Corp. 2020
4
*
5
* Author(s): Alexandra Winter <[email protected]>
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
/* struct from linux/notifier.h */
15
struct notifier_block;
16
17
/**
18
* Operation codes for CHSC PNSO:
19
* PNSO_OC_NET_BRIDGE_INFO - only addresses that are visible to a bridgeport
20
* PNSO_OC_NET_ADDR_INFO - all addresses
21
*/
22
#define PNSO_OC_NET_BRIDGE_INFO 0
23
#define PNSO_OC_NET_ADDR_INFO 3
24
/**
25
* struct chsc_pnso_naid_l2 - network address information descriptor
26
* @nit: Network interface token
27
* @addr_lnid: network address and logical network id (VLAN ID)
28
*/
29
struct chsc_pnso_naid_l2 {
30
u64 nit;
31
struct { u8 mac[6]; u16 lnid; } addr_lnid;
32
} __packed;
33
34
struct chsc_pnso_resume_token {
35
u64 t1;
36
u64 t2;
37
} __packed;
38
39
struct chsc_pnso_naihdr {
40
struct chsc_pnso_resume_token resume_token;
41
u32:32;
42
u32 instance;
43
u32:24;
44
u8 naids;
45
u32 reserved[3];
46
} __packed;
47
48
struct chsc_pnso_area {
49
struct chsc_header request;
50
u8:2;
51
u8 m:1;
52
u8:5;
53
u8:2;
54
u8 ssid:2;
55
u8 fmt:4;
56
u16 sch;
57
u8:8;
58
u8 cssid;
59
u16:16;
60
u8 oc;
61
u32:24;
62
struct chsc_pnso_resume_token resume_token;
63
u32 n:1;
64
u32:31;
65
u32 reserved[3];
66
struct chsc_header response;
67
u32:32;
68
struct chsc_pnso_naihdr naihdr;
69
struct chsc_pnso_naid_l2 entries[];
70
} __packed __aligned(PAGE_SIZE);
71
72
/*
73
* notifier interface - registered notifiers gets called on
74
* the following events:
75
* - ap config changed (CHSC_NOTIFY_AP_CFG)
76
*/
77
enum chsc_notify_type {
78
CHSC_NOTIFY_AP_CFG = 3,
79
};
80
81
int chsc_notifier_register(struct notifier_block *nb);
82
int chsc_notifier_unregister(struct notifier_block *nb);
83
84
#endif /* _ASM_S390_CHSC_H */
85
86