#ifndef __KEYBOARD_P__
#define __KEYBOARD_P__

extern _VOID_ echo_prompt _P_((char *str));
extern _VOID_ echo_char _P_((Lisp_Object c));
extern _VOID_ echo_dash _P_((void));
extern _VOID_ echo _P_((void));
extern _VOID_ cancel_echoing _P_((void));
extern Lisp_Object recursive_edit_1 _P_((void));
extern _VOID_ record_auto_save _P_((void));
extern Lisp_Object recursive_edit_unwind _P_((Lisp_Object buffer));
extern Lisp_Object cmd_error _P_((Lisp_Object data));
extern Lisp_Object command_loop _P_((void));
extern Lisp_Object command_loop_2 _P_((Lisp_Object dummy));
extern Lisp_Object top_level_2 _P_((void));
extern Lisp_Object top_level_1 _P_((Lisp_Object dummy));
extern Lisp_Object command_loop_1 _P_((void));
extern SIGTYPE input_poll_signal _P_((void));
extern _VOID_ start_polling _P_((void));
extern _VOID_ stop_polling _P_((void));
extern int make_ctrl_char _P_((int c));
extern Lisp_Object read_char _P_((int commandflag, int nmaps,
                                  Lisp_Object *maps, Lisp_Object prev_event,
                                  int *used_mouse_menu));
extern Lisp_Object print_help _P_((Lisp_Object object));
extern _VOID_ kbd_buffer_store_event _P_((register struct input_event *event));
extern _VOID_ swallow_events _P_((void));
extern Lisp_Object reorder_modifiers _P_((Lisp_Object symbol));
extern _VOID_ gobble_input _P_((int expected));
extern SIGTYPE input_available_signal _P_((int signo));
extern _VOID_ reinvoke_input_signal _P_((void));
extern Lisp_Object map_prompt _P_((Lisp_Object map));
extern Lisp_Object menu_bar_items _P_((void));
extern int detect_input_pending _P_((void));
extern _VOID_ clear_input_pending _P_((void));
extern _VOID_ stuff_buffered_input _P_((Lisp_Object stuffstring));
extern _VOID_ clear_waiting_for_input _P_((void));
extern SIGTYPE interrupt_signal _P_((void));
extern _VOID_ quit_throw_to_read_char _P_((void));
extern _VOID_ init_keyboard _P_((void));
extern _VOID_ syms_of_keyboard _P_((void));
extern _VOID_ keys_of_keyboard _P_((void));

DEFUN_P(Frecursive_edit, (void));
DEFUN_P(Ftop_level, (void));
DEFUN_P(Fexit_recursive_edit, (void));
DEFUN_P(Fabort_recursive_edit, (void));
DEFUN_P(Ftrack_mouse, (Lisp_Object args));
DEFUN_P(Fread_key_sequence, (Lisp_Object prompt, Lisp_Object continue_echo));
DEFUN_P(Fcommand_execute, (Lisp_Object cmd, Lisp_Object record));
DEFUN_P(Fexecute_extended_command, (Lisp_Object prefixarg));
DEFUN_P(Finput_pending_p, (void));
DEFUN_P(Frecent_keys, (void));
DEFUN_P(Fthis_command_keys, (void));
DEFUN_P(Frecursion_depth, (void));
DEFUN_P(Fopen_dribble_file, (Lisp_Object file));
DEFUN_P(Fdiscard_input, (void));
DEFUN_P(Fsuspend_emacs, (Lisp_Object stuffstring));
DEFUN_P(Fset_input_mode, (Lisp_Object interrupt, Lisp_Object flow,
                          Lisp_Object meta, Lisp_Object quit));
DEFUN_P(Fcurrent_input_mode, (void));
    
#endif
