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 11bool 12file2str(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 35bool 36file2u64(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