aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/local_includes/fhandler.h
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/local_includes/fhandler.h')
-rw-r--r--winsup/cygwin/local_includes/fhandler.h19
1 files changed, 13 insertions, 6 deletions
diff --git a/winsup/cygwin/local_includes/fhandler.h b/winsup/cygwin/local_includes/fhandler.h
index 8c71d84..4db2964 100644
--- a/winsup/cygwin/local_includes/fhandler.h
+++ b/winsup/cygwin/local_includes/fhandler.h
@@ -1203,6 +1203,7 @@ class fhandler_pipe_fifo: public fhandler_base
protected:
size_t pipe_buf_size;
HANDLE pipe_mtx; /* Used only in the pipe case */
+ bool real_non_blocking_mode; /* Used only in the pipe case */
virtual void release_select_sem (const char *) {};
IMPLEMENT_STATUS_FLAG (bool, isclosed)
@@ -1212,6 +1213,8 @@ class fhandler_pipe_fifo: public fhandler_base
virtual bool reader_closed () { return false; };
ssize_t raw_write (const void *ptr, size_t len);
+
+ friend ssize_t pipe_data_available (int, fhandler_base *, HANDLE, int);
};
class fhandler_pipe: public fhandler_pipe_fifo
@@ -1699,9 +1702,9 @@ class fhandler_disk_file: public fhandler_base
uint64_t fs_ioc_getflags ();
int fs_ioc_setflags (uint64_t);
- falloc_allocate (int, off_t, off_t);
- falloc_punch_hole (off_t, off_t);
- falloc_zero_range (int, off_t, off_t);
+ int falloc_allocate (int, off_t, off_t);
+ int falloc_punch_hole (off_t, off_t);
+ int falloc_zero_range (int, off_t, off_t);
public:
fhandler_disk_file ();
@@ -1979,6 +1982,7 @@ class fhandler_termios: public fhandler_base
virtual off_t lseek (off_t, int);
pid_t tcgetsid ();
virtual int fstat (struct stat *buf);
+ int tcflow (int);
fhandler_termios (void *) {}
@@ -2143,12 +2147,12 @@ class dev_console
char cons_rabuf[40]; // cannot get longer than char buf[40] in char_command
char *cons_rapoi;
bool cursor_key_app_mode;
- bool disable_master_thread;
+ volatile bool disable_master_thread;
tty::cons_mode curr_input_mode;
tty::cons_mode curr_output_mode;
DWORD prev_input_mode;
DWORD prev_output_mode;
- bool master_thread_suspended;
+ volatile bool master_thread_suspended;
int num_processed; /* Number of input events in the current input buffer
already processed by cons_master_thread(). */
@@ -2273,6 +2277,7 @@ private:
int tcflush (int);
int tcsetattr (int a, const struct termios *t);
int tcgetattr (struct termios *t);
+ int tcdrain ();
int ioctl (unsigned int cmd, void *);
int init (HANDLE, DWORD, mode_t, int64_t = 0);
@@ -2368,7 +2373,7 @@ private:
void setup_pcon_hand_over ();
static void pcon_hand_over_proc ();
- static tty::cons_mode cons_mode_on_close ();
+ static tty::cons_mode cons_mode_on_close (handle_set_t *);
friend tty_min * tty_list::get_cttyp ();
};
@@ -2391,6 +2396,7 @@ class fhandler_pty_common: public fhandler_termios
DWORD __acquire_output_mutex (const char *fn, int ln, DWORD ms);
void __release_output_mutex (const char *fn, int ln);
+ int tcdrain ();
int close (int flag = -1);
off_t lseek (off_t, int);
bool bytes_available (DWORD& n);
@@ -2536,6 +2542,7 @@ public:
HANDLE to_slave;
HANDLE master_ctl;
HANDLE input_available_event;
+ fhandler_pty_master *master;
};
/* Parameter set for the static function pty_master_fwd_thread() */
struct master_fwd_thread_param_t {