1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 21da177e4SLinus Torvalds /* 31da177e4SLinus Torvalds * Definitions and interface for Linux - z/VM Monitor Stream. 41da177e4SLinus Torvalds * 5d3ae942dSGerald Schaefer * Copyright IBM Corp. 2003, 2008 61da177e4SLinus Torvalds * 75b5dd21aSGerald Schaefer * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> 81da177e4SLinus Torvalds */ 91da177e4SLinus Torvalds 101da177e4SLinus Torvalds #define APPLDATA_MAX_REC_SIZE 4024 /* Maximum size of the */ 111da177e4SLinus Torvalds /* data buffer */ 121da177e4SLinus Torvalds #define APPLDATA_MAX_PROCS 100 131da177e4SLinus Torvalds 141da177e4SLinus Torvalds #define APPLDATA_PROC_NAME_LENGTH 16 /* Max. length of /proc name */ 151da177e4SLinus Torvalds 161da177e4SLinus Torvalds #define APPLDATA_RECORD_MEM_ID 0x01 /* IDs to identify the */ 171da177e4SLinus Torvalds #define APPLDATA_RECORD_OS_ID 0x02 /* individual records, */ 181da177e4SLinus Torvalds #define APPLDATA_RECORD_NET_SUM_ID 0x03 /* must be < 256 ! */ 191da177e4SLinus Torvalds #define APPLDATA_RECORD_PROC_ID 0x04 201da177e4SLinus Torvalds 21feceb63eSEric W. Biederman #define CTL_APPLDATA_TIMER 2121 /* sysctl IDs, must be unique */ 221da177e4SLinus Torvalds #define CTL_APPLDATA_INTERVAL 2122 231da177e4SLinus Torvalds #define CTL_APPLDATA_MEM 2123 241da177e4SLinus Torvalds #define CTL_APPLDATA_OS 2124 251da177e4SLinus Torvalds #define CTL_APPLDATA_NET_SUM 2125 261da177e4SLinus Torvalds #define CTL_APPLDATA_PROC 2126 271da177e4SLinus Torvalds 281da177e4SLinus Torvalds struct appldata_ops { 291da177e4SLinus Torvalds struct list_head list; 301da177e4SLinus Torvalds struct ctl_table_header *sysctl_header; 311da177e4SLinus Torvalds struct ctl_table *ctl_table; 321da177e4SLinus Torvalds int active; /* monitoring status */ 331da177e4SLinus Torvalds 341da177e4SLinus Torvalds /* fill in from here */ 351da177e4SLinus Torvalds char name[APPLDATA_PROC_NAME_LENGTH]; /* name of /proc fs node */ 361da177e4SLinus Torvalds unsigned char record_nr; /* Record Nr. for Product ID */ 371da177e4SLinus Torvalds void (*callback)(void *data); /* callback function */ 381da177e4SLinus Torvalds void *data; /* record data */ 391da177e4SLinus Torvalds unsigned int size; /* size of record */ 401da177e4SLinus Torvalds struct module *owner; /* THIS_MODULE */ 415b5dd21aSGerald Schaefer char mod_lvl[2]; /* modification level, EBCDIC */ 421da177e4SLinus Torvalds }; 431da177e4SLinus Torvalds 441da177e4SLinus Torvalds extern int appldata_register_ops(struct appldata_ops *ops); 451da177e4SLinus Torvalds extern void appldata_unregister_ops(struct appldata_ops *ops); 465b5dd21aSGerald Schaefer extern int appldata_diag(char record_nr, u16 function, unsigned long buffer, 475b5dd21aSGerald Schaefer u16 length, char *mod_lvl); 485b5dd21aSGerald Schaefer 49