461 {
462 if ( info == 0 ) return 0;
463 long status = 1;
464
465 if ( fetch ==
Quota ) {
466#if defined( __linux )
467
468
469
470 if ( pid > 0 && pid != ::getpid() ) return 0;
471
472 rlimit lim;
473 getrlimit( RLIMIT_DATA, &lim );
474 if ( lim.rlim_max == RLIM_INFINITY ) lim.rlim_max = 0xFFFFFFFF;
475 info->PagedPoolLimit = lim.rlim_max;
476
477 getrlimit( RLIMIT_STACK, &lim );
478 if ( lim.rlim_max == RLIM_INFINITY ) lim.rlim_max = 0xFFFFFFFF;
479 info->NonPagedPoolLimit = lim.rlim_max;
480 info->MinimumWorkingSetSize = 0;
481
482 getrlimit( RLIMIT_RSS, &lim );
483 if ( lim.rlim_max == RLIM_INFINITY ) lim.rlim_max = 0xFFFFFFFF;
484 info->MaximumWorkingSetSize = lim.rlim_max;
485
486 getrlimit( RLIMIT_AS, &lim );
487 if ( lim.rlim_max == RLIM_INFINITY ) lim.rlim_max = 0xFFFFFFFF;
488 info->PagefileLimit = lim.rlim_max;
489
490 getrlimit( RLIMIT_CPU, &lim );
491 if ( lim.rlim_max == RLIM_INFINITY ) lim.rlim_max = 0xFFFFFFFF;
492 info->TimeLimit = lim.rlim_max;
493#elif defined( __APPLE__ )
494 if ( pid ) {}
495#else
496 if ( pid ) {}
497#endif
498 }
499 return status;
500}