staging: rtl8192u: remove redundant assignment to pointer crypt
[linux/fpc-iii.git] / arch / s390 / include / uapi / asm / guarded_storage.h
blob666af1c33b59370379a64dc5130c65d1284daeed
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _GUARDED_STORAGE_H
3 #define _GUARDED_STORAGE_H
5 #include <linux/types.h>
7 struct gs_cb {
8 __u64 reserved;
9 __u64 gsd;
10 __u64 gssm;
11 __u64 gs_epl_a;
14 struct gs_epl {
15 __u8 pad1;
16 union {
17 __u8 gs_eam;
18 struct {
19 __u8 : 6;
20 __u8 e : 1;
21 __u8 b : 1;
24 union {
25 __u8 gs_eci;
26 struct {
27 __u8 tx : 1;
28 __u8 cx : 1;
29 __u8 : 5;
30 __u8 in : 1;
33 union {
34 __u8 gs_eai;
35 struct {
36 __u8 : 1;
37 __u8 t : 1;
38 __u8 as : 2;
39 __u8 ar : 4;
42 __u32 pad2;
43 __u64 gs_eha;
44 __u64 gs_eia;
45 __u64 gs_eoa;
46 __u64 gs_eir;
47 __u64 gs_era;
50 #define GS_ENABLE 0
51 #define GS_DISABLE 1
52 #define GS_SET_BC_CB 2
53 #define GS_CLEAR_BC_CB 3
54 #define GS_BROADCAST 4
56 static inline void load_gs_cb(struct gs_cb *gs_cb)
58 asm volatile(".insn rxy,0xe3000000004d,0,%0" : : "Q" (*gs_cb));
61 static inline void store_gs_cb(struct gs_cb *gs_cb)
63 asm volatile(".insn rxy,0xe30000000049,0,%0" : : "Q" (*gs_cb));
66 static inline void save_gs_cb(struct gs_cb *gs_cb)
68 if (gs_cb)
69 store_gs_cb(gs_cb);
72 static inline void restore_gs_cb(struct gs_cb *gs_cb)
74 if (gs_cb)
75 load_gs_cb(gs_cb);
78 #endif /* _GUARDED_STORAGE_H */