mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-01-31 07:12:18 +00:00
2a709f28fa
* 0day explit mitigation * Memory corruption prevention * Privilege escalation prevention * Buffer over flow prevention * File System corruption defense * Thread escape prevention This may very well be the most intensive inclusion to BrooklynR. This will not be part of an x86 suite nor it will be released as tool kit. The security core toolkit will remain part of kernel base.
100 lines
2.1 KiB
C
100 lines
2.1 KiB
C
#ifndef _LINUX_I8042_H
|
|
#define _LINUX_I8042_H
|
|
|
|
/*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License version 2 as published by
|
|
* the Free Software Foundation.
|
|
*/
|
|
|
|
#include <linux/types.h>
|
|
|
|
/*
|
|
* Standard commands.
|
|
*/
|
|
|
|
#define I8042_CMD_CTL_RCTR 0x0120
|
|
#define I8042_CMD_CTL_WCTR 0x1060
|
|
#define I8042_CMD_CTL_TEST 0x01aa
|
|
|
|
#define I8042_CMD_KBD_DISABLE 0x00ad
|
|
#define I8042_CMD_KBD_ENABLE 0x00ae
|
|
#define I8042_CMD_KBD_TEST 0x01ab
|
|
#define I8042_CMD_KBD_LOOP 0x11d2
|
|
|
|
#define I8042_CMD_AUX_DISABLE 0x00a7
|
|
#define I8042_CMD_AUX_ENABLE 0x00a8
|
|
#define I8042_CMD_AUX_TEST 0x01a9
|
|
#define I8042_CMD_AUX_SEND 0x10d4
|
|
#define I8042_CMD_AUX_LOOP 0x11d3
|
|
|
|
#define I8042_CMD_MUX_PFX 0x0090
|
|
#define I8042_CMD_MUX_SEND 0x1090
|
|
|
|
/*
|
|
* Status register bits.
|
|
*/
|
|
|
|
#define I8042_STR_PARITY 0x80
|
|
#define I8042_STR_TIMEOUT 0x40
|
|
#define I8042_STR_AUXDATA 0x20
|
|
#define I8042_STR_KEYLOCK 0x10
|
|
#define I8042_STR_CMDDAT 0x08
|
|
#define I8042_STR_MUXERR 0x04
|
|
#define I8042_STR_IBF 0x02
|
|
#define I8042_STR_OBF 0x01
|
|
|
|
/*
|
|
* Control register bits.
|
|
*/
|
|
|
|
#define I8042_CTR_KBDINT 0x01
|
|
#define I8042_CTR_AUXINT 0x02
|
|
#define I8042_CTR_IGNKEYLOCK 0x08
|
|
#define I8042_CTR_KBDDIS 0x10
|
|
#define I8042_CTR_AUXDIS 0x20
|
|
#define I8042_CTR_XLATE 0x40
|
|
|
|
struct serio;
|
|
|
|
#if defined(CONFIG_SERIO_I8042) || defined(CONFIG_SERIO_I8042_MODULE)
|
|
|
|
void i8042_lock_chip(void);
|
|
void i8042_unlock_chip(void);
|
|
int i8042_command(unsigned char *param, int command);
|
|
int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str,
|
|
struct serio *serio));
|
|
int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str,
|
|
struct serio *serio));
|
|
|
|
#else
|
|
|
|
static inline void i8042_lock_chip(void)
|
|
{
|
|
}
|
|
|
|
static inline void i8042_unlock_chip(void)
|
|
{
|
|
}
|
|
|
|
static inline int i8042_command(unsigned char *param, int command)
|
|
{
|
|
return -ENODEV;
|
|
}
|
|
|
|
static inline int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str,
|
|
struct serio *serio))
|
|
{
|
|
return -ENODEV;
|
|
}
|
|
|
|
static inline int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str,
|
|
struct serio *serio))
|
|
{
|
|
return -ENODEV;
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|