1290001Sglebius/*
2290001Sglebius * Copyright (C) 2004, 2005, 2007  Internet Systems Consortium, Inc. ("ISC")
3290001Sglebius * Copyright (C) 2000, 2001  Internet Software Consortium.
4290001Sglebius *
5290001Sglebius * Permission to use, copy, modify, and/or distribute this software for any
6290001Sglebius * purpose with or without fee is hereby granted, provided that the above
7290001Sglebius * copyright notice and this permission notice appear in all copies.
8290001Sglebius *
9290001Sglebius * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
10290001Sglebius * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11290001Sglebius * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
12290001Sglebius * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13290001Sglebius * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
14290001Sglebius * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15290001Sglebius * PERFORMANCE OF THIS SOFTWARE.
16290001Sglebius */
17290001Sglebius
18290001Sglebius/* $Id: keyboard.h,v 1.11 2007/06/19 23:47:19 tbox Exp $ */
19290001Sglebius
20290001Sglebius#ifndef ISC_KEYBOARD_H
21290001Sglebius#define ISC_KEYBOARD_H 1
22290001Sglebius
23290001Sglebius/*! \file */
24290001Sglebius
25290001Sglebius#include <termios.h>
26290001Sglebius
27290001Sglebius#include <isc/lang.h>
28290001Sglebius#include <isc/result.h>
29290001Sglebius
30290001SglebiusISC_LANG_BEGINDECLS
31290001Sglebius
32290001Sglebiustypedef struct {
33290001Sglebius	int fd;
34290001Sglebius	struct termios saved_mode;
35290001Sglebius	isc_result_t result;
36290001Sglebius} isc_keyboard_t;
37290001Sglebius
38290001Sglebiusisc_result_t
39290001Sglebiusisc_keyboard_open(isc_keyboard_t *keyboard);
40290001Sglebius
41290001Sglebiusisc_result_t
42290001Sglebiusisc_keyboard_close(isc_keyboard_t *keyboard, unsigned int sleepseconds);
43290001Sglebius
44290001Sglebiusisc_result_t
45290001Sglebiusisc_keyboard_getchar(isc_keyboard_t *keyboard, unsigned char *cp);
46290001Sglebius
47290001Sglebiusisc_boolean_t
48290001Sglebiusisc_keyboard_canceled(isc_keyboard_t *keyboard);
49290001Sglebius
50290001SglebiusISC_LANG_ENDDECLS
51290001Sglebius
52290001Sglebius#endif /* ISC_KEYBOARD_H */
53