VSF Documented
Data Structures | Macros | Typedefs | Functions | Variables
pty.h File Reference
#include "shell/sys/linux/vsf_linux_cfg.h"
#include "kernel/vsf_kernel.h"
#include "./sys/types.h"
#include <termios.h>

Go to the source code of this file.

Data Structures

struct  vsf_linux_pty_vplt_t
 

Macros

#define openpty   VSF_LINUX_WRAPPER(openpty)
 
#define login_tty   VSF_LINUX_WRAPPER(login_tty)
 
#define forkpty(__amaster, __name, __termp, __winp)
 

Typedefs

typedef struct vsf_linux_pty_vplt_t vsf_linux_pty_vplt_t
 

Functions

int openpty (int *amaster, int *aslave, char *name, const struct termios *termp, const struct winsize *winp)
 
int login_tty (int fd)
 

Variables

__VSF_VPLT_DECORATOR__ vsf_linux_pty_vplt_t vsf_linux_pty_vplt
 

Macro Definition Documentation

◆ openpty

#define openpty   VSF_LINUX_WRAPPER(openpty)

◆ login_tty

#define login_tty   VSF_LINUX_WRAPPER(login_tty)

◆ forkpty

#define forkpty (   __amaster,
  __name,
  __termp,
  __winp 
)
Value:
({ \
int VSF_MACRO_SAFE_NAME(master); \
int VSF_MACRO_SAFE_NAME(slave); \
int VSF_MACRO_SAFE_NAME(pid); \
int VSF_MACRO_SAFE_NAME(result) = -1; \
if (!openpty(&VSF_MACRO_SAFE_NAME(master), &VSF_MACRO_SAFE_NAME(slave), __name, __termp, __winp)) {\
VSF_MACRO_SAFE_NAME(pid) = vfork(); \
switch (VSF_MACRO_SAFE_NAME(pid)) { \
case -1: \
close(VSF_MACRO_SAFE_NAME(master)); \
close(VSF_MACRO_SAFE_NAME(slave)); \
break; \
case 0: \
close(VSF_MACRO_SAFE_NAME(master)); \
if (login_tty(VSF_MACRO_SAFE_NAME(slave))) { \
_exit(1); \
} \
VSF_MACRO_SAFE_NAME(result) = 0; \
break; \
default: \
*(__amaster) = VSF_MACRO_SAFE_NAME(master); \
close(VSF_MACRO_SAFE_NAME(slave)); \
VSF_MACRO_SAFE_NAME(result) = VSF_MACRO_SAFE_NAME(pid); \
break; \
} \
} \
VSF_MACRO_SAFE_NAME(result); \
})
#define __name
Definition hci_transport_aic8800.c:552
#define openpty
Definition pty.h:20
#define login_tty
Definition pty.h:21
#define vfork()
Definition unistd.h:914
#define VSF_MACRO_SAFE_NAME(__NAME)
Definition vsf_preprocessor.h:32

Typedef Documentation

◆ vsf_linux_pty_vplt_t

Function Documentation

◆ openpty()

int openpty ( int *  amaster,
int *  aslave,
char *  name,
const struct termios termp,
const struct winsize winp 
)

◆ login_tty()

int login_tty ( int  fd)

Variable Documentation

◆ vsf_linux_pty_vplt

__VSF_VPLT_DECORATOR__ vsf_linux_pty_vplt_t vsf_linux_pty_vplt
extern