Annotation of embedaddon/mtr/packet/command_cygwin.h, revision 1.1
1.1 ! misho 1: /*
! 2: mtr -- a network diagnostic tool
! 3: Copyright (C) 2016 Matt Kimball
! 4:
! 5: This program is free software; you can redistribute it and/or modify
! 6: it under the terms of the GNU General Public License version 2 as
! 7: published by the Free Software Foundation.
! 8:
! 9: This program is distributed in the hope that it will be useful,
! 10: but WITHOUT ANY WARRANTY; without even the implied warranty of
! 11: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! 12: GNU General Public License for more details.
! 13:
! 14: You should have received a copy of the GNU General Public License
! 15: along with this program; if not, write to the Free Software
! 16: Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
! 17: */
! 18:
! 19: #ifndef COMMAND_CYGWIN_H
! 20: #define COMMAND_CYGWIN_H
! 21:
! 22: /*
! 23: Though Cygwin supports the usual Unix non-blocking reads on
! 24: the command stream, we've got to use Overlapped I/O instead because
! 25: ICMP.DLL's support for sending probes requires Overlapped I/O
! 26: and alertable waits for notification of replies. Since we need
! 27: alertable waits, we can't use Cygwin's select to determine when
! 28: command stream data is available, but Overlapped I/O completion
! 29: will work.
! 30: */
! 31:
! 32: /* Overlapped I/O manament for Windows command buffer reads */
! 33: struct command_buffer_platform_t {
! 34: /* true if an overlapped I/O read is active */
! 35: bool read_active;
! 36:
! 37: /* true if the command pipe is still open */
! 38: bool pipe_open;
! 39:
! 40: /* Windows OVERLAPPED I/O data */
! 41: OVERLAPPED overlapped;
! 42:
! 43: /* The buffer which active OVERLAPPED reads read into */
! 44: char overlapped_buffer[COMMAND_BUFFER_SIZE];
! 45: };
! 46:
! 47: struct command_buffer_t;
! 48:
! 49: void start_read_command(
! 50: struct command_buffer_t *buffer);
! 51:
! 52: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>