Port EdkUnixPkg to UnixPkg. The changes are listed as follows:
1. change *.msa to *.inf, and create platform configuration files .dec&.dsc&.fdf to comply with Edk2 build process 2. using PCD mechanism to replace macro. 3. change Sec code to cowork with PI1.0 Pei Core and produce temparory memory ppi. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5380 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
32
UnixPkg/Include/Common/UnixInclude.h
Normal file
32
UnixPkg/Include/Common/UnixInclude.h
Normal file
@@ -0,0 +1,32 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
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.
|
||||
|
||||
Module Name:
|
||||
UnixInclude.h
|
||||
|
||||
Abstract:
|
||||
Public include file for the Unix Library
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UNIX_INCLUDE_H__
|
||||
#define __UNIX_INCLUDE_H__
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/vfs.h>
|
||||
#include <sys/poll.h>
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <time.h>
|
||||
#include <utime.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
64
UnixPkg/Include/FlashLayout.h
Normal file
64
UnixPkg/Include/FlashLayout.h
Normal file
@@ -0,0 +1,64 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
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.
|
||||
|
||||
Module Name:
|
||||
|
||||
FlashLayout.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Platform specific flash layout
|
||||
|
||||
BugBug: We need a better way
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __EFI_FLASH_LAYOUT__
|
||||
#define __EFI_FLASH_LAYOUT__
|
||||
|
||||
//
|
||||
// Firmware Volume Information for Nt32
|
||||
// adding one working block before FFS FV,
|
||||
// and another one for spare block behind FFS FV
|
||||
//
|
||||
//
|
||||
// Note: When block number is changed in .dsc file,
|
||||
// this value should be changed accordingly!!!
|
||||
//
|
||||
#define FIRMWARE_BLOCK_NUMBER 0x28
|
||||
|
||||
#define EFI_WINNT_FIRMWARE_OFFSET 0x0
|
||||
#define EFI_WINNT_FIRMWARE_LENGTH (0x10000 * FIRMWARE_BLOCK_NUMBER)
|
||||
|
||||
#define EFI_WINNT_RUNTIME_UPDATABLE_OFFSET (EFI_WINNT_FIRMWARE_OFFSET + EFI_WINNT_FIRMWARE_LENGTH)
|
||||
|
||||
#define EFI_WINNT_RUNTIME_UPDATABLE_LENGTH 0x10000
|
||||
|
||||
#define EFI_WINNT_FTW_SPARE_BLOCK_OFFSET (EFI_WINNT_RUNTIME_UPDATABLE_OFFSET + EFI_WINNT_RUNTIME_UPDATABLE_LENGTH)
|
||||
|
||||
#define EFI_WINNT_FTW_SPARE_BLOCK_LENGTH 0x10000
|
||||
|
||||
#define EFI_WINNT_RUNTIME_UPDATABLE_FV_HEADER_LENGTH 0x48
|
||||
|
||||
#define EFI_VARIABLE_STORE_OFFSET EFI_WINNT_RUNTIME_UPDATABLE_OFFSET
|
||||
|
||||
#define EFI_VARIABLE_STORE_LENGTH 0x00C000
|
||||
|
||||
#define EFI_EVENT_LOG_OFFSET (EFI_VARIABLE_STORE_OFFSET + EFI_VARIABLE_STORE_LENGTH)
|
||||
|
||||
#define EFI_EVENT_LOG_LENGTH 0x002000
|
||||
|
||||
#define EFI_FTW_WORKING_OFFSET (EFI_EVENT_LOG_OFFSET + EFI_EVENT_LOG_LENGTH)
|
||||
|
||||
#define EFI_FTW_WORKING_LENGTH 0x002000
|
||||
|
||||
#endif
|
||||
|
27
UnixPkg/Include/Library/UnixLib.h
Normal file
27
UnixPkg/Include/Library/UnixLib.h
Normal file
@@ -0,0 +1,27 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
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.
|
||||
|
||||
Module Name:
|
||||
|
||||
UnixLib.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Public include file for the Unix Library
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UNIX_LIB_H__
|
||||
#define __UNIX_LIB_H__
|
||||
|
||||
extern EFI_UNIX_THUNK_PROTOCOL *gUnix;
|
||||
|
||||
#endif
|
66
UnixPkg/Include/Ppi/UnixAutoScan.h
Normal file
66
UnixPkg/Include/Ppi/UnixAutoScan.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
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.
|
||||
|
||||
Module Name:
|
||||
|
||||
UnixAutoscan.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Unix Autoscan PPI
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UNIX_PEI_AUTOSCAN_H__
|
||||
#define __UNIX_PEI_AUTOSCAN_H__
|
||||
|
||||
#include <UnixDxe.h>
|
||||
|
||||
#define PEI_UNIX_AUTOSCAN_PPI_GUID \
|
||||
{ \
|
||||
0xf2ed3d14, 0x8985, 0x11db, {0xb0, 0x57, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PEI_UNIX_AUTOSCAN) (
|
||||
IN UINTN Index,
|
||||
OUT EFI_PHYSICAL_ADDRESS *MemoryBase,
|
||||
OUT UINT64 *MemorySize
|
||||
);
|
||||
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
This service is called from Index == 0 until it returns EFI_UNSUPPORTED.
|
||||
It allows discontiguous memory regions to be supported by the emulator.
|
||||
It uses gSystemMemory[] and gSystemMemoryCount that were created by
|
||||
parsing the host environment variable EFI_MEMORY_SIZE.
|
||||
The size comes from the varaible and the address comes from the call to
|
||||
WinNtOpenFile.
|
||||
|
||||
Arguments:
|
||||
Index - Which memory region to use
|
||||
MemoryBase - Return Base address of memory region
|
||||
MemorySize - Return size in bytes of the memory region
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - If memory region was mapped
|
||||
EFI_UNSUPPORTED - If Index is not supported
|
||||
|
||||
--*/
|
||||
typedef struct {
|
||||
PEI_UNIX_AUTOSCAN UnixAutoScan;
|
||||
} PEI_UNIX_AUTOSCAN_PPI;
|
||||
|
||||
extern EFI_GUID gPeiUnixAutoScanPpiGuid;
|
||||
|
||||
#endif
|
62
UnixPkg/Include/Ppi/UnixFwh.h
Normal file
62
UnixPkg/Include/Ppi/UnixFwh.h
Normal file
@@ -0,0 +1,62 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
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.
|
||||
|
||||
Module Name:
|
||||
|
||||
UnixFwh.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Unix FWH PPI as defined in Tiano
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UNIX_PEI_FWH_H__
|
||||
#define __UNIX_PEI_FWH_H__
|
||||
|
||||
#include <UnixDxe.h>
|
||||
|
||||
#define UNIX_FWH_PPI_GUID \
|
||||
{ \
|
||||
0xf2f0dc30, 0x8985, 0x11db, {0xa1, 0x5b, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *UNIX_FWH_INFORMATION) (
|
||||
IN UINTN Index,
|
||||
IN OUT EFI_PHYSICAL_ADDRESS *FdBase,
|
||||
IN OUT UINT64 *FdSize
|
||||
);
|
||||
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Return the FD Size and base address. Since the FD is loaded from a
|
||||
file into host memory only the SEC will know it's address.
|
||||
|
||||
Arguments:
|
||||
Index - Which FD, starts at zero.
|
||||
FdSize - Size of the FD in bytes
|
||||
FdBase - Start address of the FD. Assume it points to an FV Header
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Return the Base address and size of the FV
|
||||
EFI_UNSUPPORTED - Index does nto map to an FD in the system
|
||||
|
||||
--*/
|
||||
typedef struct {
|
||||
UNIX_FWH_INFORMATION UnixFwh;
|
||||
} UNIX_FWH_PPI;
|
||||
|
||||
extern EFI_GUID gUnixFwhPpiGuid;
|
||||
|
||||
#endif
|
65
UnixPkg/Include/Ppi/UnixPeiLoadFile.h
Normal file
65
UnixPkg/Include/Ppi/UnixPeiLoadFile.h
Normal file
@@ -0,0 +1,65 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
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.
|
||||
|
||||
Module Name:
|
||||
|
||||
UnixPeiLoadFile.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Unix Load File PPI.
|
||||
|
||||
When the PEI core is done it calls the DXE IPL via PPI
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UNIX_PEI_LOAD_FILE_H__
|
||||
#define __UNIX_PEI_LOAD_FILE_H__
|
||||
|
||||
#include <UnixDxe.h>
|
||||
|
||||
#define UNIX_PEI_LOAD_FILE_GUID \
|
||||
{ \
|
||||
0xf2f48768, 0x8985, 0x11db, {0xb8, 0xda, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *UNIX_PEI_LOAD_FILE) (
|
||||
VOID *Pe32Data,
|
||||
EFI_PHYSICAL_ADDRESS *ImageAddress,
|
||||
UINT64 *ImageSize,
|
||||
EFI_PHYSICAL_ADDRESS *EntryPoint
|
||||
);
|
||||
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Loads and relocates a PE/COFF image into memory.
|
||||
|
||||
Arguments:
|
||||
Pe32Data - The base address of the PE/COFF file that is to be loaded and relocated
|
||||
ImageAddress - The base address of the relocated PE/COFF image
|
||||
ImageSize - The size of the relocated PE/COFF image
|
||||
EntryPoint - The entry point of the relocated PE/COFF image
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The file was loaded and relocated
|
||||
EFI_OUT_OF_RESOURCES - There was not enough memory to load and relocate the PE/COFF file
|
||||
|
||||
--*/
|
||||
typedef struct {
|
||||
UNIX_PEI_LOAD_FILE PeiLoadFileService;
|
||||
} UNIX_PEI_LOAD_FILE_PPI;
|
||||
|
||||
extern EFI_GUID gUnixPeiLoadFilePpiGuid;
|
||||
|
||||
#endif
|
56
UnixPkg/Include/Ppi/UnixThunk.h
Normal file
56
UnixPkg/Include/Ppi/UnixThunk.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
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.
|
||||
|
||||
Module Name:
|
||||
|
||||
UnixThunk.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Unix Thunk interface PPI
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UNIX_PEI_UNIX_THUNK_H__
|
||||
#define __UNIX_PEI_UNIX_THUNK_H__
|
||||
|
||||
#include <UnixDxe.h>
|
||||
|
||||
#define PEI_UNIX_THUNK_PPI_GUID \
|
||||
{ \
|
||||
0xf2f830f2, 0x8985, 0x11db, {0x80, 0x6b, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
typedef
|
||||
VOID *
|
||||
(EFIAPI *PEI_UNIX_THUNK_INTERFACE) (
|
||||
VOID
|
||||
);
|
||||
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Export of EFI_UNIX_THUNK_PROTOCOL from the Unix SEC.
|
||||
|
||||
Arguments:
|
||||
InterfaceBase - Address of the EFI_UNIX_THUNK_PROTOCOL
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Data returned
|
||||
|
||||
--*/
|
||||
typedef struct {
|
||||
PEI_UNIX_THUNK_INTERFACE UnixThunk;
|
||||
} PEI_UNIX_THUNK_PPI;
|
||||
|
||||
extern EFI_GUID gPeiUnixThunkPpiGuid;
|
||||
|
||||
#endif
|
142
UnixPkg/Include/Protocol/UnixIo.h
Normal file
142
UnixPkg/Include/Protocol/UnixIo.h
Normal file
@@ -0,0 +1,142 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2004 - 2006, Intel Corporation
|
||||
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.
|
||||
|
||||
Module Name:
|
||||
|
||||
UnixIo.h
|
||||
|
||||
Abstract:
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _UNIX_IO_H_
|
||||
#define _UNIX_IO_H_
|
||||
|
||||
#define EFI_UNIX_IO_PROTOCOL_GUID \
|
||||
{ \
|
||||
0xf2e23f54, 0x8985, 0x11db, {0xac, 0x79, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
EFI_UNIX_THUNK_PROTOCOL *UnixThunk;
|
||||
EFI_GUID *TypeGuid;
|
||||
UINT16 *EnvString;
|
||||
UINT16 InstanceNumber;
|
||||
} EFI_UNIX_IO_PROTOCOL;
|
||||
|
||||
extern EFI_GUID gEfiUnixIoProtocolGuid;
|
||||
|
||||
//
|
||||
// The following GUIDs are used in EFI_UNIX_IO_PROTOCOL_GUID
|
||||
// Device paths. They map 1:1 with UNIX envirnment variables. The variables
|
||||
// define what virtual hardware the emulator/UnixBusDriver will produce.
|
||||
//
|
||||
//
|
||||
// EFI_UNIX_VIRTUAL_DISKS
|
||||
//
|
||||
#define EFI_UNIX_VIRTUAL_DISKS_GUID \
|
||||
{ \
|
||||
0xf2ba331a, 0x8985, 0x11db, {0xa4, 0x06, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiUnixVirtualDisksGuid;
|
||||
|
||||
//
|
||||
// EFI_UNIX_PHYSICAL_DISKS
|
||||
//
|
||||
#define EFI_UNIX_PHYSICAL_DISKS_GUID \
|
||||
{ \
|
||||
0xf2bdcc96, 0x8985, 0x11db, {0x87, 0x19, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiUnixPhysicalDisksGuid;
|
||||
|
||||
//
|
||||
// EFI_UNIX_FILE_SYSTEM
|
||||
//
|
||||
#define EFI_UNIX_FILE_SYSTEM_GUID \
|
||||
{ \
|
||||
0xf2c16b9e, 0x8985, 0x11db, {0x92, 0xc8, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiUnixFileSystemGuid;
|
||||
|
||||
//
|
||||
// EFI_WIN_NT_SERIAL_PORT
|
||||
//
|
||||
#define EFI_UNIX_SERIAL_PORT_GUID \
|
||||
{ \
|
||||
0x6d3a727d, 0x66c8, 0x4d19, {0x87, 0xe6, 0x2, 0x15, 0x86, 0x14, 0x90, 0xf3} \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiUnixSerialPortGuid;
|
||||
|
||||
//
|
||||
// EFI_UNIX_UGA
|
||||
//
|
||||
#define EFI_UNIX_UGA_GUID \
|
||||
{ \
|
||||
0xf2c8b80e, 0x8985, 0x11db, {0x93, 0xf1, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiUnixUgaGuid;
|
||||
|
||||
//
|
||||
// EFI_UNIX_GOP
|
||||
//
|
||||
#define EFI_UNIX_GOP_GUID \
|
||||
{ \
|
||||
0xbace07c2, 0x8987, 0x11db, {0xa5, 0x9a, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiUnixGopGuid;
|
||||
|
||||
//
|
||||
// EFI_UNIX_CONSOLE
|
||||
//
|
||||
#define EFI_UNIX_CONSOLE_GUID \
|
||||
{ \
|
||||
0xf2cc5d06, 0x8985, 0x11db, {0xbb, 0x19, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiUnixConsoleGuid;
|
||||
|
||||
//
|
||||
// EFI_UNIX_MEMORY
|
||||
//
|
||||
#define EFI_UNIX_MEMORY_GUID \
|
||||
{ \
|
||||
0xf2d006cc, 0x8985, 0x11db, {0xa4, 0x72, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiUnixMemoryGuid;
|
||||
|
||||
//
|
||||
// EFI_UNIX_CPU_MODEL
|
||||
//
|
||||
#define EFI_UNIX_CPU_MODEL_GUID \
|
||||
{ \
|
||||
0xf2d3b330, 0x8985, 0x11db, {0x8a, 0xa3, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiUnixCPUModelGuid;
|
||||
|
||||
//
|
||||
// EFI_UNIX_CPU_SPEED
|
||||
//
|
||||
#define EFI_UNIX_CPU_SPEED_GUID \
|
||||
{ \
|
||||
0xf2d74e5a, 0x8985, 0x11db, {0x97, 0x05, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiUnixCPUSpeedGuid;
|
||||
|
||||
#endif
|
244
UnixPkg/Include/Protocol/UnixThunk.h
Normal file
244
UnixPkg/Include/Protocol/UnixThunk.h
Normal file
@@ -0,0 +1,244 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2004, Intel Corporation
|
||||
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.
|
||||
|
||||
Module Name:
|
||||
|
||||
UnixThunk.h
|
||||
|
||||
Abstract:
|
||||
|
||||
This protocol allows an EFI driver in the Unix emulation environment
|
||||
to make Posix calls.
|
||||
|
||||
NEVER make an Unix call directly, always make the call via this protocol.
|
||||
|
||||
There are no This pointers on the protocol member functions as they map
|
||||
exactly into Unix system calls.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _UNIX_THUNK_H_
|
||||
#define _UNIX_THUNK_H_
|
||||
|
||||
#include <sys/termios.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/dir.h>
|
||||
#include <unistd.h>
|
||||
#include <poll.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <time.h>
|
||||
#include <signal.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <termio.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/vfs.h>
|
||||
#include <utime.h>
|
||||
|
||||
#define EFI_UNIX_THUNK_PROTOCOL_GUID \
|
||||
{ \
|
||||
0xf2e98868, 0x8985, 0x11db, {0x9a, 0x59, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
typedef
|
||||
VOID
|
||||
(*UnixSleep) (
|
||||
unsigned long Milliseconds
|
||||
);
|
||||
|
||||
typedef
|
||||
VOID
|
||||
(*UnixExit) (
|
||||
int status // exit code for all threads
|
||||
);
|
||||
|
||||
typedef
|
||||
VOID
|
||||
(*UnixSetTimer) (UINT64 PeriodMs, VOID (*CallBack)(UINT64 DeltaMs));
|
||||
typedef
|
||||
VOID
|
||||
(*UnixGetLocalTime) (EFI_TIME *Time);
|
||||
typedef
|
||||
struct tm *
|
||||
(*UnixGmTime)(const time_t *timep);
|
||||
typedef
|
||||
long
|
||||
(*UnixGetTimeZone)(void);
|
||||
typedef
|
||||
int
|
||||
(*UnixGetDayLight)(void);
|
||||
typedef
|
||||
int
|
||||
(*UnixPoll)(struct pollfd *pfd, int nfds, int timeout);
|
||||
typedef
|
||||
int
|
||||
(*UnixRead) (int fd, void *buf, int count);
|
||||
typedef
|
||||
int
|
||||
(*UnixWrite) (int fd, const void *buf, int count);
|
||||
typedef
|
||||
char *
|
||||
(*UnixGetenv) (const char *var);
|
||||
typedef
|
||||
int
|
||||
(*UnixOpen) (const char *name, int flags, int mode);
|
||||
typedef
|
||||
long int
|
||||
(*UnixSeek) (int fd, long int off, int whence);
|
||||
typedef
|
||||
int
|
||||
(*UnixFtruncate) (int fd, long int len);
|
||||
typedef
|
||||
int
|
||||
(*UnixClose) (int fd);
|
||||
|
||||
typedef
|
||||
int
|
||||
(*UnixMkdir)(const char *pathname, mode_t mode);
|
||||
typedef
|
||||
int
|
||||
(*UnixRmDir)(const char *pathname);
|
||||
typedef
|
||||
int
|
||||
(*UnixUnLink)(const char *pathname);
|
||||
typedef
|
||||
int
|
||||
(*UnixGetErrno)(VOID);
|
||||
typedef
|
||||
DIR *
|
||||
(*UnixOpenDir)(const char *pathname);
|
||||
typedef
|
||||
void
|
||||
(*UnixRewindDir)(DIR *dir);
|
||||
typedef
|
||||
struct dirent *
|
||||
(*UnixReadDir)(DIR *dir);
|
||||
typedef
|
||||
int
|
||||
(*UnixCloseDir)(DIR *dir);
|
||||
typedef
|
||||
int
|
||||
(*UnixStat)(const char *path, struct stat *buf);
|
||||
typedef
|
||||
int
|
||||
(*UnixStatFs)(const char *path, struct statfs *buf);
|
||||
typedef
|
||||
int
|
||||
(*UnixRename)(const char *oldpath, const char *newpath);
|
||||
typedef
|
||||
time_t
|
||||
(*UnixMkTime)(struct tm *tm);
|
||||
typedef
|
||||
int
|
||||
(*UnixFSync)(int fd);
|
||||
typedef
|
||||
int
|
||||
(*UnixChmod)(const char *path, mode_t mode);
|
||||
typedef
|
||||
int
|
||||
(*UnixUTime)(const char *filename, const struct utimbuf *buf);
|
||||
|
||||
struct _EFI_UNIX_UGA_IO_PROTOCOL;
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(*UnixUgaCreate)(struct _EFI_UNIX_UGA_IO_PROTOCOL **UgaIo,
|
||||
CONST CHAR16 *Title);
|
||||
|
||||
typedef
|
||||
int
|
||||
(*UnixTcflush) (int fildes, int queue_selector);
|
||||
|
||||
typedef
|
||||
void
|
||||
(*UnixPerror) (__const char *__s);
|
||||
|
||||
typedef
|
||||
int
|
||||
(*UnixIoCtl) (int fd, unsigned long int __request, ...);
|
||||
|
||||
typedef
|
||||
int
|
||||
(*UnixFcntl) (int __fd, int __cmd, ...);
|
||||
|
||||
typedef
|
||||
int
|
||||
(*UnixCfsetispeed) (struct termios *__termios_p, speed_t __speed);
|
||||
|
||||
typedef
|
||||
int
|
||||
(*UnixCfsetospeed) (struct termios *__termios_p, speed_t __speed);
|
||||
|
||||
typedef
|
||||
int
|
||||
(*UnixTcgetattr) (int __fd, struct termios *__termios_p);
|
||||
|
||||
typedef
|
||||
int
|
||||
(*UnixTcsetattr) (int __fd, int __optional_actions,
|
||||
__const struct termios *__termios_p);
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
#define EFI_UNIX_THUNK_PROTOCOL_SIGNATURE EFI_SIGNATURE_32 ('L', 'N', 'X', 'T')
|
||||
|
||||
typedef struct _EFI_UNIX_THUNK_PROTOCOL {
|
||||
UINT64 Signature;
|
||||
|
||||
UnixSleep Sleep;
|
||||
UnixExit Exit;
|
||||
UnixSetTimer SetTimer;
|
||||
UnixGetLocalTime GetLocalTime;
|
||||
UnixGmTime GmTime;
|
||||
UnixGetTimeZone GetTimeZone;
|
||||
UnixGetDayLight GetDayLight;
|
||||
UnixPoll Poll;
|
||||
UnixRead Read;
|
||||
UnixWrite Write;
|
||||
UnixGetenv Getenv;
|
||||
UnixOpen Open;
|
||||
UnixSeek Lseek;
|
||||
UnixFtruncate FTruncate;
|
||||
UnixClose Close;
|
||||
UnixMkdir MkDir;
|
||||
UnixRmDir RmDir;
|
||||
UnixUnLink UnLink;
|
||||
UnixGetErrno GetErrno;
|
||||
UnixOpenDir OpenDir;
|
||||
UnixRewindDir RewindDir;
|
||||
UnixReadDir ReadDir;
|
||||
UnixCloseDir CloseDir;
|
||||
UnixStat Stat;
|
||||
UnixStatFs StatFs;
|
||||
UnixRename Rename;
|
||||
UnixMkTime MkTime;
|
||||
UnixFSync FSync;
|
||||
UnixChmod Chmod;
|
||||
UnixUTime UTime;
|
||||
UnixTcflush Tcflush;
|
||||
UnixUgaCreate UgaCreate;
|
||||
UnixPerror Perror;
|
||||
UnixIoCtl IoCtl;
|
||||
UnixFcntl Fcntl;
|
||||
UnixCfsetispeed Cfsetispeed;
|
||||
UnixCfsetospeed Cfsetospeed;
|
||||
UnixTcgetattr Tcgetattr;
|
||||
UnixTcsetattr Tcsetattr;
|
||||
} EFI_UNIX_THUNK_PROTOCOL;
|
||||
|
||||
extern EFI_GUID gEfiUnixThunkProtocolGuid;
|
||||
|
||||
#endif
|
72
UnixPkg/Include/Protocol/UnixUgaIo.h
Normal file
72
UnixPkg/Include/Protocol/UnixUgaIo.h
Normal file
@@ -0,0 +1,72 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Tristan Gingold
|
||||
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.
|
||||
|
||||
Module Name:
|
||||
|
||||
UnixUgaIo.h
|
||||
|
||||
Abstract:
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _UNIX_UGA_IO_H_
|
||||
#define _UNIX_UGA_IO_H_
|
||||
|
||||
#define EFI_UNIX_UGA_IO_PROTOCOL_GUID \
|
||||
{ \
|
||||
0xf2e5e2c6, 0x8985, 0x11db, {0xa1, 0x91, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
||||
}
|
||||
|
||||
struct _EFI_UNIX_UGA_IO_PROTOCOL;
|
||||
typedef struct _EFI_UNIX_UGA_IO_PROTOCOL EFI_UNIX_UGA_IO_PROTOCOL;
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(*UGAClose)(EFI_UNIX_UGA_IO_PROTOCOL *Uga);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(*UGASize)(EFI_UNIX_UGA_IO_PROTOCOL *Uga, UINT32 Width, UINT32 Height);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(*UGACheckKey)(EFI_UNIX_UGA_IO_PROTOCOL *Uga);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(*UGAGetKey)(EFI_UNIX_UGA_IO_PROTOCOL *Uga, EFI_INPUT_KEY *key);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(*UGABlt)(EFI_UNIX_UGA_IO_PROTOCOL *Uga,
|
||||
IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
|
||||
IN EFI_UGA_BLT_OPERATION BltOperation,
|
||||
IN UINTN SourceX,
|
||||
IN UINTN SourceY,
|
||||
IN UINTN DestinationX,
|
||||
IN UINTN DestinationY,
|
||||
IN UINTN Width,
|
||||
IN UINTN Height,
|
||||
IN UINTN Delta OPTIONAL);
|
||||
|
||||
struct _EFI_UNIX_UGA_IO_PROTOCOL {
|
||||
VOID *Private;
|
||||
UGAClose UgaClose;
|
||||
UGASize UgaSize;
|
||||
UGACheckKey UgaCheckKey;
|
||||
UGAGetKey UgaGetKey;
|
||||
UGABlt UgaBlt;
|
||||
};
|
||||
|
||||
|
||||
extern EFI_GUID gEfiUnixUgaIoProtocolGuid;
|
||||
|
||||
#endif
|
36
UnixPkg/Include/UnixDxe.h
Normal file
36
UnixPkg/Include/UnixDxe.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
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.
|
||||
|
||||
Module Name:
|
||||
UnixDxe.h
|
||||
|
||||
Abstract:
|
||||
Public include file for the Unix Library
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UNIX_DXE_H__
|
||||
#define __UNIX_DXE_H__
|
||||
|
||||
#include <Ppi/UnixPeiLoadFile.h>
|
||||
#include <Ppi/UnixAutoScan.h>
|
||||
#include <Ppi/UnixThunk.h>
|
||||
#include <Ppi/UnixFwh.h>
|
||||
|
||||
//
|
||||
// UnixIo.h depends on UnixThunk.h
|
||||
//
|
||||
|
||||
#include <Common/UnixInclude.h>
|
||||
#include <Protocol/UnixThunk.h>
|
||||
#include <Protocol/UnixIo.h>
|
||||
|
||||
#endif
|
30
UnixPkg/Include/UnixPeim.h
Normal file
30
UnixPkg/Include/UnixPeim.h
Normal file
@@ -0,0 +1,30 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
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.
|
||||
|
||||
Module Name:
|
||||
UnixPeim.h
|
||||
|
||||
Abstract:
|
||||
Public include file for the Unix Library
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef __UNIX_PEIM_H__
|
||||
#define __UNIX_PEIM_H__
|
||||
|
||||
#include <Ppi/UnixPeiLoadFile.h>
|
||||
#include <Ppi/UnixAutoScan.h>
|
||||
#include <Ppi/UnixThunk.h>
|
||||
#include <Ppi/UnixFwh.h>
|
||||
|
||||
#include <Protocol/UnixThunk.h>
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user