summaryrefslogtreecommitdiff
path: root/StdLib/LibC/Uefi/Xform.c
diff options
context:
space:
mode:
Diffstat (limited to 'StdLib/LibC/Uefi/Xform.c')
-rw-r--r--StdLib/LibC/Uefi/Xform.c191
1 files changed, 0 insertions, 191 deletions
diff --git a/StdLib/LibC/Uefi/Xform.c b/StdLib/LibC/Uefi/Xform.c
deleted file mode 100644
index ecf51d6b0f..0000000000
--- a/StdLib/LibC/Uefi/Xform.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/** @file
- Value transformations between stdio and the UEFI environment.
-
- Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
- This program and the accompanying materials are licensed and made available under
- the terms and conditions of the BSD License that 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.
-
-**/
-#include <Uefi.h>
-
-#include <LibConfig.h>
-#include <sys/EfiCdefs.h>
-
-#include <errno.h>
-#include <fcntl.h>
-#include <Efi/SysEfi.h>
-
-/** Translate the Open flags into a Uefi Open Modes value.
-
- The Open Flags are:
- O_RDONLY, O_WRONLY, O_RDWR // Pick only one
-
- O_NONBLOCK, O_APPEND, O_CREAT, O_TRUNC, O_EXCL // ORed with one of the previous
-
- The UEFI Open modes are:
- // ******************************************************
- // Open Modes
- // ******************************************************
- #define EFI_FILE_MODE_READ 0x0000000000000001
- #define EFI_FILE_MODE_WRITE 0x0000000000000002
- #define EFI_FILE_MODE_CREATE 0x8000000000000000
-
-
-*/
-UINT64
-Oflags2EFI( int oflags )
-{
- UINT64 flags;
-
- // Build the Open Modes
- flags = (UINT64)((oflags & O_ACCMODE) + 1); // Handle the Read/Write flags
- if(flags & EFI_FILE_MODE_WRITE) { // Asking for write only?
- // EFI says the only two RW modes are read-only and read+write.
- flags = EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE;
- }
- if(oflags & (O_CREAT | O_TRUNC)) { // Now add the Create flag.
- // Also added if O_TRUNC set since we will need to create a new file.
- // We just set the flags here since the only valid EFI mode with create
- // is Read+Write+Create.
- flags = EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE | EFI_FILE_MODE_CREATE;
- }
- return flags;
-}
-
-/* Transform the permissions flags into their equivalent UEFI File Attribute bits.
- This transformation is most frequently used when translating attributes for use
- by the UEFI EFI_FILE_PROTOCOL.SetInfo() function.
-
- The UEFI File attributes are:
- // ******************************************************
- // File Attributes
- // ******************************************************
- #define EFI_FILE_READ_ONLY 0x0000000000000001
- #define EFI_FILE_HIDDEN 0x0000000000000002
- #define EFI_FILE_SYSTEM 0x0000000000000004
- #define EFI_FILE_RESERVED 0x0000000000000008
- #define EFI_FILE_DIRECTORY 0x0000000000000010
- #define EFI_FILE_ARCHIVE 0x0000000000000020
- #define EFI_FILE_VALID_ATTR 0x0000000000000037
-
- The input permission flags consist of the following flags:
- O_RDONLY -- open for reading only
- O_WRONLY -- open for writing only
- O_RDWR -- open for reading and writing
- O_ACCMODE -- mask for above modes
- O_NONBLOCK -- no delay
- O_APPEND -- set append mode
- O_CREAT -- create if nonexistent
- O_TRUNC -- truncate to zero length
- O_EXCL -- error if already exists
- O_HIDDEN -- Hidden file attribute
- O_SYSTEM -- System file attribute
- O_ARCHIVE -- Archive file attribute
-*/
-UINT64
-Omode2EFI( int mode)
-{
- UINT64 flags = 0;
-
- /* File is Read-Only. */
- if((mode & O_ACCMODE) == 0) {
- flags = EFI_FILE_READ_ONLY;
- }
- /* Set the Hidden attribute. */
- if((mode & O_HIDDEN) != 0) {
- flags |= EFI_FILE_HIDDEN;
- }
- /* Set the System attribute. */
- if((mode & O_SYSTEM) != 0) {
- flags |= EFI_FILE_SYSTEM;
- }
- /* Set the Archive attribute. */
- if((mode & O_ARCHIVE) != 0) {
- flags |= EFI_FILE_ARCHIVE;
- }
- return flags;
-}
-
-/* Converts the first several EFI status values into the appropriate errno value.
-*/
-int
-EFI2errno( RETURN_STATUS Status)
-{
- int retval;
-
- switch(Status) {
- case RETURN_SUCCESS:
- retval = 0;
- break;
- case RETURN_INVALID_PARAMETER:
- retval = EINVAL;
- break;
- case RETURN_UNSUPPORTED:
- retval = ENODEV;
- break;
- case RETURN_BAD_BUFFER_SIZE:
- case RETURN_BUFFER_TOO_SMALL:
- retval = EBUFSIZE;
- break;
- case RETURN_NOT_READY:
- retval = EBUSY;
- break;
- case RETURN_WRITE_PROTECTED:
- retval = EROFS;
- break;
- case RETURN_OUT_OF_RESOURCES: // May be overridden by specific functions
- retval = ENOMEM;
- break;
- case RETURN_VOLUME_FULL:
- retval = ENOSPC;
- break;
- case RETURN_NOT_FOUND:
- case RETURN_NO_MAPPING:
- retval = ENOENT;
- break;
- case RETURN_TIMEOUT:
- retval = ETIMEDOUT;
- break;
- case RETURN_NOT_STARTED:
- retval = EAGAIN;
- break;
- case RETURN_ALREADY_STARTED:
- retval = EALREADY;
- break;
- case RETURN_ABORTED:
- retval = EINTR;
- break;
- case RETURN_ICMP_ERROR:
- case RETURN_TFTP_ERROR:
- case RETURN_PROTOCOL_ERROR:
- retval = EPROTO;
- break;
- case RETURN_INCOMPATIBLE_VERSION:
- retval = EPERM;
- break;
- case RETURN_ACCESS_DENIED:
- case RETURN_SECURITY_VIOLATION:
- retval = EACCES;
- break;
-/* case RETURN_LOAD_ERROR:
- case RETURN_DEVICE_ERROR:
- case RETURN_VOLUME_CORRUPTED:
- case RETURN_NO_MEDIA:
- case RETURN_MEDIA_CHANGED:
- case RETURN_NO_RESPONSE:
- case RETURN_CRC_ERROR:
- case RETURN_END_OF_MEDIA:
- case RETURN_END_OF_FILE:
- case RETURN_INVALID_LANGUAGE:
-*/
- default:
- retval = EIO;
- break;
- }
- return retval;
-}