18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Definitions and interface for Linux - z/VM Monitor Stream. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright IBM Corp. 2003, 2008 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#define APPLDATA_MAX_REC_SIZE 4024 /* Maximum size of the */ 118c2ecf20Sopenharmony_ci /* data buffer */ 128c2ecf20Sopenharmony_ci#define APPLDATA_MAX_PROCS 100 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#define APPLDATA_PROC_NAME_LENGTH 16 /* Max. length of /proc name */ 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci#define APPLDATA_RECORD_MEM_ID 0x01 /* IDs to identify the */ 178c2ecf20Sopenharmony_ci#define APPLDATA_RECORD_OS_ID 0x02 /* individual records, */ 188c2ecf20Sopenharmony_ci#define APPLDATA_RECORD_NET_SUM_ID 0x03 /* must be < 256 ! */ 198c2ecf20Sopenharmony_ci#define APPLDATA_RECORD_PROC_ID 0x04 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci#define CTL_APPLDATA_TIMER 2121 /* sysctl IDs, must be unique */ 228c2ecf20Sopenharmony_ci#define CTL_APPLDATA_INTERVAL 2122 238c2ecf20Sopenharmony_ci#define CTL_APPLDATA_MEM 2123 248c2ecf20Sopenharmony_ci#define CTL_APPLDATA_OS 2124 258c2ecf20Sopenharmony_ci#define CTL_APPLDATA_NET_SUM 2125 268c2ecf20Sopenharmony_ci#define CTL_APPLDATA_PROC 2126 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_cistruct appldata_ops { 298c2ecf20Sopenharmony_ci struct list_head list; 308c2ecf20Sopenharmony_ci struct ctl_table_header *sysctl_header; 318c2ecf20Sopenharmony_ci struct ctl_table *ctl_table; 328c2ecf20Sopenharmony_ci int active; /* monitoring status */ 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci /* fill in from here */ 358c2ecf20Sopenharmony_ci char name[APPLDATA_PROC_NAME_LENGTH]; /* name of /proc fs node */ 368c2ecf20Sopenharmony_ci unsigned char record_nr; /* Record Nr. for Product ID */ 378c2ecf20Sopenharmony_ci void (*callback)(void *data); /* callback function */ 388c2ecf20Sopenharmony_ci void *data; /* record data */ 398c2ecf20Sopenharmony_ci unsigned int size; /* size of record */ 408c2ecf20Sopenharmony_ci struct module *owner; /* THIS_MODULE */ 418c2ecf20Sopenharmony_ci char mod_lvl[2]; /* modification level, EBCDIC */ 428c2ecf20Sopenharmony_ci}; 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciextern int appldata_register_ops(struct appldata_ops *ops); 458c2ecf20Sopenharmony_ciextern void appldata_unregister_ops(struct appldata_ops *ops); 468c2ecf20Sopenharmony_ciextern int appldata_diag(char record_nr, u16 function, unsigned long buffer, 478c2ecf20Sopenharmony_ci u16 length, char *mod_lvl); 488c2ecf20Sopenharmony_ci 49