parlib: slab: Use the modern ctor/dtor interface
[akaros.git] / user / parlib / sysinfo.c
1 /* Copyright (c) 2016 Google Inc.
2  * Barret Rhoden <brho@cs.berkeley.edu>
3  * See LICENSE for details.
4  *
5  * Helper functions to query information about the system. */
6
7 #include <stdio.h>
8 #include <stdlib.h>
9 #include <stdint.h>
10 #include <sys/types.h>
11 #include <sys/stat.h>
12 #include <fcntl.h>
13 #include <assert.h>
14 #include <unistd.h>
15
16 #include <parlib/sysinfo.h>
17 #include <ros/arch/arch.h>
18
19 int get_num_pcores(void)
20 {
21         int fd;
22         int ret;
23         char buf[128];
24
25         fd = open("#vars/num_cores!dw", O_RDONLY);
26         if (fd < 0)
27                 return MAX_NUM_CORES;
28         if (read(fd, buf, sizeof(buf)) < 0) {
29                 /* major bug */
30                 perror("#vars read");
31                 exit(-1);
32         }
33         ret = strtol(buf, 0, 0);
34         close(fd);
35         return ret;
36 }