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 | VirtualDirOpen (IN EFI_FILE_PROTOCOL *This, OUT EFI_FILE_PROTOCOL **NewHandle, IN CHAR16 *FileName, IN UINT64 OpenMode, IN UINT64 Attributes) |
STATIC EFI_STATUS EFIAPI | VirtualDirClose (IN EFI_FILE_PROTOCOL *This) |
STATIC EFI_STATUS EFIAPI | VirtualDirDelete (IN EFI_FILE_PROTOCOL *This) |
STATIC EFI_STATUS EFIAPI | VirtualDirRead (IN EFI_FILE_PROTOCOL *This, IN OUT UINTN *BufferSize, OUT VOID *Buffer) |
STATIC EFI_STATUS EFIAPI | VirtualDirWrite (IN EFI_FILE_PROTOCOL *This, IN OUT UINTN *BufferSize, IN VOID *Buffer) |
STATIC EFI_STATUS EFIAPI | VirtualDirSetPosition (IN EFI_FILE_PROTOCOL *This, IN UINT64 Position) |
STATIC EFI_STATUS EFIAPI | VirtualDirGetPosition (IN EFI_FILE_PROTOCOL *This, OUT UINT64 *Position) |
STATIC EFI_STATUS EFIAPI | VirtualDirGetInfo (IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *InformationType, IN OUT UINTN *BufferSize, OUT VOID *Buffer) |
STATIC EFI_STATUS EFIAPI | VirtualDirSetInfo (IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *InformationType, IN UINTN BufferSize, IN VOID *Buffer) |
STATIC EFI_STATUS EFIAPI | VirtualDirFlush (IN EFI_FILE_PROTOCOL *This) |
STATIC EFI_STATUS EFIAPI | VirtualDirOpenEx (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 | VirtualDirReadEx (IN EFI_FILE_PROTOCOL *This, IN OUT EFI_FILE_IO_TOKEN *Token) |
STATIC EFI_STATUS EFIAPI | VirtualDirWriteEx (IN EFI_FILE_PROTOCOL *This, IN OUT EFI_FILE_IO_TOKEN *Token) |
STATIC EFI_STATUS EFIAPI | VirtualDirFlushEx (IN EFI_FILE_PROTOCOL *This, IN OUT EFI_FILE_IO_TOKEN *Token) |
EFI_STATUS | VirtualDirCreateOverlay (IN CHAR16 *FileName, IN CONST EFI_TIME *ModificationTime OPTIONAL, IN EFI_FILE_PROTOCOL *UnderlyingFile OPTIONAL, OUT EFI_FILE_PROTOCOL **File) |
EFI_STATUS | VirtualDirCreateOverlayFileNameCopy (IN CONST CHAR16 *FileName, IN CONST EFI_TIME *ModificationTime OPTIONAL, IN EFI_FILE_PROTOCOL *UnderlyingFile OPTIONAL, OUT EFI_FILE_PROTOCOL **File) |
EFI_STATUS | VirtualDirAddEntry (IN EFI_FILE_PROTOCOL *This, IN EFI_FILE_INFO *FileInfo) |
VOID | VirtualDirFree (IN EFI_FILE_PROTOCOL *This) |
Variables | |
STATIC CONST EFI_FILE_PROTOCOL | mVirtualDirProtocolTemplate |
Copyright (C) 2020, Goldfish64. 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 VirtualDir.c.
EFI_STATUS VirtualDirAddEntry | ( | IN EFI_FILE_PROTOCOL * | This, |
IN EFI_FILE_INFO * | FileInfo ) |
Adds an EFI_FILE_INFO instance to the virtual directory as a file entry. Ownership of the EFI_FILE_INFO is transferred to the EFI_FILE_PROTOCOL, which is freed with FreePool upon closing EFI_FILE_PROTOCOL.
[in] | This | File protocol pointer. |
[in] | FileInfo | EFI_FILE_INFO instance pointer. |
Definition at line 561 of file VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirClose | ( | IN EFI_FILE_PROTOCOL * | This | ) |
Definition at line 75 of file VirtualDir.c.
EFI_STATUS VirtualDirCreateOverlay | ( | IN CHAR16 * | FileName, |
IN CONST EFI_TIME *ModificationTime | OPTIONAL, | ||
IN EFI_FILE_PROTOCOL *UnderlyingFile | OPTIONAL, | ||
OUT EFI_FILE_PROTOCOL ** | File ) |
Creates read-only EFI_FILE_PROTOCOL virtual directory instance, optionally as an overlay over an existing EFI_FILE_PROTOCOL instance. On success ownership of FileName and UnderlyingFile 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] | ModificationTime | File modification date, optional. |
[in] | UnderlyingFile | The underlying file protocol, optional. |
[out] | File | Resulting file protocol. |
Definition at line 496 of file VirtualDir.c.
EFI_STATUS VirtualDirCreateOverlayFileNameCopy | ( | IN CONST CHAR16 * | FileName, |
IN CONST EFI_TIME *ModificationTime | OPTIONAL, | ||
IN EFI_FILE_PROTOCOL *UnderlyingFile | OPTIONAL, | ||
OUT EFI_FILE_PROTOCOL ** | File ) |
Creates read-only EFI_FILE_PROTOCOL virtual directory instance, optionally as an overlay over an existing EFI_FILE_PROTOCOL instance. On success, ownership of UnderlyingFile 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] | ModificationTime | File modification date, optional. |
[in] | UnderlyingFile | The underlying file protocol, optional. |
[out] | File | Resulting file protocol. |
Definition at line 531 of file VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirDelete | ( | IN EFI_FILE_PROTOCOL * | This | ) |
Definition at line 105 of file VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirFlush | ( | IN EFI_FILE_PROTOCOL * | This | ) |
Definition at line 373 of file VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirFlushEx | ( | IN EFI_FILE_PROTOCOL * | This, |
IN OUT EFI_FILE_IO_TOKEN * | Token ) |
Definition at line 463 of file VirtualDir.c.
VOID VirtualDirFree | ( | IN EFI_FILE_PROTOCOL * | This | ) |
Frees the EFI_FILE_PROTOCOL virtual directory instance without closing the underlying EFI_FILE_PROTOCOL, if any.
[in] | This | File protocol pointer. |
Definition at line 587 of file VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirGetInfo | ( | IN EFI_FILE_PROTOCOL * | This, |
IN EFI_GUID * | InformationType, | ||
IN OUT UINTN * | BufferSize, | ||
OUT VOID * | Buffer ) |
Definition at line 289 of file VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirGetPosition | ( | IN EFI_FILE_PROTOCOL * | This, |
OUT UINT64 * | Position ) |
Definition at line 275 of file VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirOpen | ( | 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 VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirOpenEx | ( | 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 386 of file VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirRead | ( | IN EFI_FILE_PROTOCOL * | This, |
IN OUT UINTN * | BufferSize, | ||
OUT VOID * | Buffer ) |
Definition at line 125 of file VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirReadEx | ( | IN EFI_FILE_PROTOCOL * | This, |
IN OUT EFI_FILE_IO_TOKEN * | Token ) |
Definition at line 423 of file VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirSetInfo | ( | IN EFI_FILE_PROTOCOL * | This, |
IN EFI_GUID * | InformationType, | ||
IN UINTN | BufferSize, | ||
IN VOID * | Buffer ) |
Definition at line 357 of file VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirSetPosition | ( | IN EFI_FILE_PROTOCOL * | This, |
IN UINT64 | Position ) |
Definition at line 236 of file VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirWrite | ( | IN EFI_FILE_PROTOCOL * | This, |
IN OUT UINTN * | BufferSize, | ||
IN VOID * | Buffer ) |
Definition at line 221 of file VirtualDir.c.
STATIC EFI_STATUS EFIAPI VirtualDirWriteEx | ( | IN EFI_FILE_PROTOCOL * | This, |
IN OUT EFI_FILE_IO_TOKEN * | Token ) |
Definition at line 449 of file VirtualDir.c.
STATIC CONST EFI_FILE_PROTOCOL mVirtualDirProtocolTemplate |
Definition at line 477 of file VirtualDir.c.