VSF Documented
resource.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_SYS_RESOURCE_H__
2#define __VSF_LINUX_SYS_RESOURCE_H__
3
5
6#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
7# include "./types.h"
8# include "./time.h"
9#else
10# include <sys/types.h>
11# include <sys/time.h>
12#endif
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18#define RLIMIT_CPU 0
19#define RLIMIT_FSIZE 1
20#define RLIMIT_DATA 2
21#define RLIMIT_STACK 3
22#define RLIMIT_CORE 4
23
24#define RLIMIT_RSS 5
25#define RLIMIT_NPROC 6
26#define RLIMIT_NOFILE 7
27#define RLIMIT_MEMLOCK 8
28#define RLIMIT_LOCKS 10
29#define RLIMIT_SIGPENDING 11
30#define RLIMIT_MSGQUEUE 12
31#define RLIMIT_NICE 13
32#define RLIMIT_RTPRIO 14
33#define RLIMIT_RTTIME 15
34#define RLIM_NLIMITS 16
35
36#define RLIM_INFINITY (~0UL)
37
38enum {
42};
43struct rusage {
46};
47
48static inline int getrusage(int who, struct rusage *usage)
49{
50 return 0;
51}
52
53typedef unsigned long rlim_t;
54struct rlimit {
57};
58
59static inline int getrlimit(int resource, struct rlimit *rlptr)
60{
61 if (rlptr != NULL) {
62 rlptr->rlim_cur = 100;
63 rlptr->rlim_max = 100;
64 }
65 return 0;
66}
67
68static inline int setrlimit(int resource, struct rlimit *rlptr)
69{
70 return 0;
71}
72
73#define PRIO_PROCESS 0
74#define PRIO_PGRP 1
75#define PRIO_USER 2
76
77#if VSF_LINUX_APPLET_USE_SYS_RESOURCE == ENABLED
80
84# ifndef __VSF_APPLET__
86# endif
87#endif
88
89#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_SYS_RESOURCE_LIB__))\
90 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_SYS_RESOURCE == ENABLED
91
92#ifndef VSF_LINUX_APPLET_SYS_RESOURCE_VPLT
93# if VSF_LINUX_USE_APPLET == ENABLED
94# define VSF_LINUX_APPLET_SYS_RESOURCE_VPLT \
95 ((vsf_linux_sys_resource_vplt_t *)(VSF_LINUX_APPLET_VPLT->sys_resource_vplt))
96# else
97# define VSF_LINUX_APPLET_SYS_RESOURCE_VPLT \
98 ((vsf_linux_sys_resource_vplt_t *)vsf_vplt((void *)0))
99# endif
100#endif
101
102#define VSF_LINUX_APPLET_SYS_RESOURCE_ENTRY(__NAME) \
103 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_SYS_RESOURCE_VPLT, __NAME)
104#define VSF_LINUX_APPLET_SYS_RESOURCE_IMP(...) \
105 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_SYS_RESOURCE_VPLT, __VA_ARGS__)
106
107VSF_LINUX_APPLET_SYS_RESOURCE_IMP(getpriority, int, int which, id_t who) {
109 return VSF_LINUX_APPLET_SYS_RESOURCE_ENTRY(getpriority)(which, who);
110}
111VSF_LINUX_APPLET_SYS_RESOURCE_IMP(setpriority, int, int which, id_t who, int prio) {
113 return VSF_LINUX_APPLET_SYS_RESOURCE_ENTRY(setpriority)(which, who, prio);
114}
115
116#else // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_SYS_RESOURCE
117
118int getpriority(int which, id_t who);
119int setpriority(int which, id_t who, int prio);
120
121#endif
122
123#ifdef __cplusplus
124}
125#endif
126
127#endif
#define NULL
Definition stddef.h:52
int id_t
Definition types.h:86
@ RUSAGE_CHILDREN
Definition resource.h:40
@ RUSAGE_SELF
Definition resource.h:39
@ RUSAGE_THREAD
Definition resource.h:41
unsigned long rlim_t
Definition resource.h:53
int setpriority(int which, id_t who, int prio)
Definition vsf_linux.c:4674
__VSF_VPLT_DECORATOR__ vsf_linux_sys_resource_vplt_t vsf_linux_sys_resource_vplt
Definition vsf_linux.c:4830
int getpriority(int which, id_t who)
Definition vsf_linux.c:4669
Definition resource.h:54
rlim_t rlim_max
Definition resource.h:56
rlim_t rlim_cur
Definition resource.h:55
Definition resource.h:43
struct timeval ru_utime
Definition resource.h:44
struct timeval ru_stime
Definition resource.h:45
Definition time.h:42
Definition resource.h:78
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getpriority)
vsf_vplt_info_t info
Definition resource.h:79
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(setpriority)
Definition vsf_cfg.h:95
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165
which(union { inherit(vsf_msgt_container_t) vsf_tgui_control_t };vsf_tgui_v_container_t) implement_ex(struct
Definition vsf_tgui_control.h:540