UnixPkg: Added missing EFIAPI for many Gasket functions

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10923 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jljusten 2010-10-13 07:06:28 +00:00
parent a780c9424b
commit 124f761f02
5 changed files with 594 additions and 231 deletions

View File

@ -2,13 +2,13 @@
Copyright (c) 2004 - 2009, Intel Corporation. All rights reserved.<BR>
Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
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.
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:
@ -58,7 +58,7 @@ Abstract:
#else
#include <termio.h>
#include <sys/vfs.h>
#endif
#endif
#include <utime.h>
@ -79,21 +79,21 @@ Abstract:
#if __DARWIN_64_BIT_INO_T
typedef struct stat_fix { \
dev_t st_dev; /* [XSI] ID of device containing file */
mode_t st_mode; /* [XSI] Mode of file (see below) */
nlink_t st_nlink; /* [XSI] Number of hard links */
__darwin_ino64_t st_ino; /* [XSI] File serial number */
uid_t st_uid; /* [XSI] User ID of the file */
gid_t st_gid; /* [XSI] Group ID of the file */
dev_t st_rdev; /* [XSI] Device ID */
__DARWIN_STRUCT_STAT64_TIMES
off_t st_size; /* [XSI] file size, in bytes */
blkcnt_t st_blocks; /* [XSI] blocks allocated for file */
blksize_t st_blksize; /* [XSI] optimal blocksize for I/O */
__uint32_t st_flags; /* user defined flags for file */
__uint32_t st_gen; /* file generation number */
__int32_t st_lspare; /* RESERVED: DO NOT USE! */
__int64_t st_qspare[2]; /* RESERVED: DO NOT USE! */
dev_t st_dev; /* [XSI] ID of device containing file */
mode_t st_mode; /* [XSI] Mode of file (see below) */
nlink_t st_nlink; /* [XSI] Number of hard links */
__darwin_ino64_t st_ino; /* [XSI] File serial number */
uid_t st_uid; /* [XSI] User ID of the file */
gid_t st_gid; /* [XSI] Group ID of the file */
dev_t st_rdev; /* [XSI] Device ID */
__DARWIN_STRUCT_STAT64_TIMES
off_t st_size; /* [XSI] file size, in bytes */
blkcnt_t st_blocks; /* [XSI] blocks allocated for file */
blksize_t st_blksize; /* [XSI] optimal blocksize for I/O */
__uint32_t st_flags; /* user defined flags for file */
__uint32_t st_gen; /* file generation number */
__int32_t st_lspare; /* RESERVED: DO NOT USE! */
__int64_t st_qspare[2]; /* RESERVED: DO NOT USE! */
} STAT_FIX;
#else /* !__DARWIN_64_BIT_INO_T */
@ -133,7 +133,7 @@ typedef struct stat_fix {
#pragma pack(4)
#endif
#else
#else
typedef struct stat STAT_FIX;
@ -146,192 +146,192 @@ typedef struct stat_fix {
typedef
VOID
(*UnixSleep) (
(EFIAPI *UnixSleep) (
unsigned long Milliseconds
);
typedef
VOID
(*UnixExit) (
(EFIAPI *UnixExit) (
int status // exit code for all threads
);
typedef
VOID
(*UnixSetTimer) (
UINT64 PeriodMs,
VOID (*CallBack)(UINT64 DeltaMs)
(EFIAPI *UnixSetTimer) (
UINT64 PeriodMs,
VOID (EFIAPI *CallBack)(UINT64 DeltaMs)
);
typedef
VOID
(*UnixGetLocalTime) (
(EFIAPI *UnixGetLocalTime) (
EFI_TIME *Time
);
typedef
struct tm *
(*UnixGmTime)(
(EFIAPI *UnixGmTime)(
const time_t *timep
);
typedef
long
(*UnixGetTimeZone)(
(EFIAPI *UnixGetTimeZone)(
void
);
typedef
int
(*UnixGetDayLight)(
(EFIAPI *UnixGetDayLight)(
void
);
typedef
int
(*UnixPoll)(
struct pollfd *pfd,
unsigned int nfds,
(EFIAPI *UnixPoll)(
struct pollfd *pfd,
unsigned int nfds,
int timeout
);
typedef
long
(*UnixRead) (
int fd,
void *buf,
(EFIAPI *UnixRead) (
int fd,
void *buf,
int count
);
typedef
long
(*UnixWrite) (
int fd,
const void *buf,
(EFIAPI *UnixWrite) (
int fd,
const void *buf,
int count
);
typedef
char *
(*UnixGetenv) (const char *var);
(EFIAPI *UnixGetenv) (const char *var);
typedef
int
(*UnixOpen) (const char *name, int flags, int mode);
(EFIAPI *UnixOpen) (const char *name, int flags, int mode);
typedef
off_t
(*UnixSeek) (int fd, off_t off, int whence);
(EFIAPI *UnixSeek) (int fd, off_t off, int whence);
typedef
int
(*UnixFtruncate) (int fd, long int len);
(EFIAPI *UnixFtruncate) (int fd, long int len);
typedef
int
(*UnixClose) (int fd);
(EFIAPI *UnixClose) (int fd);
typedef
int
(*UnixMkdir)(const char *pathname, mode_t mode);
(EFIAPI *UnixMkdir)(const char *pathname, mode_t mode);
typedef
int
(*UnixRmDir)(const char *pathname);
(EFIAPI *UnixRmDir)(const char *pathname);
typedef
int
(*UnixUnLink)(const char *pathname);
(EFIAPI *UnixUnLink)(const char *pathname);
typedef
int
(*UnixGetErrno)(VOID);
(EFIAPI *UnixGetErrno)(VOID);
typedef
DIR *
(*UnixOpenDir)(const char *pathname);
(EFIAPI *UnixOpenDir)(const char *pathname);
typedef
void
(*UnixRewindDir)(DIR *dir);
(EFIAPI *UnixRewindDir)(DIR *dir);
typedef
struct dirent *
(*UnixReadDir)(DIR *dir);
(EFIAPI *UnixReadDir)(DIR *dir);
typedef
int
(*UnixCloseDir)(DIR *dir);
(EFIAPI *UnixCloseDir)(DIR *dir);
typedef
int
(*UnixStat)(const char *path, STAT_FIX *buf);
(EFIAPI *UnixStat)(const char *path, STAT_FIX *buf);
typedef
int
(*UnixStatFs)(const char *path, struct statfs *buf);
(EFIAPI *UnixStatFs)(const char *path, struct statfs *buf);
typedef
int
(*UnixRename)(const char *oldpath, const char *newpath);
(EFIAPI *UnixRename)(const char *oldpath, const char *newpath);
typedef
time_t
(*UnixMkTime)(struct tm *tm);
(EFIAPI *UnixMkTime)(struct tm *tm);
typedef
int
(*UnixFSync)(int fd);
(EFIAPI *UnixFSync)(int fd);
typedef
int
(*UnixChmod)(const char *path, mode_t mode);
(EFIAPI *UnixChmod)(const char *path, mode_t mode);
typedef
int
(*UnixUTime)(const char *filename, const struct utimbuf *buf);
(EFIAPI *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,
(EFIAPI *UnixUgaCreate)(struct _EFI_UNIX_UGA_IO_PROTOCOL **UgaIo,
CONST CHAR16 *Title);
typedef
int
(*UnixTcflush) (int fildes, int queue_selector);
(EFIAPI *UnixTcflush) (int fildes, int queue_selector);
typedef
void
(*UnixPerror) (__const char *__s);
(EFIAPI *UnixPerror) (__const char *__s);
typedef
int
typedef
int
#if __CYGWIN__
(*UnixIoCtl) (int fd, int __request, UINTN Arg);
(EFIAPI *UnixIoCtl) (int fd, int __request, UINTN Arg);
#else
(*UnixIoCtl) (int fd, unsigned long int __request, void *Arg);
(EFIAPI *UnixIoCtl) (int fd, unsigned long int __request, void *Arg);
#endif
typedef
int
(*UnixFcntl) (int __fd, int __cmd, void *Arg);
typedef
int
(EFIAPI *UnixFcntl) (int __fd, int __cmd, void *Arg);
typedef
int
(*UnixCfsetispeed) (struct termios *__termios_p, speed_t __speed);
typedef
int
(*UnixCfsetospeed) (struct termios *__termios_p, speed_t __speed);
int
(EFIAPI *UnixCfsetispeed) (struct termios *__termios_p, speed_t __speed);
typedef
int
(*UnixTcgetattr) (int __fd, struct termios *__termios_p);
int
(EFIAPI *UnixCfsetospeed) (struct termios *__termios_p, speed_t __speed);
typedef
int
(*UnixTcsetattr) (int __fd, int __optional_actions,
typedef
int
(EFIAPI *UnixTcgetattr) (int __fd, struct termios *__termios_p);
typedef
int
(EFIAPI *UnixTcsetattr) (int __fd, int __optional_actions,
__const struct termios *__termios_p);
@ -339,20 +339,20 @@ int
// Worker functions to enable source level debug in the emulator
//
typedef
typedef
RETURN_STATUS
(EFIAPI *UnixPeCoffGetEntryPoint) (
IN VOID *Pe32Data,
IN OUT VOID **EntryPoint
);
typedef
typedef
VOID
(EFIAPI *UnixPeCoffRelocateImageExtraAction) (
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
);
typedef
typedef
VOID
(EFIAPI *UnixPeCoffLoaderUnloadImageExtraAction) (
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
@ -407,8 +407,8 @@ typedef struct _EFI_UNIX_THUNK_PROTOCOL {
UnixPeCoffGetEntryPoint PeCoffGetEntryPoint;
UnixPeCoffRelocateImageExtraAction PeCoffRelocateImageExtraAction;
UnixPeCoffLoaderUnloadImageExtraAction PeCoffUnloadImageExtraAction;
} EFI_UNIX_THUNK_PROTOCOL;
extern EFI_GUID gEfiUnixThunkProtocolGuid;

View File

@ -1,13 +1,13 @@
/*++
Copyright (c) 2006 - 2008, 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
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.
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:
@ -15,7 +15,7 @@ Module Name:
Abstract:
Unix Library
Unix Library
--*/
#include "PiDxe.h"
@ -27,6 +27,7 @@ Abstract:
EFI_UNIX_THUNK_PROTOCOL *gUnix;
EFI_STATUS
EFIAPI
UnixLibConstructor (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable

View File

@ -1,13 +1,13 @@
/*++
Copyright (c) 2006 - 2009, 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
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.
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:
@ -109,6 +109,7 @@ extern EFI_HII_HANDLE mHiiHandle;
// Prototypes
//
EFI_STATUS
EFIAPI
MiscSubclassDriverEntryPoint (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable

View File

@ -1,7 +1,7 @@
/** @file
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
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
@ -26,92 +26,421 @@
// Gasket functions for EFI_UNIX_THUNK_PROTOCOL
//
void GasketmsSleep (unsigned long Milliseconds);
void Gasketexit (int status);
void GasketSetTimer (UINT64 PeriodMs, VOID (*CallBack)(UINT64 DeltaMs));
void GasketGetLocalTime (EFI_TIME *Time);
struct tm *Gasketgmtime (const time_t *clock);
long GasketGetTimeZone (void);
int GasketGetDayLight (void);
int Gasketpoll (struct pollfd *pfd, unsigned int nfds, int timeout);
long Gasketread (int fd, void *buf, int count);
long Gasketwrite (int fd, const void *buf, int count);
char *Gasketgetenv (const char *name);
int Gasketopen (const char *name, int flags, int mode);
off_t Gasketlseek (int fd, off_t off, int whence);
int Gasketftruncate (int fd, long int len);
int Gasketclose (int fd);
int Gasketmkdir (const char *pathname, mode_t mode);
int Gasketrmdir (const char *pathname);
int Gasketunlink (const char *pathname);
int GasketGetErrno (void);
DIR *Gasketopendir (const char *pathname);
void Gasketrewinddir (DIR *dir);
struct dirent *Gasketreaddir (DIR *dir);
int Gasketclosedir (DIR *dir);
int Gasketstat (const char *path, STAT_FIX *buf);
int Gasketstatfs (const char *path, struct statfs *buf);
int Gasketrename (const char *oldpath, const char *newpath);
time_t Gasketmktime (struct tm *tm);
int Gasketfsync (int fd);
int Gasketchmod (const char *path, mode_t mode);
int Gasketutime (const char *filename, const struct utimbuf *buf);
int Gaskettcflush (int fildes, int queue_selector);
EFI_STATUS GasketUgaCreate(struct _EFI_UNIX_UGA_IO_PROTOCOL **UgaIo, CONST CHAR16 *Title);
void Gasketperror (__const char *__s);
void
EFIAPI
GasketmsSleep (unsigned long Milliseconds);
void
EFIAPI
Gasketexit (
int status
);
void
EFIAPI
GasketSetTimer (
UINT64 PeriodMs,
VOID (*CallBack)(UINT64 DeltaMs)
);
void
EFIAPI
GasketGetLocalTime (
EFI_TIME *Time
);
struct tm *
EFIAPI
Gasketgmtime (
const time_t *clock
);
long
EFIAPI
GasketGetTimeZone (
void
);
int
EFIAPI
GasketGetDayLight (
void
);
int
EFIAPI
Gasketpoll (
struct pollfd *pfd,
unsigned int nfds,
int timeout
);
long
EFIAPI
Gasketread (
int fd,
void *buf,
int count);
long
EFIAPI
Gasketwrite (
int fd,
const void *buf,
int count
);
char *
EFIAPI
Gasketgetenv (
const char *name
);
int
EFIAPI
Gasketopen (
const char *name,
int flags,
int mode
);
off_t
EFIAPI
Gasketlseek (
int fd,
off_t off,
int whence
);
int
EFIAPI
Gasketftruncate (
int fd,
long int len
);
int
EFIAPI
Gasketclose (
int fd
);
int
EFIAPI
Gasketmkdir (
const char *pathname,
mode_t mode
);
int
EFIAPI
Gasketrmdir (
const char *pathname
);
int
EFIAPI
Gasketunlink (
const char *pathname
);
int
EFIAPI
GasketGetErrno (
void
);
DIR *
EFIAPI
Gasketopendir (
const char *pathname
);
void
EFIAPI
Gasketrewinddir (
DIR *dir
);
struct dirent *
EFIAPI
Gasketreaddir (
DIR *dir
);
int
EFIAPI
Gasketclosedir (
DIR *dir
);
int
EFIAPI
Gasketstat (const char *path, STAT_FIX *buf);
int
EFIAPI
Gasketstatfs (const char *path, struct statfs *buf);
int
EFIAPI
Gasketrename (
const char *oldpath,
const char *newpath
);
time_t
EFIAPI
Gasketmktime (
struct tm *tm
);
int
EFIAPI
Gasketfsync (
int fd
);
int
EFIAPI
Gasketchmod (
const char *path,
mode_t mode
);
int
EFIAPI
Gasketutime (
const char *filename,
const struct utimbuf *buf
);
int
EFIAPI
Gaskettcflush (
int fildes,
int queue_selector
);
EFI_STATUS
EFIAPI
GasketUgaCreate (
struct _EFI_UNIX_UGA_IO_PROTOCOL **UgaIo,
CONST CHAR16 *Title
);
void
EFIAPI
Gasketperror (
__const char *__s
);
//
// ... is always an int or pointer to device specific data structure
//
int Gasketioctl (int fd, unsigned long int __request, void *Arg);
int Gasketfcntl (int __fd, int __cmd, void *Arg);
int Gasketcfsetispeed (struct termios *__termios_p, speed_t __speed);
int Gasketcfsetospeed (struct termios *__termios_p, speed_t __speed);
int Gaskettcgetattr (int __fd, struct termios *__termios_p);
int Gaskettcsetattr (int __fd, int __optional_actions, __const struct termios *__termios_p);
int Gasketsigaction (int sig, const struct sigaction *act, struct sigaction *oact);
int
EFIAPI
Gasketioctl (
int fd,
unsigned long int __request,
void *Arg
);
int
EFIAPI
Gasketfcntl (
int __fd,
int __cmd,
void *Arg
);
int
EFIAPI
Gasketcfsetispeed (
struct termios *__termios_p,
speed_t __speed
);
int
EFIAPI
Gasketcfsetospeed (
struct termios *__termios_p,
speed_t __speed
);
int
EFIAPI
Gaskettcgetattr (
int __fd,
struct termios *__termios_p
);
int
EFIAPI
Gaskettcsetattr (
int __fd,
int __optional_actions,
__const struct termios *__termios_p
);
int
EFIAPI
Gasketsigaction (
int sig,
const struct sigaction *act,
struct sigaction *oact
);
RETURN_STATUS
EFIAPI
GasketUnixPeCoffGetEntryPoint (
IN VOID *Pe32Data,
IN OUT VOID **EntryPoint
);
VOID
EFIAPI
GasketUnixPeCoffRelocateImageExtraAction (
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
);
VOID
EFIAPI
GasketUnixPeCoffUnloadImageExtraAction (
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
);
UINTN GasketVoid (void *api);
UINTN GasketUintn (void *api, UINTN a);
UINTN GasketUintnUintn (void *api, UINTN a, UINTN b);
UINTN GasketUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c);
UINTN GasketUintnUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c, UINTN d);
UINTN GasketUintn10Args (void *api, UINTN a, UINTN b, UINTN c, UINTN d, UINTN e, UINTN f, UINTN g, UINTN h, UINTN i, UINTN j);
UINTN GasketUint64Uintn (void *api, UINT64 a, UINTN b);
UINT64 GasketUintnUint64Uintn (void *api, UINTN a, UINT64 b, UINTN c);
UINTN GasketUintnUint16 (void *api, UINTN a, UINT16 b);
typedef void (*CALL_BACK) (UINT64 Delta);
UINTN ReverseGasketUint64 (CALL_BACK CallBack, UINT64 a);
UINTN
EFIAPI
GasketVoid (
void *api
);
UINTN
EFIAPI
GasketUintn (
void *api,
UINTN a
);
UINTN
EFIAPI
GasketUintnUintn (
void *api,
UINTN a,
UINTN b
);
UINTN
EFIAPI
GasketUintnUintnUintn (
void *api,
UINTN a,
UINTN b,
UINTN c
);
UINTN
EFIAPI
GasketUintnUintnUintnUintn (
void *api,
UINTN a,
UINTN b,
UINTN c,
UINTN d
);
UINTN
EFIAPI
GasketUintn10Args (
void *api,
UINTN a,
UINTN b,
UINTN c,
UINTN d,
UINTN e,
UINTN f,
UINTN g,
UINTN h,
UINTN i,
UINTN j
);
UINTN
EFIAPI
GasketUint64Uintn (
void *api,
UINT64 a,
UINTN b);
UINT64
EFIAPI
GasketUintnUint64Uintn (
void *api,
UINTN a,
UINT64 b,
UINTN c
);
UINTN
EFIAPI
GasketUintnUint16 (
void *api,
UINTN a,
UINT16 b
);
typedef
void
(*CALL_BACK) (
UINT64 Delta
);
UINTN
ReverseGasketUint64 (
CALL_BACK CallBack,
UINT64 a
);
//
// Gasket functions for EFI_UNIX_UGA_IO_PROTOCOL
//
EFI_STATUS EFIAPI GasketUgaClose (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo);
EFI_STATUS EFIAPI GasketUgaSize (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo, UINT32 Width, UINT32 Height);
EFI_STATUS EFIAPI GasketUgaCheckKey (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo);
EFI_STATUS EFIAPI GasketUgaGetKey (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo, EFI_INPUT_KEY *key);
EFI_STATUS EFIAPI GasketUgaBlt (
EFI_STATUS
EFIAPI
GasketUgaClose (
EFI_UNIX_UGA_IO_PROTOCOL *UgaIo
);
EFI_STATUS
EFIAPI
GasketUgaSize (
EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
UINT32 Width,
UINT32 Height
);
EFI_STATUS
EFIAPI
GasketUgaCheckKey (
EFI_UNIX_UGA_IO_PROTOCOL *UgaIo
);
EFI_STATUS
EFIAPI
GasketUgaGetKey (
EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
EFI_INPUT_KEY *key
);
EFI_STATUS
EFIAPI
GasketUgaBlt (
EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
IN EFI_UGA_BLT_OPERATION BltOperation,
@ -124,26 +453,57 @@ EFI_STATUS EFIAPI GasketUgaBlt (
IN UINTN Delta OPTIONAL
);
EFI_STATUS UgaCreate (EFI_UNIX_UGA_IO_PROTOCOL **Uga, CONST CHAR16 *Title);
EFI_STATUS
EFIAPI
UgaCreate (
EFI_UNIX_UGA_IO_PROTOCOL **Uga,
CONST CHAR16 *Title
);
//
// Gasket functions for EFI_UNIX_UGA_IO_PROTOCOL
//
EFI_STATUS UgaClose (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo);
EFI_STATUS UgaSize(EFI_UNIX_UGA_IO_PROTOCOL *UgaIo, UINT32 Width, UINT32 Height);
EFI_STATUS UgaCheckKey(EFI_UNIX_UGA_IO_PROTOCOL *UgaIo);
EFI_STATUS UgaGetKey (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo, EFI_INPUT_KEY *key);
EFI_STATUS UgaBlt (EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
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
EFI_STATUS
EFIAPI
UgaClose (
EFI_UNIX_UGA_IO_PROTOCOL *UgaIo
);
EFI_STATUS
EFIAPI
UgaSize(
EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
UINT32 Width,
UINT32 Height
);
EFI_STATUS
EFIAPI
UgaCheckKey(
EFI_UNIX_UGA_IO_PROTOCOL *UgaIo
);
EFI_STATUS
EFIAPI
UgaGetKey (
EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
EFI_INPUT_KEY *key
);
EFI_STATUS
EFIAPI
UgaBlt (
EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
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
);

View File

@ -1,13 +1,13 @@
/*++
Copyright (c) 2004, 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
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.
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:
@ -18,7 +18,7 @@ Abstract:
UNIX Emulation Timer Architectural Protocol Driver as defined in DXE CIS
This Timer module uses an UNIX Thread to simulate the timer-tick driven
timer service. In the future, the Thread creation should possibly be
timer service. In the future, the Thread creation should possibly be
abstracted by the CPU architectural protocol
--*/
@ -62,6 +62,7 @@ UINT64 mTimerPeriodMs;
VOID
EFIAPI
TimerCallback (UINT64 DeltaMs)
/*++
@ -115,38 +116,38 @@ UnixTimerDriverRegisterHandler (
Routine Description:
This function registers the handler NotifyFunction so it is called every time
the timer interrupt fires. It also passes the amount of time since the last
handler call to the NotifyFunction. If NotifyFunction is NULL, then the
handler is unregistered. If the handler is registered, then EFI_SUCCESS is
returned. If the CPU does not support registering a timer interrupt handler,
then EFI_UNSUPPORTED is returned. If an attempt is made to register a handler
when a handler is already registered, then EFI_ALREADY_STARTED is returned.
If an attempt is made to unregister a handler when a handler is not registered,
then EFI_INVALID_PARAMETER is returned. If an error occurs attempting to
register the NotifyFunction with the timer interrupt, then EFI_DEVICE_ERROR
This function registers the handler NotifyFunction so it is called every time
the timer interrupt fires. It also passes the amount of time since the last
handler call to the NotifyFunction. If NotifyFunction is NULL, then the
handler is unregistered. If the handler is registered, then EFI_SUCCESS is
returned. If the CPU does not support registering a timer interrupt handler,
then EFI_UNSUPPORTED is returned. If an attempt is made to register a handler
when a handler is already registered, then EFI_ALREADY_STARTED is returned.
If an attempt is made to unregister a handler when a handler is not registered,
then EFI_INVALID_PARAMETER is returned. If an error occurs attempting to
register the NotifyFunction with the timer interrupt, then EFI_DEVICE_ERROR
is returned.
Arguments:
This - The EFI_TIMER_ARCH_PROTOCOL instance.
NotifyFunction - The function to call when a timer interrupt fires. This
function executes at TPL_HIGH_LEVEL. The DXE Core will
register a handler for the timer interrupt, so it can know
how much time has passed. This information is used to
NotifyFunction - The function to call when a timer interrupt fires. This
function executes at TPL_HIGH_LEVEL. The DXE Core will
register a handler for the timer interrupt, so it can know
how much time has passed. This information is used to
signal timer based events. NULL will unregister the handler.
Returns:
Returns:
EFI_SUCCESS - The timer handler was registered.
EFI_UNSUPPORTED - The platform does not support timer interrupts.
EFI_ALREADY_STARTED - NotifyFunction is not NULL, and a handler is already
EFI_ALREADY_STARTED - NotifyFunction is not NULL, and a handler is already
registered.
EFI_INVALID_PARAMETER - NotifyFunction is NULL, and a handler was not
EFI_INVALID_PARAMETER - NotifyFunction is NULL, and a handler was not
previously registered.
EFI_DEVICE_ERROR - The timer handler could not be registered.
@ -186,30 +187,30 @@ UnixTimerDriverSetTimerPeriod (
Routine Description:
This function adjusts the period of timer interrupts to the value specified
by TimerPeriod. If the timer period is updated, then the selected timer
period is stored in EFI_TIMER.TimerPeriod, and EFI_SUCCESS is returned. If
the timer hardware is not programmable, then EFI_UNSUPPORTED is returned.
If an error occurs while attempting to update the timer period, then the
timer hardware will be put back in its state prior to this call, and
EFI_DEVICE_ERROR is returned. If TimerPeriod is 0, then the timer interrupt
is disabled. This is not the same as disabling the CPU's interrupts.
Instead, it must either turn off the timer hardware, or it must adjust the
interrupt controller so that a CPU interrupt is not generated when the timer
interrupt fires.
This function adjusts the period of timer interrupts to the value specified
by TimerPeriod. If the timer period is updated, then the selected timer
period is stored in EFI_TIMER.TimerPeriod, and EFI_SUCCESS is returned. If
the timer hardware is not programmable, then EFI_UNSUPPORTED is returned.
If an error occurs while attempting to update the timer period, then the
timer hardware will be put back in its state prior to this call, and
EFI_DEVICE_ERROR is returned. If TimerPeriod is 0, then the timer interrupt
is disabled. This is not the same as disabling the CPU's interrupts.
Instead, it must either turn off the timer hardware, or it must adjust the
interrupt controller so that a CPU interrupt is not generated when the timer
interrupt fires.
Arguments:
This - The EFI_TIMER_ARCH_PROTOCOL instance.
TimerPeriod - The rate to program the timer interrupt in 100 nS units. If
the timer hardware is not programmable, then EFI_UNSUPPORTED is
returned. If the timer is programmable, then the timer period
will be rounded up to the nearest timer period that is supported
by the timer hardware. If TimerPeriod is set to 0, then the
TimerPeriod - The rate to program the timer interrupt in 100 nS units. If
the timer hardware is not programmable, then EFI_UNSUPPORTED is
returned. If the timer is programmable, then the timer period
will be rounded up to the nearest timer period that is supported
by the timer hardware. If TimerPeriod is set to 0, then the
timer interrupts will be disabled.
Returns:
Returns:
EFI_SUCCESS - The timer period was changed.
@ -245,19 +246,19 @@ UnixTimerDriverGetTimerPeriod (
Routine Description:
This function retrieves the period of timer interrupts in 100 ns units,
returns that value in TimerPeriod, and returns EFI_SUCCESS. If TimerPeriod
is NULL, then EFI_INVALID_PARAMETER is returned. If a TimerPeriod of 0 is
This function retrieves the period of timer interrupts in 100 ns units,
returns that value in TimerPeriod, and returns EFI_SUCCESS. If TimerPeriod
is NULL, then EFI_INVALID_PARAMETER is returned. If a TimerPeriod of 0 is
returned, then the timer is currently disabled.
Arguments:
This - The EFI_TIMER_ARCH_PROTOCOL instance.
TimerPeriod - A pointer to the timer period to retrieve in 100 ns units. If
TimerPeriod - A pointer to the timer period to retrieve in 100 ns units. If
0 is returned, then the timer is currently disabled.
Returns:
Returns:
EFI_SUCCESS - The timer period was returned in TimerPeriod.
@ -283,19 +284,19 @@ UnixTimerDriverGenerateSoftInterrupt (
Routine Description:
This function generates a soft timer interrupt. If the platform does not support soft
timer interrupts, then EFI_UNSUPPORTED is returned. Otherwise, EFI_SUCCESS is returned.
If a handler has been registered through the EFI_TIMER_ARCH_PROTOCOL.RegisterHandler()
service, then a soft timer interrupt will be generated. If the timer interrupt is
enabled when this service is called, then the registered handler will be invoked. The
registered handler should not be able to distinguish a hardware-generated timer
This function generates a soft timer interrupt. If the platform does not support soft
timer interrupts, then EFI_UNSUPPORTED is returned. Otherwise, EFI_SUCCESS is returned.
If a handler has been registered through the EFI_TIMER_ARCH_PROTOCOL.RegisterHandler()
service, then a soft timer interrupt will be generated. If the timer interrupt is
enabled when this service is called, then the registered handler will be invoked. The
registered handler should not be able to distinguish a hardware-generated timer
interrupt from a software-generated timer interrupt.
Arguments:
This - The EFI_TIMER_ARCH_PROTOCOL instance.
Returns:
Returns:
EFI_SUCCESS - The soft timer interrupt was generated.
@ -329,7 +330,7 @@ Returns:
EFI_SUCCESS - Timer Architectural Protocol created
EFI_OUT_OF_RESOURCES - Not enough resources available to initialize driver.
EFI_DEVICE_ERROR - A device error occured attempting to initialize the driver.
--*/