-/*++\r
-\r
-Copyright (c) 2004, Intel Corporation \r
-All rights reserved. This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
-\r
- UnixThunk.h\r
-\r
-Abstract:\r
-\r
- This protocol allows an EFI driver in the Unix emulation environment\r
- to make Posix calls.\r
-\r
- NEVER make an Unix call directly, always make the call via this protocol.\r
-\r
- There are no This pointers on the protocol member functions as they map\r
- exactly into Unix system calls.\r
-\r
---*/\r
-\r
-#ifndef _UNIX_THUNK_H_\r
-#define _UNIX_THUNK_H_\r
-\r
-
-#define EFI_UNIX_THUNK_PROTOCOL_GUID \\r
- { \\r
+/*++
+
+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>
+
+#define EFI_UNIX_THUNK_PROTOCOL_GUID \
+ { \
0xf2e98868, 0x8985, 0x11db, {0x9a, 0x59, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
- }\r
-\r
-typedef\r
-VOID\r
-(*UnixSleep) (\r
- unsigned long Milliseconds\r
- );\r
-\r
-typedef\r
-VOID\r
-(*UnixExit) (\r
- int status // exit code for all threads\r
- );\r
-\r
+ }
+
+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));
(*UnixUgaCreate)(struct _EFI_UNIX_UGA_IO_PROTOCOL **UgaIo,
CONST CHAR16 *Title);
-//\r
-//\r
-//\r
-\r
-#define EFI_UNIX_THUNK_PROTOCOL_SIGNATURE EFI_SIGNATURE_32 ('L', 'N', 'X', 'T')\r
-\r
-typedef struct _EFI_UNIX_THUNK_PROTOCOL {\r
- UINT64 Signature;\r
-
- UnixSleep Sleep;\r
- UnixExit Exit;\r
- 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;
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;
-\r
-extern EFI_GUID gEfiUnixThunkProtocolGuid;\r
-\r
-#endif\r
+#endif