blob: 65fff8df0ee151f4c3438260e04275faf20fe542 [file] [log] [blame]
#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