1/* 2 * Copyright 2004-2010 Haiku, Inc. 3 * Distributed under the terms of the MIT License. 4 * 5 * PS/2 bus manager 6 * 7 * Authors (in chronological order): 8 * Elad Lahav (elad@eldarshany.com) 9 * Stefano Ceccherini (burton666@libero.it) 10 * Axel Dörfler, axeld@pinc-software.de 11 * Marcus Overhagen <marcus@overhagen.de> 12 */ 13#ifndef __PS2_COMMON_H 14#define __PS2_COMMON_H 15 16 17#include <ISA.h> 18#include <Drivers.h> 19#include <KernelExport.h> 20#include <OS.h> 21 22#include "ps2_defs.h" 23#include "ps2_dev.h" 24 25 26#if 1 27# define INFO(x...) dprintf(x) 28#else 29# define INFO(x...) 30#endif 31 32//#define TRACE_PS2 33#ifdef TRACE_PS2 34# define TRACE(x...) dprintf(x) 35#else 36# define TRACE(x...) 37#endif 38 39 40// global variables 41extern isa_module_info *gIsa; 42 43extern device_hooks gKeyboardDeviceHooks; 44extern device_hooks gPointingDeviceHooks; 45 46extern bool gActiveMultiplexingEnabled; 47extern sem_id gControllerSem; 48 49 50#ifdef __cplusplus 51extern "C" { 52#endif 53 54// prototypes from common.c 55status_t ps2_init(void); 56void ps2_uninit(void); 57 58uint8 ps2_read_ctrl(void); 59uint8 ps2_read_data(void); 60void ps2_write_ctrl(uint8 ctrl); 61void ps2_write_data(uint8 data); 62status_t ps2_wait_read(void); 63status_t ps2_wait_write(void); 64 65void ps2_flush(void); 66 67extern status_t ps2_command(uint8 cmd, const uint8 *out, int out_count, 68 uint8 *in, int in_count); 69 70// prototypes from keyboard.c & mouse.c 71extern status_t probe_keyboard(void); 72 73#ifdef __cplusplus 74} 75#endif 76 77 78#endif /* __PS2_COMMON_H */ 79