s390/runtime instrumentation: provide uapi header file

"Linux Kernel Mailing List" <[email protected]>
Newsgroups gmane.linux.kernel.commits.head
Message-ID <[email protected]>
Web:        https://git.kernel.org/torvalds/c/df2f815a7df7edb5335a3bdeee6a8f9f6f9c35c4
Commit:     df2f815a7df7edb5335a3bdeee6a8f9f6f9c35c4
Parent:     5260b0f50cf371d7a0920fd163571adfd80e2109
Refname:    refs/heads/master
Author:     Heiko Carstens <[email protected]>
AuthorDate: Mon Jan 22 10:26:20 2018 +0100
Committer:  Martin Schwidefsky <[email protected]>
CommitDate: Fri Feb 2 10:47:15 2018 +0100

    s390/runtime instrumentation: provide uapi header file
    
    The man page for the s390_runtime_instr() system call refers to a
    header file that was never exported. Therefore it's time to finally
    provide the header file, and move large parts of the runtime
    instrumentation header file to a new uapi header file.
    
    Reported-by: Eugene Syromyatnikov <[email protected]>
    Signed-off-by: Heiko Carstens <[email protected]>
    Signed-off-by: Martin Schwidefsky <[email protected]>
---
 arch/s390/include/asm/runtime_instr.h            | 67 +-----------------------
 arch/s390/include/{ => uapi}/asm/runtime_instr.h | 31 +++--------
 2 files changed, 7 insertions(+), 91 deletions(-)

diff --git a/arch/s390/include/asm/runtime_instr.h b/arch/s390/include/asm/runtime_instr.h
index 6b1540337ed6..0e1605538cd4 100644
--- a/arch/s390/include/asm/runtime_instr.h
+++ b/arch/s390/include/asm/runtime_instr.h
@@ -2,75 +2,10 @@
 #ifndef _RUNTIME_INSTR_H
 #define _RUNTIME_INSTR_H
 
-#define S390_RUNTIME_INSTR_START	0x1
-#define S390_RUNTIME_INSTR_STOP		0x2
-
-struct runtime_instr_cb {
-	__u64 rca;
-	__u64 roa;
-	__u64 rla;
-
-	__u32 v			: 1;
-	__u32 s			: 1;
-	__u32 k			: 1;
-	__u32 h			: 1;
-	__u32 a			: 1;
-	__u32 reserved1		: 3;
-	__u32 ps		: 1;
-	__u32 qs		: 1;
-	__u32 pc		: 1;
-	__u32 qc		: 1;
-	__u32 reserved2		: 1;
-	__u32 g			: 1;
-	__u32 u			: 1;
-	__u32 l			: 1;
-	__u32 key		: 4;
-	__u32 reserved3		: 8;
-	__u32 t			: 1;
-	__u32 rgs		: 3;
-
-	__u32 m			: 4;
-	__u32 n			: 1;
-	__u32 mae		: 1;
-	__u32 reserved4		: 2;
-	__u32 c			: 1;
-	__u32 r			: 1;
-	__u32 b			: 1;
-	__u32 j			: 1;
-	__u32 e			: 1;
-	__u32 x			: 1;
-	__u32 reserved5		: 2;
-	__u32 bpxn		: 1;
-	__u32 bpxt		: 1;
-	__u32 bpti		: 1;
-	__u32 bpni		: 1;
-	__u32 reserved6		: 2;
-
-	__u32 d			: 1;
-	__u32 f			: 1;
-	__u32 ic		: 4;
-	__u32 dc		: 4;
-
-	__u64 reserved7;
-	__u64 sf;
-	__u64 rsic;
-	__u64 reserved8;
-} __packed __aligned(8);
+#include <uapi/asm/runtime_instr.h>
 
 extern struct runtime_instr_cb runtime_instr_empty_cb;
 
-static inline void load_runtime_instr_cb(struct runtime_instr_cb *cb)
-{
-	asm volatile(".insn	rsy,0xeb0000000060,0,0,%0"	/* LRIC */
-		: : "Q" (*cb));
-}
-
-static inline void store_runtime_instr_cb(struct runtime_instr_cb *cb)
-{
-	asm volatile(".insn	rsy,0xeb0000000061,0,0,%0"	/* STRIC */
-		: "=Q" (*cb) : : "cc");
-}
-
 static inline void save_ri_cb(struct runtime_instr_cb *cb_prev)
 {
 	if (cb_prev)
diff --git a/arch/s390/include/asm/runtime_instr.h b/arch/s390/include/uapi/asm/runtime_instr.h
similarity index 66%
copy from arch/s390/include/asm/runtime_instr.h
copy to arch/s390/include/uapi/asm/runtime_instr.h
index 6b1540337ed6..45c9ec984e6b 100644
--- a/arch/s390/include/asm/runtime_instr.h
+++ b/arch/s390/include/uapi/asm/runtime_instr.h
@@ -1,6 +1,8 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _RUNTIME_INSTR_H
-#define _RUNTIME_INSTR_H
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _S390_UAPI_RUNTIME_INSTR_H
+#define _S390_UAPI_RUNTIME_INSTR_H
+
+#include <linux/types.h>
 
 #define S390_RUNTIME_INSTR_START	0x1
 #define S390_RUNTIME_INSTR_STOP		0x2
@@ -57,8 +59,6 @@ struct runtime_instr_cb {
 	__u64 reserved8;
 } __packed __aligned(8);
 
-extern struct runtime_instr_cb runtime_instr_empty_cb;
-
 static inline void load_runtime_instr_cb(struct runtime_instr_cb *cb)
 {
 	asm volatile(".insn	rsy,0xeb0000000060,0,0,%0"	/* LRIC */
@@ -71,23 +71,4 @@ static inline void store_runtime_instr_cb(struct runtime_instr_cb *cb)
 		: "=Q" (*cb) : : "cc");
 }
 
-static inline void save_ri_cb(struct runtime_instr_cb *cb_prev)
-{
-	if (cb_prev)
-		store_runtime_instr_cb(cb_prev);
-}
-
-static inline void restore_ri_cb(struct runtime_instr_cb *cb_next,
-				 struct runtime_instr_cb *cb_prev)
-{
-	if (cb_next)
-		load_runtime_instr_cb(cb_next);
-	else if (cb_prev)
-		load_runtime_instr_cb(&runtime_instr_empty_cb);
-}
-
-struct task_struct;
-
-void runtime_instr_release(struct task_struct *tsk);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.