/** @file * * Copyright (c) 2012-2014, ARM Limited. All rights reserved. * * This program and the accompanying materials * are licensed and made available under the terms and conditions of the BSD License * which accompanies this distribution. The full text of the license may be found at * http://opensource.org/licenses/bsd-license.php * * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. * **/ #ifndef __BOOTMON_FS_API_H #define __BOOTMON_FS_API_H #include EFI_STATUS BootMonFsInitialize ( IN BOOTMON_FS_INSTANCE *Instance ); UINT32 BootMonFsChecksum ( IN VOID *Data, IN UINT32 Size ); EFI_STATUS BootMonFsComputeFooterChecksum ( IN OUT HW_IMAGE_DESCRIPTION *Footer ); EFIAPI EFI_STATUS OpenBootMonFsOpenVolume ( IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This, OUT EFI_FILE_PROTOCOL **Root ); UINT32 BootMonFsGetImageLength ( IN BOOTMON_FS_FILE *File ); UINTN BootMonFsGetPhysicalSize ( IN BOOTMON_FS_FILE* File ); EFI_STATUS BootMonFsCreateFile ( IN BOOTMON_FS_INSTANCE *Instance, OUT BOOTMON_FS_FILE **File ); EFIAPI EFI_STATUS BootMonFsGetInfo ( IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *InformationType, IN OUT UINTN *BufferSize, OUT VOID *Buffer ); EFIAPI EFI_STATUS BootMonFsReadDirectory ( IN EFI_FILE_PROTOCOL *This, IN OUT UINTN *BufferSize, OUT VOID *Buffer ); EFIAPI EFI_STATUS BootMonFsFlushDirectory ( IN EFI_FILE_PROTOCOL *This ); EFIAPI EFI_STATUS BootMonFsFlushFile ( IN EFI_FILE_PROTOCOL *This ); EFIAPI EFI_STATUS BootMonFsCloseFile ( IN EFI_FILE_PROTOCOL *This ); EFIAPI EFI_STATUS BootMonFsOpenFile ( IN EFI_FILE_PROTOCOL *This, OUT EFI_FILE_PROTOCOL **NewHandle, IN CHAR16 *FileName, IN UINT64 OpenMode, IN UINT64 Attributes ); EFIAPI EFI_STATUS BootMonFsReadFile ( IN EFI_FILE_PROTOCOL *This, IN OUT UINTN *BufferSize, OUT VOID *Buffer ); EFIAPI EFI_STATUS BootMonFsSetDirPosition ( IN EFI_FILE_PROTOCOL *This, IN UINT64 Position ); EFIAPI EFI_STATUS BootMonFsGetPosition ( IN EFI_FILE_PROTOCOL *This, OUT UINT64 *Position ); EFIAPI EFI_STATUS BootMonFsWriteFile ( IN EFI_FILE_PROTOCOL *This, IN OUT UINTN *BufferSize, IN VOID *Buffer ); EFIAPI EFI_STATUS BootMonFsDeleteFail ( IN EFI_FILE_PROTOCOL *This ); EFIAPI EFI_STATUS BootMonFsDelete ( IN EFI_FILE_PROTOCOL *This ); EFIAPI EFI_STATUS BootMonFsSetPosition ( IN EFI_FILE_PROTOCOL *This, IN UINT64 Position ); EFIAPI EFI_STATUS BootMonFsGetPosition( IN EFI_FILE_PROTOCOL *This, OUT UINT64 *Position ); // // UNSUPPORTED OPERATIONS // EFIAPI EFI_STATUS BootMonFsGetPositionUnsupported ( IN EFI_FILE_PROTOCOL *This, OUT UINT64 *Position ); EFIAPI EFI_STATUS BootMonFsSetInfo ( IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *InformationType, IN UINTN BufferSize, IN VOID *Buffer ); // // Directory API // EFI_STATUS BootMonFsOpenDirectory ( OUT EFI_FILE_PROTOCOL **NewHandle, IN CHAR16 *FileName, IN BOOTMON_FS_INSTANCE *Volume ); // // Internal API // EFI_STATUS BootMonGetFileFromAsciiFileName ( IN BOOTMON_FS_INSTANCE *Instance, IN CHAR8* AsciiFileName, OUT BOOTMON_FS_FILE **File ); EFI_STATUS BootMonGetFileFromPosition ( IN BOOTMON_FS_INSTANCE *Instance, IN UINTN Position, OUT BOOTMON_FS_FILE **File ); #endif