1*2ad00dadSkrw /* $OpenBSD: misc.h,v 1.50 2023/03/25 20:34:28 krw Exp $ */ 2a1705421Sweingart 3a1705421Sweingart /* 4a1705421Sweingart * Copyright (c) 1997 Tobias Weingartner 5a1705421Sweingart * 610a68084Skrw * Permission to use, copy, modify, and distribute this software for any 710a68084Skrw * purpose with or without fee is hereby granted, provided that the above 810a68084Skrw * copyright notice and this permission notice appear in all copies. 9a1705421Sweingart * 1010a68084Skrw * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1110a68084Skrw * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1210a68084Skrw * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1310a68084Skrw * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1410a68084Skrw * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1510a68084Skrw * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 1610a68084Skrw * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17a1705421Sweingart */ 18a1705421Sweingart 19e64cb338Sotto struct unit_type { 20859be6c9Skrw char *ut_abbr; 21859be6c9Skrw int64_t ut_conversion; 22859be6c9Skrw char *ut_lname; 238ce00868Skjell }; 248ce00868Skjell 2558c4c3e5Skrw #ifndef nitems 2658c4c3e5Skrw #define nitems(_a) (sizeof((_a)) / sizeof((_a)[0])) 2758c4c3e5Skrw #endif 2858c4c3e5Skrw 29380d744dSkrw #define WHITESPACE " \f\n\r\t\v" 30380d744dSkrw #define UNTRIMMED 0 31380d744dSkrw #define TRIMMED 1 32*2ad00dadSkrw #define LINEBUFSZ 100 33380d744dSkrw 343e9b7d6bSkrw double units_size(const char *, const uint64_t, 353e9b7d6bSkrw const struct unit_type **); 36380d744dSkrw void string_from_line(char *, const size_t, const int); 37c72b5b24Smillert int ask_yn(const char *); 387696a120Skrw int hex_octet(char *); 392bf8667bSkrw uint64_t getuint64(const char *, uint64_t, const uint64_t, 402bf8667bSkrw const uint64_t); 41