mirror of
https://github.com/subhobhai943/SUB-OS.git
synced 2026-10-25 16:52:29 +00:00
40 lines
1.0 KiB
C
40 lines
1.0 KiB
C
#ifndef _DRIVERS_PTY_H
|
|
#define _DRIVERS_PTY_H
|
|
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
#include <stdbool.h>
|
|
|
|
#define PTY_MAX_PAIRS 8
|
|
#define PTY_BUFFER_SZ 1024
|
|
|
|
typedef struct {
|
|
uint32_t pty_num;
|
|
char master_name[16]; // /dev/ptmx
|
|
char slave_name[16]; // /dev/pts/0
|
|
char m2s_buf[PTY_BUFFER_SZ];
|
|
size_t m2s_head;
|
|
size_t m2s_tail;
|
|
char s2m_buf[PTY_BUFFER_SZ];
|
|
size_t s2m_head;
|
|
size_t s2m_tail;
|
|
bool echo_enabled;
|
|
bool raw_mode;
|
|
bool master_open;
|
|
bool slave_open;
|
|
bool in_use;
|
|
} pty_pair_t;
|
|
|
|
void pty_init(void);
|
|
int pty_open_master(void);
|
|
int pty_open_slave(int master_fd);
|
|
int pty_master_write(int master_fd, const char* data, size_t len);
|
|
int pty_master_read(int master_fd, char* data, size_t max_len);
|
|
int pty_slave_write(int slave_fd, const char* data, size_t len);
|
|
int pty_slave_read(int slave_fd, char* data, size_t max_len);
|
|
|
|
size_t pty_get_active_count(void);
|
|
const pty_pair_t* pty_get_pair(size_t index);
|
|
|
|
#endif // _DRIVERS_PTY_H
|