]>
Commit | Line | Data |
---|---|---|
53e1b683 | 1 | /* SPDX-License-Identifier: LGPL-2.1+ */ |
7a3c343c | 2 | #pragma once |
0fa2cac4 KS |
3 | |
4 | #include <efi.h> | |
5 | #include <efilib.h> | |
6 | ||
7 | #define ELEMENTSOF(x) (sizeof(x)/sizeof((x)[0])) | |
0fef9583 | 8 | #define OFFSETOF(x,y) __builtin_offsetof(x,y) |
0fa2cac4 | 9 | |
7a2cb022 ZJS |
10 | static inline UINTN ALIGN_TO(UINTN l, UINTN ali) { |
11 | return ((l + ali - 1) & ~(ali - 1)); | |
12 | } | |
13 | ||
4db7e6d7 KS |
14 | static inline const CHAR16 *yes_no(BOOLEAN b) { |
15 | return b ? L"yes" : L"no"; | |
16 | } | |
17 | ||
427ee7ec | 18 | EFI_STATUS parse_boolean(const CHAR8 *v, BOOLEAN *b); |
4db7e6d7 | 19 | |
0fa2cac4 KS |
20 | UINT64 ticks_read(void); |
21 | UINT64 ticks_freq(void); | |
22 | UINT64 time_usec(void); | |
23 | ||
427ee7ec LP |
24 | EFI_STATUS efivar_set(const CHAR16 *name, const CHAR16 *value, BOOLEAN persistent); |
25 | EFI_STATUS efivar_set_raw(const EFI_GUID *vendor, const CHAR16 *name, const VOID *buf, UINTN size, BOOLEAN persistent); | |
0fa2cac4 KS |
26 | EFI_STATUS efivar_set_int(CHAR16 *name, UINTN i, BOOLEAN persistent); |
27 | VOID efivar_set_time_usec(CHAR16 *name, UINT64 usec); | |
28 | ||
427ee7ec LP |
29 | EFI_STATUS efivar_get(const CHAR16 *name, CHAR16 **value); |
30 | EFI_STATUS efivar_get_raw(const EFI_GUID *vendor, const CHAR16 *name, CHAR8 **buffer, UINTN *size); | |
31 | EFI_STATUS efivar_get_int(const CHAR16 *name, UINTN *i); | |
0fa2cac4 KS |
32 | |
33 | CHAR8 *strchra(CHAR8 *s, CHAR8 c); | |
34 | CHAR16 *stra_to_path(CHAR8 *stra); | |
35 | CHAR16 *stra_to_str(CHAR8 *stra); | |
36 | ||
427ee7ec | 37 | EFI_STATUS file_read(EFI_FILE_HANDLE dir, const CHAR16 *name, UINTN off, UINTN size, CHAR8 **content, UINTN *content_size); |
a42d7cf1 ZJS |
38 | |
39 | static inline void FreePoolp(void *p) { | |
2880e665 LP |
40 | void *q = *(void**) p; |
41 | ||
42 | if (!q) | |
43 | return; | |
44 | ||
45 | FreePool(q); | |
a42d7cf1 ZJS |
46 | } |
47 | ||
012c2f76 | 48 | #define _cleanup_(x) __attribute__((__cleanup__(x))) |
a42d7cf1 | 49 | #define _cleanup_freepool_ _cleanup_(FreePoolp) |
3aaa95e0 LP |
50 | |
51 | static inline void FileHandleClosep(EFI_FILE_HANDLE *handle) { | |
52 | if (!*handle) | |
53 | return; | |
54 | ||
55 | uefi_call_wrapper((*handle)->Close, 1, *handle); | |
56 | } | |
0e2bc732 LP |
57 | |
58 | const EFI_GUID loader_guid; | |
b49dd00f LP |
59 | |
60 | #define UINTN_MAX (~(UINTN)0) | |
61 | #define INTN_MAX ((INTN)(UINTN_MAX>>1)) | |
b9e45242 LP |
62 | |
63 | #define TAKE_PTR(ptr) \ | |
64 | ({ \ | |
65 | typeof(ptr) _ptr_ = (ptr); \ | |
66 | (ptr) = NULL; \ | |
67 | _ptr_; \ | |
68 | }) | |
b19fa812 LP |
69 | |
70 | EFI_STATUS log_oom(void); |