19 #ifndef MIR_GRAPHICS_MESA_LINUX_VIRTUAL_TERMINAL_H_ 20 #define MIR_GRAPHICS_MESA_LINUX_VIRTUAL_TERMINAL_H_ 45 virtual int open(
char const* pathname,
int flags) = 0;
46 virtual int close(
int fd) = 0;
47 virtual int ioctl(
int d,
int request,
int val) = 0;
48 virtual int ioctl(
int d,
int request,
void* p_val) = 0;
49 virtual int tcsetattr(
int d,
int acts,
const struct termios *tcattr) = 0;
50 virtual int tcgetattr(
int d,
struct termios *tcattr) = 0;
63 virtual pid_t getpid()
const = 0;
64 virtual pid_t getppid()
const = 0;
65 virtual pid_t getpgid(pid_t process)
const = 0;
66 virtual pid_t getsid(pid_t process)
const = 0;
68 virtual int setpgid(pid_t process, pid_t group) = 0;
69 virtual pid_t setsid() = 0;
81 std::unique_ptr<PosixProcessOperations> pops,
83 std::shared_ptr<DisplayReport>
const& report);
86 void set_graphics_mode()
override;
87 void register_switch_handlers(
89 std::function<
bool()>
const& switch_away,
90 std::function<
bool()>
const& switch_back)
override;
91 void restore()
override;
97 FDWrapper(std::shared_ptr<VTFileOperations>
const& fops,
int fd)
101 ~FDWrapper() {
if (fd_ >= 0) fops->close(fd_); }
102 int fd()
const {
return fd_; }
104 std::shared_ptr<VTFileOperations>
const fops;
108 int find_active_vt_number();
109 int open_vt(
int vt_number);
112 std::shared_ptr<VTFileOperations>
const fops;
113 std::unique_ptr<PosixProcessOperations>
const pops;
114 std::shared_ptr<DisplayReport>
const report;
115 FDWrapper
const vt_fd;
117 struct vt_mode prev_vt_mode;
119 struct termios prev_tcattr;
All things Mir.
Definition: atomic_callback.h:25
VTFileOperations & operator=(VTFileOperations const &)=delete
virtual int tcsetattr(int d, int acts, const struct termios *tcattr)=0
Definition: linux_virtual_terminal.h:40
virtual int ioctl(int d, int request, int val)=0
virtual ~VTFileOperations()=default
Definition: virtual_terminal.h:33
virtual int tcgetattr(int d, struct termios *tcattr)=0
virtual int close(int fd)=0
Definition: linux_virtual_terminal.h:58
Definition: linux_virtual_terminal.h:77
VTFileOperations()=default
virtual int open(char const *pathname, int flags)=0
Definition: event_handler_register.h:32