1 /*-
2 * Copyright 2022 Netflix, Inc
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7 #include "stand.h"
8 #include "host_syscall.h"
9 #include "kboot.h"
10
11 bool
file2str(const char * fn,char * buffer,size_t buflen)12 file2str(const char *fn, char *buffer, size_t buflen)
13 {
14 int fd;
15 ssize_t len;
16
17 fd = host_open(fn, HOST_O_RDONLY, 0);
18 if (fd == -1)
19 return false;
20 len = host_read(fd, buffer, buflen - 1);
21 if (len < 0) {
22 host_close(fd);
23 return false;
24 }
25 buffer[len] = '\0';
26 /*
27 * Trim trailing white space
28 */
29 while (isspace(buffer[len - 1]))
30 buffer[--len] = '\0';
31 host_close(fd);
32 return true;
33 }
34
35 bool
file2u64(const char * fn,uint64_t * val)36 file2u64(const char *fn, uint64_t *val)
37 {
38 unsigned long long v;
39 char buffer[80];
40
41 if (!file2str(fn, buffer, sizeof(buffer)))
42 return false;
43 v = strtoull(buffer, NULL, 0); /* XXX check return values? */
44 *val = v;
45 return true;
46 }
47