diff options
Diffstat (limited to 'efi/fio.h')
-rw-r--r-- | efi/fio.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/efi/fio.h b/efi/fio.h new file mode 100644 index 0000000..65fff8d --- /dev/null +++ b/efi/fio.h @@ -0,0 +1,43 @@ +#ifndef _H_EFI_FIO_ +#define _H_EFI_FIO_ + +/* + * Friendly interfaces for EFI file I/O and various EFI support functions + */ + +/* MAX_EFI_ARGS - command line args for EFI executable + * WS(c16) - check for CHAR16 white space + */ +#define MAX_EFI_ARGS 64 +#define WS(c16) (c16 == L' ' || c16 == CHAR_TAB) + +/* VPrint is not in export declarations in gnu-efi lib yet + * although it is a global function; declare it here + */ +extern UINTN +VPrint ( + IN CHAR16 *fmt, + va_list args + ); + +extern EFI_STATUS efi_errno; + +void efi_memcpy(unsigned char *dst, unsigned char *src, size_t len); +void efi_memmove(unsigned char *dst, unsigned char *src, size_t len); +void efi_memset(unsigned char *dst, unsigned char val, size_t len); +void *efi_alloc(int size); +void efi_free(void *ptr); +void efi_perror(CHAR16 *str); +void efi_printerr(IN CHAR16 *fmt, ...); +void efi_printout(IN CHAR16 *fmt, ...); +EFI_STATUS efi_set_volroot(EFI_HANDLE device_handle); +EFI_FILE_HANDLE efi_open(CHAR16 *file, UINT64 mode); +void efi_close(EFI_FILE_HANDLE fd); +void efi_sync(EFI_FILE_HANDLE fd); +size_t efi_xpread(EFI_FILE_HANDLE fd, void *buf, size_t count, off_t offset); +size_t efi_xpwrite(EFI_FILE_HANDLE fd, void *buf, size_t count, off_t offset); +int efi_fstat(EFI_FILE_HANDLE fd, EFI_FILE_INFO *st); +void efi_set_attributes(EFI_FILE_HANDLE fd); +void efi_clear_attributes(EFI_FILE_HANDLE fd); + +#endif |