xref: /aosp_15_r20/external/musl/src/legacy/ulimit.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include <sys/resource.h>
2*c9945492SAndroid Build Coastguard Worker #include <ulimit.h>
3*c9945492SAndroid Build Coastguard Worker #include <stdarg.h>
4*c9945492SAndroid Build Coastguard Worker 
ulimit(int cmd,...)5*c9945492SAndroid Build Coastguard Worker long ulimit(int cmd, ...)
6*c9945492SAndroid Build Coastguard Worker {
7*c9945492SAndroid Build Coastguard Worker 	struct rlimit rl;
8*c9945492SAndroid Build Coastguard Worker 	getrlimit(RLIMIT_FSIZE, &rl);
9*c9945492SAndroid Build Coastguard Worker 	if (cmd == UL_SETFSIZE) {
10*c9945492SAndroid Build Coastguard Worker 		long val;
11*c9945492SAndroid Build Coastguard Worker 		va_list ap;
12*c9945492SAndroid Build Coastguard Worker 		va_start(ap, cmd);
13*c9945492SAndroid Build Coastguard Worker 		val = va_arg(ap, long);
14*c9945492SAndroid Build Coastguard Worker 		va_end(ap);
15*c9945492SAndroid Build Coastguard Worker 		rl.rlim_cur = 512ULL * val;
16*c9945492SAndroid Build Coastguard Worker 		if (setrlimit(RLIMIT_FSIZE, &rl)) return -1;
17*c9945492SAndroid Build Coastguard Worker 	}
18*c9945492SAndroid Build Coastguard Worker 	return rl.rlim_cur / 512;
19*c9945492SAndroid Build Coastguard Worker }
20