1 #ifndef _PROJENT_RESCTL_H 2 #define _PROJENT_RESCTL_H 3 4 5 /* 6 * Put includes here if needed to be. 7 */ 8 9 #ifdef __cplusplus 10 extern "C" { 11 #endif 12 13 14 #define RESCTL_TYPE_UNKWN 0x00 15 #define RESCTL_TYPE_BYTES 0x01 16 #define RESCTL_TYPE_SCNDS 0x02 17 #define RESCTL_TYPE_COUNT 0x03 18 19 #define RESCTL_PRIV_PRIVE 0x01 20 #define RESCTL_PRIV_PRIVD 0x02 21 #define RESCTL_PRIV_BASIC 0x04 22 #define RESCTL_PRIV_ALLPR 0x07 23 24 #define RESCTL_ACTN_NONE 0x01 25 #define RESCTL_ACTN_DENY 0x02 26 #define RESCTL_ACTN_SIGN 0x04 27 #define RESCTL_ACTN_ALLA 0x07 28 29 #define RESCTL_SIG_ABRT 0x01 30 #define RESCTL_SIG_XRES 0x02 31 #define RESCTL_SIG_HUP 0x04 32 #define RESCTL_SIG_STOP 0x08 33 #define RESCTL_SIG_TERM 0x10 34 #define RESCTL_SIG_KILL 0x20 35 #define RESCTL_SIG_XFSZ 0x40 36 #define RESCTL_SIG_XCPU 0x80 37 38 #define RESCTL_SIG_CMN 0x3f 39 #define RESCTL_SIG_ALL 0xff 40 41 typedef struct sig_s { 42 char sig[6]; 43 int mask; 44 } sig_t; 45 46 #define SIGS_CNT 16 47 extern sig_t sigs[SIGS_CNT]; 48 49 typedef struct resctlrule_s { 50 uint64_t resctl_max; 51 uint8_t resctl_type; 52 uint8_t resctl_privs; 53 uint8_t resctl_action; 54 uint8_t resctl_sigs; 55 } resctlrule_t; 56 57 typedef struct resctl_info_s { 58 unsigned long long value; 59 int flags; 60 } resctl_info_t; 61 62 extern int resctl_pool_exist(char *); 63 extern int resctl_get_info(char *, resctl_info_t *); 64 extern void resctl_get_rule(resctl_info_t *, resctlrule_t *); 65 66 #ifdef __cplusplus 67 } 68 #endif 69 #endif /* _PROJENT_RESCTL_H */