| // SPDX-License-Identifier: GPL-2.0-or-later |
| /* |
| * Copyright (c) 2018 Mylène Josserand <mylene.josserand@bootlin.com> |
| * |
| */ |
| |
| #include <stdio.h> |
| #include <unistd.h> |
| #include <string.h> |
| |
| static void print_help(void) |
| { |
| printf("Usage: tst_getconf variable\n\n"); |
| printf(" variable: can be PAGESIZE/PAGE_SIZE"); |
| printf(" or _NPROCESSORS_ONLN (for the moment)\n\n"); |
| printf("example: tst_getconf PAGESIZE\n"); |
| } |
| |
| int main(int argc, char *argv[]) |
| { |
| int opt; |
| |
| while ((opt = getopt(argc, argv, ":h")) != -1) { |
| switch (opt) { |
| case 'h': |
| print_help(); |
| return 0; |
| default: |
| print_help(); |
| return 1; |
| } |
| } |
| |
| if (argc != 2) { |
| print_help(); |
| return 1; |
| } |
| |
| if (!strcmp(argv[optind], "_NPROCESSORS_ONLN")) { |
| printf("%ld\n", sysconf(_SC_NPROCESSORS_ONLN)); |
| } else if (!strcmp(argv[optind], "PAGESIZE") || |
| !strcmp(argv[optind], "PAGE_SIZE")) { |
| printf("%ld\n", sysconf(_SC_PAGE_SIZE)); |
| } else { |
| printf("tst_getconf: Unrecognized variable \'%s\'\n", |
| argv[optind]); |
| return -1; |
| } |
| |
| return 0; |
| } |