162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Definitions and interface for Linux - z/VM Monitor Stream. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright IBM Corp. 2003, 2008 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#define APPLDATA_MAX_REC_SIZE 4024 /* Maximum size of the */ 1162306a36Sopenharmony_ci /* data buffer */ 1262306a36Sopenharmony_ci#define APPLDATA_MAX_PROCS 100 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#define APPLDATA_PROC_NAME_LENGTH 16 /* Max. length of /proc name */ 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci#define APPLDATA_RECORD_MEM_ID 0x01 /* IDs to identify the */ 1762306a36Sopenharmony_ci#define APPLDATA_RECORD_OS_ID 0x02 /* individual records, */ 1862306a36Sopenharmony_ci#define APPLDATA_RECORD_NET_SUM_ID 0x03 /* must be < 256 ! */ 1962306a36Sopenharmony_ci#define APPLDATA_RECORD_PROC_ID 0x04 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci#define CTL_APPLDATA_TIMER 2121 /* sysctl IDs, must be unique */ 2262306a36Sopenharmony_ci#define CTL_APPLDATA_INTERVAL 2122 2362306a36Sopenharmony_ci#define CTL_APPLDATA_MEM 2123 2462306a36Sopenharmony_ci#define CTL_APPLDATA_OS 2124 2562306a36Sopenharmony_ci#define CTL_APPLDATA_NET_SUM 2125 2662306a36Sopenharmony_ci#define CTL_APPLDATA_PROC 2126 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_cistruct appldata_ops { 2962306a36Sopenharmony_ci struct list_head list; 3062306a36Sopenharmony_ci struct ctl_table_header *sysctl_header; 3162306a36Sopenharmony_ci struct ctl_table *ctl_table; 3262306a36Sopenharmony_ci int active; /* monitoring status */ 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci /* fill in from here */ 3562306a36Sopenharmony_ci char name[APPLDATA_PROC_NAME_LENGTH]; /* name of /proc fs node */ 3662306a36Sopenharmony_ci unsigned char record_nr; /* Record Nr. for Product ID */ 3762306a36Sopenharmony_ci void (*callback)(void *data); /* callback function */ 3862306a36Sopenharmony_ci void *data; /* record data */ 3962306a36Sopenharmony_ci unsigned int size; /* size of record */ 4062306a36Sopenharmony_ci struct module *owner; /* THIS_MODULE */ 4162306a36Sopenharmony_ci char mod_lvl[2]; /* modification level, EBCDIC */ 4262306a36Sopenharmony_ci}; 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciextern int appldata_register_ops(struct appldata_ops *ops); 4562306a36Sopenharmony_ciextern void appldata_unregister_ops(struct appldata_ops *ops); 4662306a36Sopenharmony_ciextern int appldata_diag(char record_nr, u16 function, unsigned long buffer, 4762306a36Sopenharmony_ci u16 length, char *mod_lvl); 4862306a36Sopenharmony_ci 49