dev_pckbc.cc File Reference

Back to the index.

Classes | Macros | Functions
dev_pckbc.cc File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "console.h"
#include "cpu.h"
#include "devices.h"
#include "machine.h"
#include "memory.h"
#include "misc.h"
#include "thirdparty/kbdreg.h"

Go to the source code of this file.

Classes

struct  pckbc_data
 

Macros

#define MAX_8042_QUEUELEN   32768
 
#define PC_DATA   0
 
#define PC_CMD   0
 
#define PC_STATUS   1
 
#define PS2_TXBUF   0
 
#define PS2_RXBUF   1
 
#define PS2_CONTROL   2
 
#define PS2_CONTROL_TXINTEN   (1 << 2)
 
#define PS2_CONTROL_RXINTEN   (1 << 3)
 
#define PS2_STATUS   3
 
#define PS2_STATUS_TXEMPTY   (1 << 3)
 
#define PS2_STATUS_RXFULL   (1 << 4)
 
#define PS2   100
 
#define PCKBC_TICKSHIFT   15
 
#define STATE_NORMAL   0
 
#define STATE_LDCMDBYTE   1
 
#define STATE_RDCMDBYTE   2
 
#define STATE_WAITING_FOR_TRANSLTABLE   3
 
#define STATE_WAITING_FOR_RATE   4
 
#define STATE_WAITING_FOR_ONEKEY_MB   5
 
#define STATE_WAITING_FOR_AUX   6
 
#define STATE_WAITING_FOR_AUX_OUT   7
 
#define STATE_LDOUTPUT   8
 
#define STATE_RDOUTPUT   9
 

Functions

void pckbc_add_code (struct pckbc_data *d, int code, int port)
 
int pckbc_get_code (struct pckbc_data *d, int port)
 
void pckbc_reassert_interrupts (struct pckbc_data *d)
 
 DEVICE_TICK (pckbc)
 
 DEVICE_ACCESS (pckbc)
 
int dev_pckbc_init (struct machine *machine, struct memory *mem, uint64_t baseaddr, int type, char *keyboard_irqpath, char *mouse_irqpath, int in_use, int pc_style_flag)
 

Macro Definition Documentation

◆ MAX_8042_QUEUELEN

#define MAX_8042_QUEUELEN   32768

Definition at line 62 of file dev_pckbc.cc.

Referenced by pckbc_add_code(), and pckbc_get_code().

◆ PC_CMD

#define PC_CMD   0

Definition at line 65 of file dev_pckbc.cc.

◆ PC_DATA

#define PC_DATA   0

Definition at line 64 of file dev_pckbc.cc.

◆ PC_STATUS

#define PC_STATUS   1

Definition at line 66 of file dev_pckbc.cc.

◆ PCKBC_TICKSHIFT

#define PCKBC_TICKSHIFT   15

Definition at line 79 of file dev_pckbc.cc.

Referenced by dev_pckbc_init().

◆ PS2

#define PS2   100

Definition at line 77 of file dev_pckbc.cc.

Referenced by DEVICE_ACCESS().

◆ PS2_CONTROL

#define PS2_CONTROL   2

Definition at line 70 of file dev_pckbc.cc.

◆ PS2_CONTROL_RXINTEN

#define PS2_CONTROL_RXINTEN   (1 << 3)

Definition at line 72 of file dev_pckbc.cc.

◆ PS2_CONTROL_TXINTEN

#define PS2_CONTROL_TXINTEN   (1 << 2)

Definition at line 71 of file dev_pckbc.cc.

◆ PS2_RXBUF

#define PS2_RXBUF   1

Definition at line 69 of file dev_pckbc.cc.

◆ PS2_STATUS

#define PS2_STATUS   3

Definition at line 73 of file dev_pckbc.cc.

◆ PS2_STATUS_RXFULL

#define PS2_STATUS_RXFULL   (1 << 4)

Definition at line 75 of file dev_pckbc.cc.

◆ PS2_STATUS_TXEMPTY

#define PS2_STATUS_TXEMPTY   (1 << 3)

Definition at line 74 of file dev_pckbc.cc.

◆ PS2_TXBUF

#define PS2_TXBUF   0

Definition at line 68 of file dev_pckbc.cc.

◆ STATE_LDCMDBYTE

#define STATE_LDCMDBYTE   1

Definition at line 115 of file dev_pckbc.cc.

Referenced by DEVICE_ACCESS().

◆ STATE_LDOUTPUT

#define STATE_LDOUTPUT   8

Definition at line 122 of file dev_pckbc.cc.

Referenced by DEVICE_ACCESS().

◆ STATE_NORMAL

#define STATE_NORMAL   0

Definition at line 114 of file dev_pckbc.cc.

Referenced by DEVICE_ACCESS().

◆ STATE_RDCMDBYTE

#define STATE_RDCMDBYTE   2

Definition at line 116 of file dev_pckbc.cc.

Referenced by DEVICE_ACCESS().

◆ STATE_RDOUTPUT

#define STATE_RDOUTPUT   9

Definition at line 123 of file dev_pckbc.cc.

Referenced by DEVICE_ACCESS().

◆ STATE_WAITING_FOR_AUX

#define STATE_WAITING_FOR_AUX   6

Definition at line 120 of file dev_pckbc.cc.

◆ STATE_WAITING_FOR_AUX_OUT

#define STATE_WAITING_FOR_AUX_OUT   7

Definition at line 121 of file dev_pckbc.cc.

◆ STATE_WAITING_FOR_ONEKEY_MB

#define STATE_WAITING_FOR_ONEKEY_MB   5

Definition at line 119 of file dev_pckbc.cc.

◆ STATE_WAITING_FOR_RATE

#define STATE_WAITING_FOR_RATE   4

Definition at line 118 of file dev_pckbc.cc.

◆ STATE_WAITING_FOR_TRANSLTABLE

#define STATE_WAITING_FOR_TRANSLTABLE   3

Definition at line 117 of file dev_pckbc.cc.

Function Documentation

◆ dev_pckbc_init()

int dev_pckbc_init ( struct machine machine,
struct memory mem,
uint64_t  baseaddr,
int  type,
char *  keyboard_irqpath,
char *  mouse_irqpath,
int  in_use,
int  pc_style_flag 
)

◆ DEVICE_ACCESS()

DEVICE_ACCESS ( pckbc  )

◆ DEVICE_TICK()

DEVICE_TICK ( pckbc  )

◆ pckbc_add_code()

void pckbc_add_code ( struct pckbc_data d,
int  code,
int  port 
)

◆ pckbc_get_code()

int pckbc_get_code ( struct pckbc_data d,
int  port 
)

Definition at line 147 of file dev_pckbc.cc.

References fatal(), pckbc_data::head, pckbc_data::key_queue, MAX_8042_QUEUELEN, and pckbc_data::tail.

Referenced by DEVICE_ACCESS().

◆ pckbc_reassert_interrupts()

void pckbc_reassert_interrupts ( struct pckbc_data d)

Generated on Fri Dec 7 2018 19:52:23 for GXemul by doxygen 1.8.13