X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkUnixPkg%2FInclude%2FProtocol%2FUnixThunk.h;h=36043a074ca2bcf3d05450764c7c01e0145ee78b;hp=aabb9b130dc2dd363851effd82518f91a7886e0a;hb=21500a434a813b41ac28f66a97e0149b4980f2a1;hpb=c9093a06e72ef16d2f3bd7ce0a2b9a172e9d048c diff --git a/EdkUnixPkg/Include/Protocol/UnixThunk.h b/EdkUnixPkg/Include/Protocol/UnixThunk.h index aabb9b130d..36043a074c 100644 --- a/EdkUnixPkg/Include/Protocol/UnixThunk.h +++ b/EdkUnixPkg/Include/Protocol/UnixThunk.h @@ -1,51 +1,52 @@ -/*++ - -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_ - - -#define EFI_UNIX_THUNK_PROTOCOL_GUID \ - { \ +/*++ + +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 + +#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 +(*UnixSleep) ( + unsigned long Milliseconds + ); + +typedef +VOID +(*UnixExit) ( + int status // exit code for all threads + ); + typedef VOID (*UnixSetTimer) (UINT64 PeriodMs, VOID (*CallBack)(UINT64 DeltaMs)); @@ -138,23 +139,56 @@ EFI_STATUS (*UnixUgaCreate)(struct _EFI_UNIX_UGA_IO_PROTOCOL **UgaIo, CONST CHAR16 *Title); -// -// -// - -#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; +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; + UnixPoll Poll; UnixRead Read; UnixWrite Write; UnixGetenv Getenv; @@ -177,11 +211,17 @@ typedef struct _EFI_UNIX_THUNK_PROTOCOL { 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; - UnixUgaCreate UgaCreate; +extern EFI_GUID gEfiUnixThunkProtocolGuid; -} EFI_UNIX_THUNK_PROTOCOL; - -extern EFI_GUID gEfiUnixThunkProtocolGuid; - -#endif +#endif