mirror of https://github.com/acidanthera/audk.git
StdLib/Include: Minor changes in preparation for Interactive I/O (TTY) functionality.
StdLib/Include/ stdlib.h Update MB_CUR_MAX to 3, the max. size of a MBCS character. Improve comments for wcstombs() Declare implementation-specific MBCS utility functions: OneWcToMcLen() Determine the number of bytes needed to represent a Wide character as a MBCS character. EstimateWtoM() Determine the number of bytes needed to represent a Wide character string as a MBCS string. CountMbcsChars() Determine the number of characters in a MBCS string. wchar.h Improve comments. StdLib/Include/sys/ fcntl.h Define new Open flags. Remove obsolete and commented-out lines. termios.h Add Intel Copyright notice and Open-Source License. Change c_cc index macros into enumerated values. Clean up flag definitions for visual alignment as well as UEFI relevance. Move c_ispeed and c_ospeed termios members to end for better alignment. Comment out declarations for functions not yet implemented. Add an enum defining values for the UEFI extended function keys. Contributed-under: TianoCore Contribution Agreement 1.0 Reviewed-by: erik.c.bjorge@intel.com Reviewed-by: jaben.carsey@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13741 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
9fa90bb491
commit
c352b29843
|
@ -101,7 +101,7 @@
|
|||
char ** __restrict endptr);
|
||||
@endverbatim
|
||||
|
||||
Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2010 - 2012, 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
|
||||
|
@ -166,8 +166,11 @@ typedef struct {
|
|||
maximum number of bytes in a multibyte character for the extended character
|
||||
set specified by the current locale (category LC_CTYPE), which is never
|
||||
greater than MB_LEN_MAX.
|
||||
|
||||
Since UEFI only supports the Unicode Base Multilingual Plane (BMP),
|
||||
correctly formed characters will only produce 1, 2, or 3-byte UTF-8 characters.
|
||||
**/
|
||||
#define MB_CUR_MAX 2
|
||||
#define MB_CUR_MAX 3
|
||||
|
||||
/** Maximum number of functions that can be registered by atexit.
|
||||
|
||||
|
@ -845,7 +848,7 @@ size_t mbstowcs(wchar_t * __restrict Dest, const char * __restrict Src, size_t
|
|||
|
||||
@param[out] Dest Pointer to the array to receive the converted string.
|
||||
@param[in] Src Pointer to the string to be converted.
|
||||
@param[in] Limit Maximum number of elements to be written to Dest.
|
||||
@param[in] Limit Maximum number of bytes to be written to Dest.
|
||||
|
||||
@return If a wide character is encountered that does not correspond to a
|
||||
valid multibyte character, the wcstombs function returns
|
||||
|
@ -855,7 +858,7 @@ size_t mbstowcs(wchar_t * __restrict Dest, const char * __restrict Src, size_t
|
|||
**/
|
||||
size_t wcstombs(char * __restrict Dest, const wchar_t * __restrict Src, size_t Limit);
|
||||
|
||||
/* ################ Miscelaneous functions for *nix compatibility ########## */
|
||||
/* ############## Miscelaneous functions for *nix compatibility ########## */
|
||||
|
||||
/** The realpath() function shall derive, from the pathname pointed to by
|
||||
file_name, an absolute pathname that names the same file, whose resolution
|
||||
|
@ -890,6 +893,59 @@ const char * getprogname(void);
|
|||
**/
|
||||
void setprogname(const char *progname);
|
||||
|
||||
/* ############### Functions specific to this implementation ############# */
|
||||
|
||||
/* Determine the number of bytes needed to represent a Wide character
|
||||
as a MBCS character.
|
||||
|
||||
A single wide character may convert into a one, two, three, or four byte
|
||||
narrow (MBCS or UTF-8) character. The number of MBCS bytes can be determined
|
||||
as follows.
|
||||
|
||||
If WCS char < 0x00000080 One Byte
|
||||
Else if WCS char < 0x0000D800 Two Bytes
|
||||
Else Three Bytes
|
||||
|
||||
Since UEFI only supports the Unicode Base Multilingual Plane (BMP),
|
||||
Four-byte characters are not supported.
|
||||
|
||||
@param[in] InCh Wide character to test.
|
||||
|
||||
@retval -1 Improperly formed character
|
||||
@retval 0 InCh is 0x0000
|
||||
@retval >0 Number of bytes needed for the MBCS character
|
||||
*/
|
||||
int
|
||||
EFIAPI
|
||||
OneWcToMcLen(const wchar_t InCh);
|
||||
|
||||
/* Determine the number of bytes needed to represent a Wide character string
|
||||
as a MBCS string of given maximum length. Will optionally return the number
|
||||
of wide characters that would be consumed.
|
||||
|
||||
@param[in] Src Pointer to a wide character string.
|
||||
@param[in] Limit Maximum number of bytes the converted string may occupy.
|
||||
@param[out] NumChar Pointer to where to store the number of wide characters, or NULL.
|
||||
|
||||
@return The number of bytes required to convert Src to MBCS,
|
||||
not including the terminating NUL. If NumChar is not NULL, the number
|
||||
of characters represented by the return value will be written to
|
||||
where it points.
|
||||
**/
|
||||
size_t
|
||||
EFIAPI
|
||||
EstimateWtoM(const wchar_t * Src, size_t Limit, size_t *NumChar);
|
||||
|
||||
/** Determine the number of characters in a MBCS string.
|
||||
|
||||
@param[in] Src The string to examine
|
||||
|
||||
@return The number of characters represented by the MBCS string.
|
||||
**/
|
||||
size_t
|
||||
EFIAPI
|
||||
CountMbcsChars(const char *Src);
|
||||
|
||||
__END_DECLS
|
||||
|
||||
#endif /* _STDLIB_H */
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
This file includes the definitions for open and fcntl described by POSIX
|
||||
for <fcntl.h>; it also includes related kernel definitions.
|
||||
|
||||
Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2010 - 2012, 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
|
||||
|
@ -72,14 +72,16 @@
|
|||
#define O_TRUNC 0x00000400 ///< truncate to zero length
|
||||
#define O_EXCL 0x00000800 ///< error if already exists
|
||||
|
||||
#define O_DIRECTORY 0x00001000 ///< error if path is not a directory
|
||||
#define O_NOCTTY 0x00002000 ///< Don't make this the controlling TTY
|
||||
#define O_TTY_INIT 0x00004000 ///< Initialize TTY to "sane" values on open
|
||||
|
||||
/* UEFI-specific open-only flags. */
|
||||
#define O_HIDDEN 0x00010000 ///< Hidden file attribute
|
||||
#define O_SYSTEM 0x00020000 ///< System file attribute
|
||||
#define O_ARCHIVE 0x00040000 ///< Archive file attribute
|
||||
/// @}
|
||||
|
||||
//#define O_DIRECT 0x00080000 /* direct I/O hint */
|
||||
|
||||
#define O_SETMASK 0x0000000F ///< Flags modifiable by F_SETFD (fcntl)
|
||||
|
||||
/*
|
||||
|
|
|
@ -1,6 +1,16 @@
|
|||
/* $NetBSD: termios.h,v 1.29 2005/12/11 12:25:21 christos Exp $ */
|
||||
/** @file
|
||||
Macros and declarations for terminal oriented ioctls and
|
||||
I/O discipline.
|
||||
|
||||
Copyright (c) 2012, 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.
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988, 1989, 1993, 1994
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
|
@ -29,123 +39,95 @@
|
|||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)termios.h 8.3 (Berkeley) 3/28/94
|
||||
*/
|
||||
|
||||
NetBSD: termios.h,v 1.29 2005/12/11 12:25:21 christos Exp
|
||||
**/
|
||||
#ifndef _SYS_TERMIOS_H_
|
||||
#define _SYS_TERMIOS_H_
|
||||
|
||||
#include <sys/ansi.h>
|
||||
#include <sys/featuretest.h>
|
||||
|
||||
/*
|
||||
* Special Control Characters
|
||||
/* Special Control Characters
|
||||
*
|
||||
* Index into c_cc[] character array.
|
||||
*
|
||||
* Name Subscript Enabled by
|
||||
*/
|
||||
#define VEOF 0 /* ICANON */
|
||||
#define VEOL 1 /* ICANON */
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define VEOL2 2 /* ICANON */
|
||||
#endif
|
||||
#define VERASE 3 /* ICANON */
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define VWERASE 4 /* ICANON */
|
||||
#endif
|
||||
#define VKILL 5 /* ICANON */
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define VREPRINT 6 /* ICANON */
|
||||
#endif
|
||||
/* 7 spare 1 */
|
||||
#define VINTR 8 /* ISIG */
|
||||
#define VQUIT 9 /* ISIG */
|
||||
#define VSUSP 10 /* ISIG */
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define VDSUSP 11 /* ISIG */
|
||||
#endif
|
||||
#define VSTART 12 /* IXON, IXOFF */
|
||||
#define VSTOP 13 /* IXON, IXOFF */
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define VLNEXT 14 /* IEXTEN */
|
||||
#define VDISCARD 15 /* IEXTEN */
|
||||
#endif
|
||||
#define VMIN 16 /* !ICANON */
|
||||
#define VTIME 17 /* !ICANON */
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define VSTATUS 18 /* ICANON */
|
||||
/* 19 spare 2 */
|
||||
#endif
|
||||
#define NCCS 20
|
||||
typedef enum {
|
||||
/* Name Enabled by */
|
||||
VTABLEN, /* OXTABS - Length between TAB stops. */
|
||||
VEOF, /* ICANON */
|
||||
VEOL, /* ICANON */
|
||||
VERASE, /* ICANON */
|
||||
VKILL, /* ICANON */
|
||||
VINTR, /* ISIG */
|
||||
VQUIT, /* ISIG */
|
||||
VMIN, /* !ICANON */
|
||||
VTIME, /* !ICANON */
|
||||
|
||||
/* Extensions from BSD and POSIX -- Not yet implemented for UEFI */
|
||||
VWERASE, /* IEXTEN, ICANON -- Erase the WORD to the left of the cursor */
|
||||
VREPRINT, /* IEXTEN, ICANON -- Re-draw the current line (input buffer) */
|
||||
VLNEXT, /* IEXTEN, ICANON -- Input the next character literally */
|
||||
VDISCARD, /* IEXTEN -- Toggle. Discards output display until toggled. */
|
||||
|
||||
/* NCCS must always be the last member of this enum. */
|
||||
NCCS /* Number of control characters in c_cc[] */
|
||||
} CCC_INDEX;
|
||||
|
||||
#define _POSIX_VDISABLE ((unsigned char)'\377')
|
||||
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define CCEQ(val, c) (c == val ? val != _POSIX_VDISABLE : 0)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Input flags - software input processing
|
||||
*/
|
||||
#define IGNBRK 0x00000001 /* ignore BREAK condition */
|
||||
#define BRKINT 0x00000002 /* map BREAK to SIGINTR */
|
||||
#define IGNPAR 0x00000004 /* ignore (discard) parity errors */
|
||||
#define PARMRK 0x00000008 /* mark parity and framing errors */
|
||||
#define INPCK 0x00000010 /* enable checking of parity errors */
|
||||
#define ISTRIP 0x00000020 /* strip 8th bit off chars */
|
||||
#define INLCR 0x00000040 /* map NL into CR */
|
||||
#define IGNCR 0x00000080 /* ignore CR */
|
||||
#define ICRNL 0x00000100 /* map CR to NL (ala CRMOD) */
|
||||
#define IXON 0x00000200 /* enable output flow control */
|
||||
#define IXOFF 0x00000400 /* enable input flow control */
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define IXANY 0x00000800 /* any char will restart after stop */
|
||||
#endif
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define IMAXBEL 0x00002000 /* ring bell on input queue full */
|
||||
#endif
|
||||
c_iflag
|
||||
*/
|
||||
#define INLCR 0x0001 /* map NL into CR */
|
||||
#define IGNCR 0x0002 /* ignore CR */
|
||||
#define ICRNL 0x0004 /* map CR to NL (ala CRMOD) */
|
||||
#define IGNSPEC 0x0008 /* Ignore function, control, and other non-printing special keys. */
|
||||
#ifdef HAVE_DA_SERIAL
|
||||
#define ISTRIP 0x0010 /* strip 8th bit off chars */
|
||||
#define IGNBRK 0x0020 /* ignore BREAK condition */
|
||||
#define BRKINT 0x0040 /* map BREAK to SIGINTR */
|
||||
#define IRESRV1 0x0080
|
||||
#define IGNPAR 0x0100 /* ignore (discard) parity errors */
|
||||
#define PARMRK 0x0200 /* mark parity and framing errors */
|
||||
#define INPCK 0x0400 /* enable checking of parity errors */
|
||||
#define IXON 0x0800 /* enable output flow control */
|
||||
#define IXOFF 0x1000 /* enable input flow control */
|
||||
#define IXANY 0x2000 /* any char will restart after stop */
|
||||
#endif /* HAVE_DA_SERIAL */
|
||||
|
||||
/*
|
||||
* Output flags - software output processing
|
||||
c_oflag
|
||||
*/
|
||||
#define OPOST 0x00000001 /* enable following output processing */
|
||||
#if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE)
|
||||
#define ONLCR 0x00000002 /* map NL to CR-NL (ala CRMOD) */
|
||||
#endif
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define OXTABS 0x00000004 /* expand tabs to spaces */
|
||||
#define ONOEOT 0x00000008 /* discard EOT's (^D) on output */
|
||||
#endif
|
||||
#if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE)
|
||||
#define OCRNL 0x00000010 /* map CR to NL */
|
||||
#define ONOCR 0x00000020 /* discard CR's when on column 0 */
|
||||
#define ONLRET 0x00000040 /* move to column 0 on CR */
|
||||
#endif /* defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE) */
|
||||
#define OPOST 0x0001 /* enable following output processing */
|
||||
#define ONLCR 0x0002 /* map NL to CR-NL (ala CRMOD) */
|
||||
#define OXTABS 0x0004 /* expand tabs to spaces */
|
||||
#define ONOEOT 0x0008 /* discard EOT's (^D) on output */
|
||||
#define OCRNL 0x0010 /* map CR to NL */
|
||||
#define ONOCR 0x0020 /* discard CR's when on column 0 */
|
||||
#define ONLRET 0x0040 /* move to column 0 on CR */
|
||||
#define OCTRL 0x0080 /* Map control characters to the sequence ^C */
|
||||
|
||||
/*
|
||||
* Control flags - hardware control of terminal
|
||||
c_cflag
|
||||
*/
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define CIGNORE 0x00000001 /* ignore control flags */
|
||||
#endif
|
||||
#define CSIZE 0x00000300 /* character size mask */
|
||||
#define CS5 0x00000000 /* 5 bits (pseudo) */
|
||||
#define CS6 0x00000100 /* 6 bits */
|
||||
#define CS7 0x00000200 /* 7 bits */
|
||||
#define CS8 0x00000300 /* 8 bits */
|
||||
#define CSTOPB 0x00000400 /* send 2 stop bits */
|
||||
#define CREAD 0x00000800 /* enable receiver */
|
||||
#define PARENB 0x00001000 /* parity enable */
|
||||
#define PARODD 0x00002000 /* odd parity, else even */
|
||||
#define HUPCL 0x00004000 /* hang up on last close */
|
||||
#define CLOCAL 0x00008000 /* ignore modem status lines */
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define CRTSCTS 0x00010000 /* RTS/CTS full-duplex flow control */
|
||||
#define CRTS_IFLOW CRTSCTS /* XXX compat */
|
||||
#define CCTS_OFLOW CRTSCTS /* XXX compat */
|
||||
#define CDTRCTS 0x00020000 /* DTR/CTS full-duplex flow control */
|
||||
#define MDMBUF 0x00100000 /* DTR/DCD hardware flow control */
|
||||
#define CHWFLOW (MDMBUF|CRTSCTS|CDTRCTS) /* all types of hw flow control */
|
||||
#ifdef HAVE_DA_SERIAL
|
||||
#define CIGNORE 0x0001 /* ignore control flags */
|
||||
#define CSIZE 0x0300 /* character size mask */
|
||||
#define CS5 0x0000 /* 5 bits (pseudo) */
|
||||
#define CS6 0x0100 /* 6 bits */
|
||||
#define CS7 0x0200 /* 7 bits */
|
||||
#define CS8 0x0300 /* 8 bits */
|
||||
#define CSTOPB 0x0400 /* send 2 stop bits, else 1 */
|
||||
#define CREAD 0x0800 /* enable receiver */
|
||||
#define PARENB 0x1000 /* parity enable */
|
||||
#define PARODD 0x2000 /* odd parity, else even */
|
||||
#define HUPCL 0x4000 /* hang up on last close */
|
||||
#define CLOCAL 0x8000 /* ignore modem status lines */
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -156,149 +138,137 @@
|
|||
* the letter "I" and look like they belong in the
|
||||
* input flag.
|
||||
*/
|
||||
#define ECHO 0x0001 /* enable echoing */
|
||||
#define ECHOE 0x0002 /* visually erase chars */
|
||||
#define ECHOK 0x0004 /* echo NL after line kill */
|
||||
#define ECHONL 0x0008 /* echo NL even if ECHO is off */
|
||||
#define ISIG 0x0010 /* enable signals INTR, QUIT, [D]SUSP */
|
||||
#define ICANON 0x0020 /* canonicalize input lines */
|
||||
#define IEXTEN 0x0040 /* enable Extensions */
|
||||
#define SKIP_1 0x0100 /* Currently unused */
|
||||
#define TOSTOP 0x0200 /* stop background jobs on output */
|
||||
#define PENDIN 0x0400 /* re-echo input buffer at next read */
|
||||
#define NOFLSH 0x0800 /* don't flush output on signal */
|
||||
#define FLUSHO 0x1000 /* output being flushed (state) */
|
||||
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define ECHOKE 0x00000001 /* visual erase for line kill */
|
||||
#endif
|
||||
#define ECHOE 0x00000002 /* visually erase chars */
|
||||
#define ECHOK 0x00000004 /* echo NL after line kill */
|
||||
#define ECHO 0x00000008 /* enable echoing */
|
||||
#define ECHONL 0x00000010 /* echo NL even if ECHO is off */
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define ECHOPRT 0x00000020 /* visual erase mode for hardcopy */
|
||||
#define ECHOCTL 0x00000040 /* echo control chars as ^(Char) */
|
||||
#endif /* defined(_NETBSD_SOURCE) */
|
||||
#define ISIG 0x00000080 /* enable signals INTR, QUIT, [D]SUSP */
|
||||
#define ICANON 0x00000100 /* canonicalize input lines */
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define ALTWERASE 0x00000200 /* use alternate WERASE algorithm */
|
||||
#endif /* defined(_NETBSD_SOURCE) */
|
||||
#define IEXTEN 0x00000400 /* enable DISCARD and LNEXT */
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define EXTPROC 0x00000800 /* external processing */
|
||||
#endif /* defined(_NETBSD_SOURCE) */
|
||||
#define TOSTOP 0x00400000 /* stop background jobs on output */
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define FLUSHO 0x00800000 /* output being flushed (state) */
|
||||
#define NOKERNINFO 0x02000000 /* no kernel output from VSTATUS */
|
||||
#define PENDIN 0x20000000 /* re-echo input buffer at next read */
|
||||
#endif /* defined(_NETBSD_SOURCE) */
|
||||
#define NOFLSH 0x80000000 /* don't flush output on signal */
|
||||
|
||||
typedef unsigned int tcflag_t;
|
||||
typedef unsigned char cc_t;
|
||||
typedef unsigned int speed_t;
|
||||
typedef INT8 cc_t;
|
||||
typedef UINT16 tcflag_t;
|
||||
typedef UINT32 speed_t;
|
||||
|
||||
struct termios {
|
||||
tcflag_t c_iflag; /* input flags */
|
||||
tcflag_t c_oflag; /* output flags */
|
||||
tcflag_t c_cflag; /* control flags */
|
||||
tcflag_t c_lflag; /* local flags */
|
||||
cc_t c_cc[NCCS]; /* control chars */
|
||||
int c_ispeed; /* input speed */
|
||||
int c_ospeed; /* output speed */
|
||||
INT32 c_ispeed; /* input speed - Use a signed type instead of speed_t */
|
||||
INT32 c_ospeed; /* output speed - to ease integer promotion when used. */
|
||||
tcflag_t c_iflag; /* input flags */
|
||||
tcflag_t c_oflag; /* output flags */
|
||||
tcflag_t c_cflag; /* control flags */
|
||||
tcflag_t c_lflag; /* local flags */
|
||||
cc_t c_cc[NCCS]; /* control chars */
|
||||
};
|
||||
|
||||
/*
|
||||
* Commands passed to tcsetattr() for setting the termios structure.
|
||||
*/
|
||||
#define TCSANOW 0 /* make change immediate */
|
||||
#define TCSADRAIN 1 /* drain output, then change */
|
||||
#define TCSAFLUSH 2 /* drain output, flush input */
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define TCSASOFT 0x10 /* flag - don't alter h.w. state */
|
||||
#endif
|
||||
#define TCSANOW 0 /* make change immediate */
|
||||
#define TCSADRAIN 1 /* drain output, then change */
|
||||
#define TCSAFLUSH 2 /* drain output, flush input */
|
||||
#define TCSASOFT 0x10 /* flag - don't alter h.w. state */
|
||||
|
||||
/*
|
||||
* Standard speeds
|
||||
*/
|
||||
#define B0 0
|
||||
#define B50 50
|
||||
#define B75 75
|
||||
#define B110 110
|
||||
#define B134 134
|
||||
#define B150 150
|
||||
#define B200 200
|
||||
#define B300 300
|
||||
#define B600 600
|
||||
#define B1200 1200
|
||||
#define B1800 1800
|
||||
#define B2400 2400
|
||||
#define B4800 4800
|
||||
#define B9600 9600
|
||||
#define B19200 19200
|
||||
#define B38400 38400
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
#define B7200 7200
|
||||
#define B14400 14400
|
||||
#define B28800 28800
|
||||
#define B57600 57600
|
||||
#define B76800 76800
|
||||
#define B115200 115200
|
||||
#define B230400 230400
|
||||
#define B460800 460800
|
||||
#define B921600 921600
|
||||
#define EXTA 19200
|
||||
#define EXTB 38400
|
||||
#endif /* defined(_NETBSD_SOURCE) */
|
||||
#define B0 0
|
||||
#define B50 50
|
||||
#define B75 75
|
||||
#define B110 110
|
||||
#define B134 134
|
||||
#define B150 150
|
||||
#define B200 200
|
||||
#define B300 300
|
||||
#define B600 600
|
||||
#define B1200 1200
|
||||
#define B1800 1800
|
||||
#define B2400 2400
|
||||
#define B4800 4800
|
||||
#define B9600 9600
|
||||
#define B19200 19200
|
||||
#define B38400 38400
|
||||
|
||||
#ifndef _KERNEL
|
||||
// Extended speed definitions
|
||||
#define B7200 7200
|
||||
#define B14400 14400
|
||||
#define B28800 28800
|
||||
#define B57600 57600
|
||||
#define B76800 76800
|
||||
#define B115200 115200
|
||||
#define B230400 230400
|
||||
#define B460800 460800
|
||||
#define B921600 921600
|
||||
|
||||
#define TCIFLUSH 1
|
||||
#define TCOFLUSH 2
|
||||
#define TCIOFLUSH 3
|
||||
#define TCOOFF 1
|
||||
#define TCOON 2
|
||||
#define TCOON 2
|
||||
#define TCIOFF 3
|
||||
#define TCION 4
|
||||
#define TCION 4
|
||||
|
||||
#if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE)
|
||||
#ifndef pid_t
|
||||
typedef __pid_t pid_t;
|
||||
#define pid_t __pid_t
|
||||
#endif
|
||||
#endif /* _XOPEN_SOURCE || _NETBSD_SOURCE */
|
||||
#include <sys/EfiCdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
speed_t cfgetispeed(const struct termios *);
|
||||
speed_t cfgetospeed(const struct termios *);
|
||||
int cfsetispeed(struct termios *, speed_t);
|
||||
int cfsetospeed(struct termios *, speed_t);
|
||||
int tcgetattr(int, struct termios *);
|
||||
int tcsetattr(int, int, const struct termios *);
|
||||
int tcdrain(int);
|
||||
int tcflow(int, int);
|
||||
int tcflush(int, int);
|
||||
int tcsendbreak(int, int);
|
||||
#if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE)
|
||||
pid_t tcgetsid(int);
|
||||
#endif /* defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE) */
|
||||
speed_t cfgetispeed (const struct termios *);
|
||||
speed_t cfgetospeed (const struct termios *);
|
||||
int cfsetispeed (struct termios *, speed_t);
|
||||
int cfsetospeed (struct termios *, speed_t);
|
||||
int tcgetattr (int, struct termios *);
|
||||
int tcsetattr (int, int, const struct termios *);
|
||||
int tcdrain (int);
|
||||
int tcflow (int, int);
|
||||
int tcflush (int, int);
|
||||
//int tcsendbreak (int, int);
|
||||
//pid_t tcgetsid (int);
|
||||
|
||||
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
void cfmakeraw(struct termios *);
|
||||
int cfsetspeed(struct termios *, speed_t);
|
||||
#endif /* defined(_NETBSD_SOURCE) */
|
||||
//void cfmakeraw (struct termios *);
|
||||
//int cfsetspeed (struct termios *, speed_t);
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !_KERNEL */
|
||||
/* Input values for UEFI Keyboard Scan Codes.
|
||||
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
The UEFI Keyboard Scan Codes are mapped into the upper range of the Unicode
|
||||
Private Use Area so that the characters can be inserted into the input stream
|
||||
and treated the same as any other character.
|
||||
|
||||
/*
|
||||
* Include tty ioctl's that aren't just for backwards compatibility
|
||||
* with the old tty driver. These ioctl definitions were previously
|
||||
* in <sys/ioctl.h>.
|
||||
*/
|
||||
//#include <sys/ttycom.h>
|
||||
#endif
|
||||
These values are only used for input. If these codes are output to the
|
||||
console, or another interactive I/O device, the behavior will depend upon
|
||||
the current locale and UEFI character set loaded.
|
||||
*/
|
||||
typedef enum {
|
||||
TtySpecKeyMin = 0xF7F0,
|
||||
/* This area is reserved for use by internal I/O software.
|
||||
At least 4 values must exist between TtySpecKeyMin and TtyFunKeyMin.
|
||||
*/
|
||||
TtyFunKeyMin = 0xF7FA,
|
||||
TtyKeyEject = 0xF7FA,
|
||||
TtyRecovery, TtyToggleDisplay, TtyHibernate,
|
||||
TtySuspend, TtyBrightnessDown, TtyBrightnessUp,
|
||||
TtyVolumeDown = 0xF87F,
|
||||
TtyVolumeUp, TtyMute,
|
||||
TtyF24 = 0xF88D,
|
||||
TtyF23, TtyF22, TtyF21, TtyF20,
|
||||
TtyF19, TtyF18, TtyF17, TtyF16,
|
||||
TtyF15, TtyF14, TtyF13,
|
||||
TtyEscape = 0xF8E9,
|
||||
TtyF12, TtyF11, TtyF10, TtyF9,
|
||||
TtyF8, TtyF7, TtyF6, TtyF5,
|
||||
TtyF4, TtyF3, TtyF2, TtyF1,
|
||||
TtyPageDown, TtyPageUp, TtyDelete, TtyInsert,
|
||||
TtyEnd, TtyHome, TtyLeftArrow, TtyRightArrow,
|
||||
TtyDownArrow,
|
||||
TtyUpArrow = 0xF8FF,
|
||||
TtyFunKeyMax = 0xF900
|
||||
} TtyFunKey;
|
||||
|
||||
// Non-UEFI character definitions
|
||||
#define CHAR_EOT 0x0004 /* End of Text (EOT) character */
|
||||
|
||||
/*
|
||||
* END OF PROTECTED INCLUDE.
|
||||
*/
|
||||
#endif /* !_SYS_TERMIOS_H_ */
|
||||
|
||||
#if defined(_NETBSD_SOURCE)
|
||||
//#include <sys/ttydefaults.h>
|
||||
#endif
|
||||
|
|
|
@ -1415,10 +1415,16 @@ int mbsinit(const mbstate_t *ps);
|
|||
where internal is the mbstate_t object for the mbrlen function, except that
|
||||
the expression designated by ps is evaluated only once.
|
||||
|
||||
@return The mbrlen function returns a value between zero and n,
|
||||
inclusive, (size_t)(-2), or (size_t)(-1).
|
||||
@param[in] s Pointer to a multibyte character sequence.
|
||||
@param[in] n Maximum number of bytes to examine.
|
||||
@param[in] pS Pointer to the conversion state object.
|
||||
|
||||
@retval 0 The next n or fewer characters complete a NUL.
|
||||
@retval 1..n The number of bytes that complete the multibyte character.
|
||||
@retval -2 The next n bytes contribute to an incomplete (but potentially valid) multibyte character.
|
||||
@retval -1 An encoding error occurred.
|
||||
**/
|
||||
size_t mbrlen(const char * __restrict S, size_t n, mbstate_t * __restrict ps);
|
||||
size_t mbrlen(const char * __restrict S, size_t n, mbstate_t * __restrict pS);
|
||||
|
||||
/** Restartable Multibyte to Wide character conversion.
|
||||
If S is a null pointer, the mbrtowc function is equivalent to the call:<BR>
|
||||
|
|
Loading…
Reference in New Issue