1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright IBM Corp. 2006
5 * Author(s): Melissa Howland <melissah@us.ibm.com>
8 #ifndef _ASM_S390_APPLDATA_H
9 #define _ASM_S390_APPLDATA_H
14 #define APPLDATA_START_INTERVAL_REC 0x80
15 #define APPLDATA_STOP_REC 0x81
16 #define APPLDATA_GEN_EVENT_REC 0x82
17 #define APPLDATA_START_CONFIG_REC 0x83
20 * Parameter list for DIAGNOSE X'DC'
22 struct appldata_parameter_list
{
32 } __attribute__ ((packed
));
34 struct appldata_product_id
{
35 char prod_nr
[7]; /* product number */
36 u16 prod_fn
; /* product function */
37 u8 record_nr
; /* record number */
38 u16 version_nr
; /* version */
39 u16 release_nr
; /* release */
40 u16 mod_lvl
; /* modification level */
41 } __attribute__ ((packed
));
44 static inline int appldata_asm(struct appldata_parameter_list
*parm_list
,
45 struct appldata_product_id
*id
,
46 unsigned short fn
, void *buffer
,
47 unsigned short length
)
53 parm_list
->diag
= 0xdc;
54 parm_list
->function
= fn
;
55 parm_list
->parlist_length
= sizeof(*parm_list
);
56 parm_list
->buffer_length
= length
;
57 parm_list
->product_id_addr
= (unsigned long) id
;
58 parm_list
->buffer_addr
= virt_to_phys(buffer
);
59 diag_stat_inc(DIAG_STAT_X0DC
);
63 : "d" (parm_list
), "m" (*parm_list
), "m" (*id
)
68 #endif /* _ASM_S390_APPLDATA_H */