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 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 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