VirtualBox

source: vbox/trunk/src/VBox/Devices/Input/PS2Dev.h@ 44582

Last change on this file since 44582 was 39972, checked in by vboxsync, 13 years ago

Updated struct testcase to see what breaks.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.8 KB
Line 
1/** @file
2 * PS/2 devices - Internal header file.
3 */
4
5/*
6 * Copyright (C) 2007-2012 Oracle Corporation
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 */
16
17#ifndef PS2DEV_H
18#define PS2DEV_H
19
20/* Must be at least as big as the real struct. */
21#define PS2K_STRUCT_FILLER 768
22
23/* Hide the internal structure. */
24#if !(defined(IN_PS2K) || defined(VBOX_DEVICE_STRUCT_TESTCASE))
25typedef struct PS2K {
26 uint8_t abFiller[PS2K_STRUCT_FILLER];
27} PS2K;
28#endif
29
30typedef struct PS2K *PPS2K;
31
32int PS2KByteToKbd(PPS2K pThis, uint8_t cmd);
33int PS2KByteFromKbd(PPS2K pThis, uint8_t *pVal);
34
35int PS2KConstruct(PPDMDEVINS pDevIns, PPS2K pThis, void *pParent, int iInstance);
36int PS2KAttach(PPDMDEVINS pDevIns, PPS2K pThis, unsigned iLUN, uint32_t fFlags);
37void PS2KReset(PPS2K pThis);
38void PS2KRelocate(PPS2K pThis, RTGCINTPTR offDelta);
39void PS2KSaveState(PSSMHANDLE pSSM, PPS2K pThis);
40int PS2KLoadState(PSSMHANDLE pSSM, PPS2K pThis, uint32_t uVersion);
41
42void KBCUpdateInterrupts(void *pKbc);
43
44PS2K *GetPS2KFromDevIns(PPDMDEVINS pDevIns);
45
46//@todo: This should live with the KBC implementation.
47/** AT to PC scancode translator state. */
48typedef enum {
49 XS_IDLE, /**< Starting state. */
50 XS_BREAK, /**< F0 break byte was received. */
51 XS_HIBIT /**< Break code still active. */
52} xlat_state_t;
53
54int32_t XlateAT2PC(int32_t state, uint8_t scanIn, uint8_t *pScanOut);
55
56#endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette