176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef _H_EFI_FIO_ 276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define _H_EFI_FIO_ 376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Friendly interfaces for EFI file I/O and various EFI support functions 676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* MAX_EFI_ARGS - command line args for EFI executable 976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * WS(c16) - check for CHAR16 white space 1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define MAX_EFI_ARGS 64 1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define WS(c16) (c16 == L' ' || c16 == CHAR_TAB) 1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* VPrint is not in export declarations in gnu-efi lib yet 1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * although it is a global function; declare it here 1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanextern UINTN 1876d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanVPrint ( 1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman IN CHAR16 *fmt, 2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman va_list args 2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ); 2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanextern EFI_STATUS efi_errno; 2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvoid efi_memcpy(unsigned char *dst, unsigned char *src, size_t len); 2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvoid efi_memmove(unsigned char *dst, unsigned char *src, size_t len); 2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvoid efi_memset(unsigned char *dst, unsigned char val, size_t len); 2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvoid *efi_alloc(int size); 2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvoid efi_free(void *ptr); 3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvoid efi_perror(CHAR16 *str); 3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvoid efi_printerr(IN CHAR16 *fmt, ...); 3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvoid efi_printout(IN CHAR16 *fmt, ...); 3376d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_STATUS efi_set_volroot(EFI_HANDLE device_handle); 3476d05dc695b06c4e987bb8078f78032441e1430cGreg HartmanEFI_FILE_HANDLE efi_open(CHAR16 *file, UINT64 mode); 3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvoid efi_close(EFI_FILE_HANDLE fd); 3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvoid efi_sync(EFI_FILE_HANDLE fd); 3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmansize_t efi_xpread(EFI_FILE_HANDLE fd, void *buf, size_t count, off_t offset); 3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmansize_t efi_xpwrite(EFI_FILE_HANDLE fd, void *buf, size_t count, off_t offset); 3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanint efi_fstat(EFI_FILE_HANDLE fd, EFI_FILE_INFO *st); 4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvoid efi_set_attributes(EFI_FILE_HANDLE fd); 4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvoid efi_clear_attributes(EFI_FILE_HANDLE fd); 4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 44