OpenCore
1.0.4
OpenCore Bootloader
|
#include <Uefi.h>
#include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/BaseOverflowLib.h>
#include <Library/DebugLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/OcFileLib.h>
#include <Library/OcVirtualFsLib.h>
#include <Guid/FileInfo.h>
#include "VirtualFsInternal.h"
Go to the source code of this file.
Functions | |
STATIC EFI_STATUS EFIAPI | VirtualFileOpen (IN EFI_FILE_PROTOCOL *This, OUT EFI_FILE_PROTOCOL **NewHandle, IN CHAR16 *FileName, IN UINT64 OpenMode, IN UINT64 Attributes) |
STATIC EFI_STATUS EFIAPI | VirtualFileClose (IN EFI_FILE_PROTOCOL *This) |
STATIC EFI_STATUS EFIAPI | VirtualFileDelete (IN EFI_FILE_PROTOCOL *This) |
STATIC EFI_STATUS EFIAPI | VirtualFileRead (IN EFI_FILE_PROTOCOL *This, IN OUT UINTN *BufferSize, OUT VOID *Buffer) |
STATIC EFI_STATUS EFIAPI | VirtualFileWrite (IN EFI_FILE_PROTOCOL *This, IN OUT UINTN *BufferSize, IN VOID *Buffer) |
STATIC EFI_STATUS EFIAPI | VirtualFileSetPosition (IN EFI_FILE_PROTOCOL *This, IN UINT64 Position) |
STATIC EFI_STATUS EFIAPI | VirtualFileGetPosition (IN EFI_FILE_PROTOCOL *This, OUT UINT64 *Position) |
STATIC EFI_STATUS EFIAPI | VirtualFileGetInfo (IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *InformationType, IN OUT UINTN *BufferSize, OUT VOID *Buffer) |
STATIC EFI_STATUS EFIAPI | VirtualFileSetInfo (IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *InformationType, IN UINTN BufferSize, IN VOID *Buffer) |
STATIC EFI_STATUS EFIAPI | VirtualFileFlush (IN EFI_FILE_PROTOCOL *This) |
STATIC EFI_STATUS EFIAPI | VirtualFileOpenEx (IN EFI_FILE_PROTOCOL *This, OUT EFI_FILE_PROTOCOL **NewHandle, IN CHAR16 *FileName, IN UINT64 OpenMode, IN UINT64 Attributes, IN OUT EFI_FILE_IO_TOKEN *Token) |
STATIC EFI_STATUS EFIAPI | VirtualFileReadEx (IN EFI_FILE_PROTOCOL *This, IN OUT EFI_FILE_IO_TOKEN *Token) |
STATIC EFI_STATUS EFIAPI | VirtualFileWriteEx (IN EFI_FILE_PROTOCOL *This, IN OUT EFI_FILE_IO_TOKEN *Token) |
STATIC EFI_STATUS EFIAPI | VirtualFileFlushEx (IN EFI_FILE_PROTOCOL *This, IN OUT EFI_FILE_IO_TOKEN *Token) |
EFI_STATUS | CreateVirtualFile (IN CHAR16 *FileName, IN VOID *FileBuffer, IN UINT64 FileSize, IN CONST EFI_TIME *ModificationTime OPTIONAL, OUT EFI_FILE_PROTOCOL **File) |
EFI_STATUS | CreateVirtualFileFileNameCopy (IN CONST CHAR16 *FileName, IN VOID *FileBuffer, IN UINT64 FileSize, IN CONST EFI_TIME *ModificationTime OPTIONAL, OUT EFI_FILE_PROTOCOL **File) |
STATIC VOID | InternalInitVirtualVolumeData (IN OUT VIRTUAL_FILE_DATA *Data, IN EFI_FILE_OPEN OpenCallback) |
EFI_STATUS | CreateRealFile (IN EFI_FILE_PROTOCOL *OriginalFile OPTIONAL, IN EFI_FILE_OPEN OpenCallback OPTIONAL, IN BOOLEAN CloseOnFailure, OUT EFI_FILE_PROTOCOL **File) |
Variables | |
STATIC CONST EFI_FILE_PROTOCOL | mVirtualFileProtocolTemplate |
Copyright (C) 2019, vit9696. All rights reserved.
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.
Definition in file VirtualFile.c.
EFI_STATUS CreateRealFile | ( | IN EFI_FILE_PROTOCOL *OriginalFile | OPTIONAL, |
IN EFI_FILE_OPEN OpenCallback | OPTIONAL, | ||
IN BOOLEAN | CloseOnFailure, | ||
OUT EFI_FILE_PROTOCOL ** | File ) |
Creates virtual file system instance around any file. CreateRealFile or CreateVirtualFile must be called from any registered OpenCallback.
[in] | OriginalFile | Pointer to the original file. |
[in] | OpenCallback | File open callback. |
[in] | CloseOnFailure | Close the original file on failure. |
[out] | File | Resulting file protocol. |
Definition at line 694 of file VirtualFile.c.
EFI_STATUS CreateVirtualFile | ( | IN CHAR16 * | FileName, |
IN VOID * | FileBuffer, | ||
IN UINT64 | FileSize, | ||
IN CONST EFI_TIME *ModificationTime | OPTIONAL, | ||
OUT EFI_FILE_PROTOCOL ** | File ) |
Creates read-only EFI_FILE_PROTOCOL instance over a buffer allocated from pool. On success FileName and FileData ownership is transferred to the resulting EFI_FILE_PROTOCOL, which frees them with FreePool upon closing EFI_FILE_PROTOCOL. All other fields are copied.
Resulting EFI_FILE_PROTOCOL has 2nd revision, but may be downgraded to 1st by updating the corresponding field.
[in] | FileName | Pointer to the file's name. |
[in] | FileBuffer | Pointer to the file's data. |
[in] | FileSize | File size of FileData. |
[in] | ModificationTime | File modification date, optional. |
[out] | File | Resulting file protocol. |
Definition at line 610 of file VirtualFile.c.
EFI_STATUS CreateVirtualFileFileNameCopy | ( | IN CONST CHAR16 * | FileName, |
IN VOID * | FileBuffer, | ||
IN UINT64 | FileSize, | ||
IN CONST EFI_TIME *ModificationTime | OPTIONAL, | ||
OUT EFI_FILE_PROTOCOL ** | File ) |
Creates read-only EFI_FILE_PROTOCOL instance over a buffer allocated from pool. On success FileData ownership is transferred to the resulting EFI_FILE_PROTOCOL, which frees them with FreePool upon closing EFI_FILE_PROTOCOL. All other fields are copied.
Resulting EFI_FILE_PROTOCOL has 2nd revision, but may be downgraded to 1st by updating the corresponding field.
[in] | FileName | Pointer to the file's name. |
[in] | FileBuffer | Pointer to the file's data. |
[in] | FileSize | File size of FileData. |
[in] | ModificationTime | File modification date, optional. |
[out] | File | Resulting file protocol. |
Definition at line 650 of file VirtualFile.c.
STATIC VOID InternalInitVirtualVolumeData | ( | IN OUT VIRTUAL_FILE_DATA * | Data, |
IN EFI_FILE_OPEN | OpenCallback ) |
Definition at line 682 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileClose | ( | IN EFI_FILE_PROTOCOL * | This | ) |
Definition at line 86 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileDelete | ( | IN EFI_FILE_PROTOCOL * | This | ) |
Definition at line 118 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileFlush | ( | IN EFI_FILE_PROTOCOL * | This | ) |
Definition at line 433 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileFlushEx | ( | IN EFI_FILE_PROTOCOL * | This, |
IN OUT EFI_FILE_IO_TOKEN * | Token ) |
Definition at line 562 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileGetInfo | ( | IN EFI_FILE_PROTOCOL * | This, |
IN EFI_GUID * | InformationType, | ||
IN OUT UINTN * | BufferSize, | ||
OUT VOID * | Buffer ) |
Definition at line 305 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileGetPosition | ( | IN EFI_FILE_PROTOCOL * | This, |
OUT UINT64 * | Position ) |
Definition at line 276 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileOpen | ( | IN EFI_FILE_PROTOCOL * | This, |
OUT EFI_FILE_PROTOCOL ** | NewHandle, | ||
IN CHAR16 * | FileName, | ||
IN UINT64 | OpenMode, | ||
IN UINT64 | Attributes ) |
Definition at line 34 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileOpenEx | ( | IN EFI_FILE_PROTOCOL * | This, |
OUT EFI_FILE_PROTOCOL ** | NewHandle, | ||
IN CHAR16 * | FileName, | ||
IN UINT64 | OpenMode, | ||
IN UINT64 | Attributes, | ||
IN OUT EFI_FILE_IO_TOKEN * | Token ) |
Definition at line 460 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileRead | ( | IN EFI_FILE_PROTOCOL * | This, |
IN OUT UINTN * | BufferSize, | ||
OUT VOID * | Buffer ) |
Definition at line 152 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileReadEx | ( | IN EFI_FILE_PROTOCOL * | This, |
IN OUT EFI_FILE_IO_TOKEN * | Token ) |
Definition at line 499 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileSetInfo | ( | IN EFI_FILE_PROTOCOL * | This, |
IN EFI_GUID * | InformationType, | ||
IN UINTN | BufferSize, | ||
IN VOID * | Buffer ) |
Definition at line 400 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileSetPosition | ( | IN EFI_FILE_PROTOCOL * | This, |
IN UINT64 | Position ) |
Definition at line 241 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileWrite | ( | IN EFI_FILE_PROTOCOL * | This, |
IN OUT UINTN * | BufferSize, | ||
IN VOID * | Buffer ) |
Definition at line 210 of file VirtualFile.c.
STATIC EFI_STATUS EFIAPI VirtualFileWriteEx | ( | IN EFI_FILE_PROTOCOL * | This, |
IN OUT EFI_FILE_IO_TOKEN * | Token ) |
Definition at line 535 of file VirtualFile.c.
STATIC CONST EFI_FILE_PROTOCOL mVirtualFileProtocolTemplate |
Definition at line 591 of file VirtualFile.c.