cregit-Linux how code gets into the kernel

Release 4.14 arch/s390/include/asm/appldata.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright IBM Corp. 2006
 *
 * Author(s): Melissa Howland <melissah@us.ibm.com>
 */

#ifndef _ASM_S390_APPLDATA_H

#define _ASM_S390_APPLDATA_H

#include <asm/diag.h>
#include <asm/io.h>


#define APPLDATA_START_INTERVAL_REC	0x80

#define APPLDATA_STOP_REC		0x81

#define APPLDATA_GEN_EVENT_REC		0x82

#define APPLDATA_START_CONFIG_REC	0x83

/*
 * Parameter list for DIAGNOSE X'DC'
 */

struct appldata_parameter_list {
	
u16 diag;
	
u8  function;
	
u8  parlist_length;
	
u32 unused01;
	
u16 reserved;
	
u16 buffer_length;
	
u32 unused02;
	
u64 product_id_addr;
	
u64 buffer_addr;
} __attribute__ ((packed));


struct appldata_product_id {
	
char prod_nr[7];	/* product number */
	
u16  prod_fn;		/* product function */
	
u8   record_nr; 	/* record number */
	
u16  version_nr;	/* version */
	
u16  release_nr;	/* release */
	
u16  mod_lvl;		/* modification level */
} __attribute__ ((packed));


static inline int appldata_asm(struct appldata_product_id *id, unsigned short fn, void *buffer, unsigned short length) { struct appldata_parameter_list parm_list; int ry; if (!MACHINE_IS_VM) return -EOPNOTSUPP; parm_list.diag = 0xdc; parm_list.function = fn; parm_list.parlist_length = sizeof(parm_list); parm_list.buffer_length = length; parm_list.product_id_addr = (unsigned long) id; parm_list.buffer_addr = virt_to_phys(buffer); diag_stat_inc(DIAG_STAT_X0DC); asm volatile( " diag %1,%0,0xdc" : "=d" (ry) : "d" (&parm_list), "m" (parm_list), "m" (*id) : "cc"); return ry; }

Contributors

PersonTokensPropCommitsCommitProp
Gerald Schaefer9092.78%125.00%
Martin Schwidefsky66.19%250.00%
Heiko Carstens11.03%125.00%
Total97100.00%4100.00%

#endif /* _ASM_S390_APPLDATA_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Gerald Schaefer19594.20%116.67%
Martin Schwidefsky94.35%233.33%
Heiko Carstens20.97%233.33%
Greg Kroah-Hartman10.48%116.67%
Total207100.00%6100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.