18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Structures for hypfs interface 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright IBM Corp. 2013 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Author: Martin Schwidefsky <schwidefsky@de.ibm.com> 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#ifndef _ASM_HYPFS_H 118c2ecf20Sopenharmony_ci#define _ASM_HYPFS_H 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci#include <linux/types.h> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci/* 168c2ecf20Sopenharmony_ci * IOCTL for binary interface /sys/kernel/debug/diag_304 178c2ecf20Sopenharmony_ci */ 188c2ecf20Sopenharmony_cistruct hypfs_diag304 { 198c2ecf20Sopenharmony_ci __u32 args[2]; 208c2ecf20Sopenharmony_ci __u64 data; 218c2ecf20Sopenharmony_ci __u64 rc; 228c2ecf20Sopenharmony_ci} __attribute__((packed)); 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci#define HYPFS_IOCTL_MAGIC 0x10 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci#define HYPFS_DIAG304 \ 278c2ecf20Sopenharmony_ci _IOWR(HYPFS_IOCTL_MAGIC, 0x20, struct hypfs_diag304) 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci/* 308c2ecf20Sopenharmony_ci * Structures for binary interface /sys/kernel/debug/diag_0c 318c2ecf20Sopenharmony_ci */ 328c2ecf20Sopenharmony_cistruct hypfs_diag0c_hdr { 338c2ecf20Sopenharmony_ci __u64 len; /* Length of diag0c buffer without header */ 348c2ecf20Sopenharmony_ci __u16 version; /* Version of header */ 358c2ecf20Sopenharmony_ci char reserved1[6]; /* Reserved */ 368c2ecf20Sopenharmony_ci char tod_ext[16]; /* TOD clock for diag0c */ 378c2ecf20Sopenharmony_ci __u64 count; /* Number of entries (CPUs) in diag0c array */ 388c2ecf20Sopenharmony_ci char reserved2[24]; /* Reserved */ 398c2ecf20Sopenharmony_ci}; 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_cistruct hypfs_diag0c_entry { 428c2ecf20Sopenharmony_ci char date[8]; /* MM/DD/YY in EBCDIC */ 438c2ecf20Sopenharmony_ci char time[8]; /* HH:MM:SS in EBCDIC */ 448c2ecf20Sopenharmony_ci __u64 virtcpu; /* Virtual time consumed by the virt CPU (us) */ 458c2ecf20Sopenharmony_ci __u64 totalproc; /* Total of virtual and simulation time (us) */ 468c2ecf20Sopenharmony_ci __u32 cpu; /* Linux logical CPU number */ 478c2ecf20Sopenharmony_ci __u32 reserved; /* Align to 8 byte */ 488c2ecf20Sopenharmony_ci}; 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_cistruct hypfs_diag0c_data { 518c2ecf20Sopenharmony_ci struct hypfs_diag0c_hdr hdr; /* 64 byte header */ 528c2ecf20Sopenharmony_ci struct hypfs_diag0c_entry entry[]; /* diag0c entry array */ 538c2ecf20Sopenharmony_ci}; 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci#endif 56