Fix bug in pthread_sigmask() semantics.
[akaros.git] / tools / syscall_server / pty.c
1 #define _XOPEN_SOURCE 600
2 #include <stdlib.h>
3 #include <fcntl.h>
4 #include <string.h>
5
6 #define SYSCALL_SERVER_PTY ".syscall_server_pty"
7
8 int init_syscall_server(int* fd_read, int* fd_write) {
9         // File descriptor of our open serial port
10         
11         int fd = posix_openpt(O_RDWR | O_NOCTTY);
12         if(fd < 0)
13                 return fd;
14         grantpt (fd);
15     unlockpt (fd);
16         char* pty_dev = ptsname(fd);
17         
18         //Output the newly allocated slave device into a file
19         int pty_fd = open(SYSCALL_SERVER_PTY, 
20                           O_RDWR | O_CREAT | O_TRUNC, 
21                           S_IRUSR | S_IWUSR);
22         write(pty_fd, pty_dev, strlen(pty_dev));
23         *fd_read = *fd_write = fd;
24         return fd;
25 }
26
27 int read_syscall_server(int fd, char* buf, int len) {
28         return read(fd, buf, len);
29 }
30
31 int write_syscall_server(int fd, char* buf, int len, int bytes_to_follow) {
32         return write(fd, buf, len);
33 }
34
35