mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
xfstests: src/feature.c: print a number of online CPUs
For this purpose we use sysconf() as it is the preferred platform neutral interface for getting this sort of information. Based on Dave Chinner proposal. Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com> Reviewed-by: Rich Johnston <rjohnston@sgi.com> Signed-off-by: Rich Johnston <rjohnston@sgi.com>
This commit is contained in:
committed by
Rich Johnston
parent
a16f0cfe3a
commit
2dcf4a56d1
+24
-3
@@ -30,6 +30,7 @@
|
||||
* Return code: 0 is true, anything else is error/not supported
|
||||
*
|
||||
* Test for machine features
|
||||
* -o report a number of online cpus
|
||||
* -s report pagesize
|
||||
* -w report bits per long
|
||||
*/
|
||||
@@ -39,6 +40,7 @@
|
||||
#include <sys/quota.h>
|
||||
#include <sys/resource.h>
|
||||
#include <signal.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef HAVE_XFS_XQM_H
|
||||
#include <xfs/xqm.h>
|
||||
@@ -64,7 +66,7 @@ usage(void)
|
||||
fprintf(stderr, "Usage: feature [-v] -<q|u|g|p|U|G|P> <filesystem>\n");
|
||||
fprintf(stderr, " feature [-v] -c <file>\n");
|
||||
fprintf(stderr, " feature [-v] -t <file>\n");
|
||||
fprintf(stderr, " feature -s | -w\n");
|
||||
fprintf(stderr, " feature -o | -s | -w\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@@ -212,9 +214,10 @@ main(int argc, char **argv)
|
||||
int uflag = 0;
|
||||
int Uflag = 0;
|
||||
int wflag = 0;
|
||||
int oflag = 0;
|
||||
char *fs = NULL;
|
||||
|
||||
while ((c = getopt(argc, argv, "ctgGpPqsuUvw")) != EOF) {
|
||||
while ((c = getopt(argc, argv, "ctgGopPqsuUvw")) != EOF) {
|
||||
switch (c) {
|
||||
case 'c':
|
||||
cflag++;
|
||||
@@ -228,6 +231,9 @@ main(int argc, char **argv)
|
||||
case 'G':
|
||||
Gflag++;
|
||||
break;
|
||||
case 'o':
|
||||
oflag++;
|
||||
break;
|
||||
case 'p':
|
||||
pflag++;
|
||||
break;
|
||||
@@ -262,7 +268,7 @@ main(int argc, char **argv)
|
||||
if (optind != argc-1) /* need a device */
|
||||
usage();
|
||||
fs = argv[argc-1];
|
||||
} else if (wflag || sflag) {
|
||||
} else if (wflag || sflag || oflag) {
|
||||
if (optind != argc)
|
||||
usage();
|
||||
} else
|
||||
@@ -306,6 +312,21 @@ bozo!
|
||||
#endif
|
||||
exit(0);
|
||||
}
|
||||
if (oflag) {
|
||||
long ncpus = -1;
|
||||
|
||||
#if defined(_SC_NPROCESSORS_ONLN)
|
||||
ncpus = sysconf(_SC_NPROCESSORS_ONLN);
|
||||
#elif defined(_SC_NPROC_ONLN)
|
||||
ncpus = sysconf(_SC_NPROC_ONLN);
|
||||
#endif
|
||||
if (ncpus == -1)
|
||||
ncpus = 1;
|
||||
|
||||
printf("%ld\n", ncpus);
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
fprintf(stderr, "feature: dunno what you're after.\n");
|
||||
return(1);
|
||||
|
||||
Reference in New Issue
Block a user