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 Workerlong 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