Modified: trunk/reactos/drivers/input/i8042prt/i8042prt.c
Modified: trunk/reactos/drivers/input/i8042prt/i8042prt.h
Modified: trunk/reactos/drivers/input/i8042prt/keyboard.c
Modified: trunk/reactos/drivers/input/i8042prt/mouse.c
Modified: trunk/reactos/drivers/input/i8042prt/ps2pp.c
Modified: trunk/reactos/drivers/input/i8042prt/registry.c
Property changes on: trunk/reactos/drivers/input/i8042prt/README.txt
___________________________________________________________________
Name: svn:keywords
- author date id revision
+ author date revision
--- trunk/reactos/drivers/input/i8042prt/i8042prt.c 2005-08-24 20:06:54 UTC (rev 17518)
+++ trunk/reactos/drivers/input/i8042prt/i8042prt.c 2005-08-24 20:34:50 UTC (rev 17519)
@@ -10,11 +10,9 @@
/* INCLUDES ****************************************************************/
-#include <ddk/ntddk.h>
-#include <ddk/ntddkbd.h>
-#include <ddk/ntdd8042.h>
-
+#ifndef NDEBUG
#define NDEBUG
+#endif
#include <debug.h>
#include "i8042prt.h"
@@ -34,18 +32,18 @@
/*
* FUNCTION: Write data to a port, waiting first for it to become ready
*/
-BOOLEAN I8042Write(PDEVICE_EXTENSION DevExt, int addr, BYTE data)
+BOOLEAN I8042Write(PDEVICE_EXTENSION DevExt, PUCHAR addr, UCHAR data)
{
ULONG ResendIterations = DevExt->Settings.PollingIterations;
- while ((KBD_IBF & READ_PORT_UCHAR((PUCHAR)I8042_CTRL_PORT)) &&
+ while ((KBD_IBF & READ_PORT_UCHAR(I8042_CTRL_PORT)) &&
(ResendIterations--))
{
KeStallExecutionProcessor(50);
}
if (ResendIterations) {
- WRITE_PORT_UCHAR((PUCHAR)addr,data);
+ WRITE_PORT_UCHAR(addr,data);
DPRINT("Sent %x to %x\n", data, addr);
return TRUE;
}
@@ -56,7 +54,7 @@
/*
* FUNCTION: Write data to a port, without waiting first
*/
-static BOOLEAN I8042WriteNoWait(PDEVICE_EXTENSION DevExt, int addr, BYTE data)
+static BOOLEAN I8042WriteNoWait(PDEVICE_EXTENSION DevExt, int addr, UCHAR data)
{
WRITE_PORT_UCHAR((PUCHAR)addr,data);
DPRINT("Sent %x to %x\n", data, addr);
@@ -67,10 +65,10 @@
/*
* FUNCTION: Read data from port 0x60
*/
-NTSTATUS I8042ReadData(BYTE *Data)
+NTSTATUS I8042ReadData(UCHAR *Data)
{
- BYTE Status;
- Status=READ_PORT_UCHAR((PUCHAR)I8042_CTRL_PORT);
+ UCHAR Status;
+ Status=READ_PORT_UCHAR(I8042_CTRL_PORT);
// If data is available
if ((Status & KBD_OBF)) {
@@ -84,16 +82,16 @@
return STATUS_UNSUCCESSFUL;
}
-NTSTATUS I8042ReadStatus(BYTE *Status)
+NTSTATUS I8042ReadStatus(UCHAR *Status)
{
- Status[0]=READ_PORT_UCHAR((PUCHAR)I8042_CTRL_PORT);
+ Status[0]=READ_PORT_UCHAR(I8042_CTRL_PORT);
return STATUS_SUCCESS;
}
/*
* FUNCTION: Read data from port 0x60
*/
-NTSTATUS I8042ReadDataWait(PDEVICE_EXTENSION DevExt, BYTE *Data)
+NTSTATUS I8042ReadDataWait(PDEVICE_EXTENSION DevExt, UCHAR *Data)
{
ULONG Counter = DevExt->Settings.PollingIterations;
NTSTATUS Status;
@@ -112,7 +110,7 @@
VOID I8042Flush()
{
- BYTE Ignore;
+ UCHAR Ignore;
while (STATUS_SUCCESS == I8042ReadData(&Ignore)) {
; /* drop */
@@ -141,7 +139,7 @@
{
NTSTATUS Status;
UCHAR Ack;
- UINT ResendIterations = DevExt->Settings.ResendIterations + 1;
+ ULONG ResendIterations = DevExt->Settings.ResendIterations + 1;
do {
if (Port)
@@ -311,7 +309,7 @@
VOID I8042PacketDpc(PDEVICE_EXTENSION DevExt)
{
- BOOL FinishIrp = FALSE;
+ BOOLEAN FinishIrp = FALSE;
NTSTATUS Result = STATUS_INTERNAL_ERROR; /* Shouldn't happen */
KIRQL Irql;
@@ -512,7 +510,7 @@
{
NTSTATUS Status;
UCHAR Value = 0;
- UINT Counter;
+ ULONG Counter;
DevExt->MouseExists = FALSE;
DevExt->KeyboardExists = FALSE;
Property changes on: trunk/reactos/drivers/input/i8042prt/i8042prt.c
___________________________________________________________________
Name: svn:keywords
- author date id revision
+ author date revision
--- trunk/reactos/drivers/input/i8042prt/i8042prt.h 2005-08-24 20:06:54 UTC (rev 17518)
+++ trunk/reactos/drivers/input/i8042prt/i8042prt.h 2005-08-24 20:34:50 UTC (rev 17519)
@@ -1,51 +1,19 @@
#ifndef _I8042DRV_H
#define _I8042DRV_H
-#include <ddk/ntddk.h>
-#include <ddk/ntddkbd.h>
-#include <ddk/ntdd8042.h>
+#include <ntddk.h>
+#include <kbdmou.h>
+#include <ntdd8042.h>
+
+#ifdef _MSC_VER
+ #define STDCALL
+ #define DDKAPI
+#endif
+
#define KEYBOARD_IRQ 1
#define MOUSE_IRQ 12
#define KBD_BUFFER_SIZE 32
-// should be in ntdd8042.h
-
-typedef VOID DDKAPI
-(*KEYBOARD_CLASS_SERVICE_CALLBACK) (
- IN PDEVICE_OBJECT DeviceObject,
- IN PKEYBOARD_INPUT_DATA InputDataStart,
- IN PKEYBOARD_INPUT_DATA InputDataEnd,
- IN OUT PULONG InputDataConsumed
-);
-
-/* I'm not actually sure if this is in the ddk, would seem logical */
-typedef VOID DDKAPI
-(*MOUSE_CLASS_SERVICE_CALLBACK) (
- IN PDEVICE_OBJECT DeviceObject,
- IN PMOUSE_INPUT_DATA InputDataStart,
- IN PMOUSE_INPUT_DATA InputDataEnd,
- IN OUT PULONG InputDataConsumed
-);
-
-typedef struct _CONNECT_DATA {
- PDEVICE_OBJECT ClassDeviceObject;
- PVOID ClassService;
-} CONNECT_DATA, *PCONNECT_DATA;
-
-#define IOCTL_INTERNAL_KEYBOARD_CONNECT \
- CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0080, METHOD_NEITHER, FILE_ANY_ACCESS)
-
-#define IOCTL_INTERNAL_MOUSE_CONNECT \
- CTL_CODE(FILE_DEVICE_MOUSE, 0x0080, METHOD_NEITHER, FILE_ANY_ACCESS)
-
-/* For some bizarre reason, these are different from the defines in
- * w32api. I'm quite sure these are correct though, needs to be checked
- * against the ddk
- */
-#define KEYBOARD_SCROLL_LOCK_ON 0x01
-#define KEYBOARD_NUM_LOCK_ON 0x02
-#define KEYBOARD_CAPS_LOCK_ON 0x04
-
#define WHEEL_DELTA 120
/*-----------------------------------------------------
@@ -77,21 +45,21 @@
/* TODO: part of this should be in the _ATTRIBUTES structs instead */
typedef struct _I8042_SETTINGS
{
- DWORD Headless; /* done */
- DWORD CrashScroll;
- DWORD CrashSysRq; /* done */
- DWORD ReportResetErrors;
- DWORD PollStatusIterations; /* done */
- DWORD ResendIterations; /* done */
- DWORD PollingIterations;
- DWORD PollingIterationsMaximum;
- DWORD OverrideKeyboardType;
- DWORD OverrideKeyboardSubtype;
- DWORD MouseResendStallTime;
- DWORD MouseSynchIn100ns; /* done */
- DWORD MouseResolution; /* done */
- DWORD NumberOfButtons;
- DWORD EnableWheelDetection;
+ ULONG Headless; /* done */
+ ULONG CrashScroll;
+ ULONG CrashSysRq; /* done */
+ ULONG ReportResetErrors;
+ ULONG PollStatusIterations; /* done */
+ ULONG ResendIterations; /* done */
+ ULONG PollingIterations;
+ ULONG PollingIterationsMaximum;
+ ULONG OverrideKeyboardType;
+ ULONG OverrideKeyboardSubtype;
+ ULONG MouseResendStallTime;
+ ULONG MouseSynchIn100ns; /* done */
+ ULONG MouseResolution; /* done */
+ ULONG NumberOfButtons;
+ ULONG EnableWheelDetection;
} I8042_SETTINGS, *PI8042_SETTINGS;
typedef enum _I8042_MOUSE_TYPE
@@ -178,7 +146,7 @@
I8042_MOUSE_TYPE MouseType;
OUTPUT_PACKET Packet;
- UINT PacketResends;
+ ULONG PacketResends;
BOOLEAN PacketComplete;
NTSTATUS PacketResult;
UCHAR PacketBuffer[16];
@@ -228,8 +196,8 @@
* Keyboard controller ports
*/
-#define I8042_DATA_PORT 0x60
-#define I8042_CTRL_PORT 0x64
+#define I8042_DATA_PORT ((PUCHAR)0x60)
+#define I8042_CTRL_PORT ((PUCHAR)0x64)
/*
@@ -295,11 +263,11 @@
#define MOUSE_NACK 0xFE
/* i8042prt.c */
-NTSTATUS I8042ReadData(BYTE *Data);
+NTSTATUS I8042ReadData(UCHAR *Data);
-NTSTATUS I8042ReadStatus(BYTE *Status);
+NTSTATUS I8042ReadStatus(UCHAR *Status);
-NTSTATUS I8042ReadDataWait(PDEVICE_EXTENSION DevExt, BYTE *Data);
+NTSTATUS I8042ReadDataWait(PDEVICE_EXTENSION DevExt, UCHAR *Data);
VOID I8042Flush();
@@ -326,7 +294,7 @@
VOID STDCALL I8042SendHookWorkItem(PDEVICE_OBJECT DeviceObject,
PVOID Context);
-BOOLEAN I8042Write(PDEVICE_EXTENSION DevExt, int addr, BYTE data);
+BOOLEAN I8042Write(PDEVICE_EXTENSION DevExt, PUCHAR addr, UCHAR data);
/* keyboard.c */
VOID STDCALL I8042IsrWritePortKbd(PVOID Context,
@@ -382,12 +350,12 @@
USHORT Mask);
VOID STDCALL I8042MouseHandle(PDEVICE_EXTENSION DevExt,
- BYTE Output);
+ UCHAR Output);
BOOLEAN STDCALL I8042MouseEnable(PDEVICE_EXTENSION DevExt);
BOOLEAN STDCALL I8042MouseDisable(PDEVICE_EXTENSION DevExt);
/* ps2pp.c */
-VOID I8042MouseHandlePs2pp(PDEVICE_EXTENSION DevExt, BYTE Input);
+VOID I8042MouseHandlePs2pp(PDEVICE_EXTENSION DevExt, UCHAR Input);
#endif // _KEYBOARD_H_
Property changes on: trunk/reactos/drivers/input/i8042prt/i8042prt.h
___________________________________________________________________
Name: svn:keywords
- author date id revision
+ author date revision
Property changes on: trunk/reactos/drivers/input/i8042prt/i8042prt.rc
___________________________________________________________________
Name: svn:keywords
- author date id revision
+ author date revision
--- trunk/reactos/drivers/input/i8042prt/keyboard.c 2005-08-24 20:06:54 UTC (rev 17518)
+++ trunk/reactos/drivers/input/i8042prt/keyboard.c 2005-08-24 20:34:50 UTC (rev 17519)
@@ -11,18 +11,16 @@
/* INCLUDES ****************************************************************/
-#include <ddk/ntddk.h>
-#include <ddk/ntddkbd.h>
-#include <ddk/ntdd8042.h>
-
+#ifndef NDEBUG
#define NDEBUG
+#endif
#include <debug.h>
#include "i8042prt.h"
/* GLOBALS *******************************************************************/
-static BYTE TypematicTable[] = {
+static UCHAR TypematicTable[] = {
0x00, 0x00, 0x00, 0x05, 0x08, 0x0B, 0x0D, 0x0F, 0x10, 0x12, /* 0-9 */
0x13, 0x14, 0x15, 0x16, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1A, /* 10-19 */
0x1B, 0x1C, 0x1C, 0x1C, 0x1D, 0x1D, 0x1E };
@@ -87,12 +85,12 @@
BOOLEAN STDCALL I8042InterruptServiceKbd(struct _KINTERRUPT *Interrupt,
VOID * Context)
{
- BYTE Output;
- BYTE PortStatus;
+ UCHAR Output;
+ UCHAR PortStatus;
NTSTATUS Status;
PDEVICE_EXTENSION DevExt = (PDEVICE_EXTENSION) Context;
BOOLEAN HookContinue = FALSE, HookReturn;
- UINT Iterations = 0;
+ ULONG Iterations = 0;
KEYBOARD_INPUT_DATA *InputData =
DevExt->KeyboardBuffer + DevExt->KeysInBuffer;
@@ -228,7 +226,7 @@
if (!DevExt->KeyboardData.ClassService)
return;
- ((KEYBOARD_CLASS_SERVICE_CALLBACK) DevExt->KeyboardData.ClassService)(
+ ((PSERVICE_CALLBACK_ROUTINE) DevExt->KeyboardData.ClassService)(
DevExt->KeyboardData.ClassDeviceObject,
DevExt->KeyboardBuffer,
DevExt->KeyboardBuffer + KeysInBufferCopy,
@@ -240,9 +238,9 @@
}
/* You have to send the rate/delay in a somewhat awkward format */
-static USHORT I8042GetTypematicByte(USHORT Rate, USHORT Delay)
+static UCHAR I8042GetTypematicByte(USHORT Rate, USHORT Delay)
{
- USHORT ret;
+ UCHAR ret;
if (Rate < 3) {
ret = 0x0;
@@ -630,7 +628,7 @@
{
NTSTATUS Status;
UCHAR Value;
- UINT RetryCount = 10;
+ ULONG RetryCount = 10;
DPRINT("Detecting keyboard\n");
@@ -713,6 +711,7 @@
/* debug stuff */
VOID STDCALL
KdpServiceDispatcher(ULONG Code, PVOID Context1, PVOID Context2);
+#define EnterDebugger ((PVOID)0x25)
static VOID STDCALL I8042DebugWorkItem(PDEVICE_OBJECT DeviceObject,
PVOID Context)
@@ -727,5 +726,10 @@
if (!Key)
return;
- KdpServiceDispatcher(TAG('R', 'o', 's', ' '), (PVOID)Key, NULL);
+#ifdef __REACTOS__
+ /* We hope kernel would understand this. If
+ * that's not the case, nothing would happen.
+ */
+ KdpServiceDispatcher(TAG('R', 'o', 's', ' '), EnterDebugger, NULL);
+#endif /* __REACTOS__ */
}
Property changes on: trunk/reactos/drivers/input/i8042prt/keyboard.c
___________________________________________________________________
Name: svn:keywords
- author date id revision
+ author date revision
--- trunk/reactos/drivers/input/i8042prt/mouse.c 2005-08-24 20:06:54 UTC (rev 17518)
+++ trunk/reactos/drivers/input/i8042prt/mouse.c 2005-08-24 20:34:50 UTC (rev 17519)
@@ -11,11 +11,9 @@
/* INCLUDES ****************************************************************/
-#include <ddk/ntddk.h>
-#include <ddk/ntddkbd.h>
-#include <ddk/ntdd8042.h>
-
+#ifndef NDEBUG
#define NDEBUG
+#endif
#include <debug.h>
#include "i8042prt.h"
@@ -147,7 +145,7 @@
DevExt->MouseExists = FALSE;
DevExt->MouseState = MouseIdle;
DPRINT1("Mouse returned bad reset reply part two: "
- "%x (expected 0)\n", Value);
+ "%x (expected 0)\n", *Value);
}
return TRUE;
case ExpectingGetDeviceIdACK:
@@ -312,7 +310,7 @@
return TRUE;
case ExpectingSetSamplingRateACK:
I8042IsrWritePortMouse(DevExt,
- DevExt->MouseAttributes.SampleRate);
+ (UCHAR)DevExt->MouseAttributes.SampleRate);
DevExt->MouseResetState++;
return TRUE;
case ExpectingSetSamplingRateValueACK:
@@ -328,7 +326,7 @@
return TRUE;
case ExpectingFinalResolutionACK:
I8042IsrWritePortMouse(DevExt,
- DevExt->Settings.MouseResolution & 0xff);
+ (UCHAR)(DevExt->Settings.MouseResolution & 0xff));
DPRINT("%x\n", DevExt->Settings.MouseResolution);
DevExt->MouseResetState = ExpectingFinalResolutionValueACK;
return TRUE;
@@ -383,7 +381,7 @@
{
PMOUSE_INPUT_DATA MouseInput = DevExt->MouseBuffer +
DevExt->MouseInBuffer;
- USHORT NewButtonData = MouseInput->RawButtons & Mask;
+ USHORT NewButtonData = (USHORT)(MouseInput->RawButtons & Mask);
USHORT ButtonDiff = (NewButtonData ^ DevExt->MouseButtonState) & Mask;
/* Note that the defines are such:
@@ -404,7 +402,7 @@
}
VOID STDCALL I8042MouseHandle(PDEVICE_EXTENSION DevExt,
- BYTE Output)
+ UCHAR Output)
{
PMOUSE_INPUT_DATA MouseInput = DevExt->MouseBuffer +
DevExt->MouseInBuffer;
@@ -515,10 +513,10 @@
BOOLEAN STDCALL I8042InterruptServiceMouse(struct _KINTERRUPT *Interrupt,
VOID *Context)
{
- BYTE Output, PortStatus;
+ UCHAR Output, PortStatus;
NTSTATUS Status;
PDEVICE_EXTENSION DevExt = (PDEVICE_EXTENSION) Context;
- UINT Iterations = 0;
+ ULONG Iterations = 0;
do {
Status = I8042ReadStatus(&PortStatus);
@@ -616,7 +614,7 @@
if (!DevExt->MouseData.ClassService)
return;
- ((MOUSE_CLASS_SERVICE_CALLBACK) DevExt->MouseData.ClassService)(
+ ((PSERVICE_CALLBACK_ROUTINE) DevExt->MouseData.ClassService)(
DevExt->MouseData.ClassDeviceObject,
DevExt->MouseBuffer,
DevExt->MouseBuffer + MouseInBufferCopy,
Property changes on: trunk/reactos/drivers/input/i8042prt/mouse.c
___________________________________________________________________
Name: svn:keywords
- author date id revision
+ author date revision
--- trunk/reactos/drivers/input/i8042prt/ps2pp.c 2005-08-24 20:06:54 UTC (rev 17518)
+++ trunk/reactos/drivers/input/i8042prt/ps2pp.c 2005-08-24 20:34:50 UTC (rev 17519)
@@ -9,17 +9,15 @@
/* INCLUDES ****************************************************************/
-#include <ddk/ntddk.h>
-#include <ddk/ntddkbd.h>
-#include <ddk/ntdd8042.h>
-
+#ifndef NDEBUG
#define NDEBUG
+#endif
#include <debug.h>
#include "i8042prt.h"
-VOID I8042MouseHandlePs2pp(PDEVICE_EXTENSION DevExt, BYTE Input)
+VOID I8042MouseHandlePs2pp(PDEVICE_EXTENSION DevExt, UCHAR Input)
{
UCHAR PktType;
PMOUSE_INPUT_DATA MouseInput = DevExt->MouseBuffer +
Property changes on: trunk/reactos/drivers/input/i8042prt/ps2pp.c
___________________________________________________________________
Name: svn:keywords
- author date id revision
+ author date revision
--- trunk/reactos/drivers/input/i8042prt/registry.c 2005-08-24 20:06:54 UTC (rev 17518)
+++ trunk/reactos/drivers/input/i8042prt/registry.c 2005-08-24 20:34:50 UTC (rev 17519)
@@ -11,11 +11,9 @@
/* INCLUDES ****************************************************************/
-#include <ddk/ntddk.h>
-#include <ddk/ntddkbd.h>
-#include <ddk/ntdd8042.h>
-
+#ifndef NDEBUG
#define NDEBUG
+#endif
#include <debug.h>
#include "i8042prt.h"
@@ -38,24 +36,24 @@
NTSTATUS Status;
- DWORD DefaultHeadless = 0;
- DWORD DefaultCrashScroll = 0;
- DWORD DefaultCrashSysRq = 0;
- DWORD DefaultReportResetErrors = 0;
- DWORD DefaultPollStatusIterations = 1;
- DWORD DefaultResendIterations = 3;
- DWORD DefaultPollingIterations = 12000;
- DWORD DefaultPollingIterationsMaximum = 12000;
- DWORD DefaultKeyboardDataQueueSize = 100;
- DWORD DefaultOverrideKeyboardType = 0;
- DWORD DefaultOverrideKeyboardSubtype = 0;
- DWORD DefaultMouseDataQueueSize = 100;
- DWORD DefaultMouseResendStallTime = 1000;
- DWORD DefaultMouseSynchIn100ns = 20000000;
- DWORD DefaultMouseResolution = 3;
- DWORD DefaultSampleRate = 60;
- DWORD DefaultNumberOfButtons = 2;
- DWORD DefaultEnableWheelDetection = 1;
+ ULONG DefaultHeadless = 0;
+ ULONG DefaultCrashScroll = 0;
+ ULONG DefaultCrashSysRq = 0;
+ ULONG DefaultReportResetErrors = 0;
+ ULONG DefaultPollStatusIterations = 1;
+ ULONG DefaultResendIterations = 3;
+ ULONG DefaultPollingIterations = 12000;
+ ULONG DefaultPollingIterationsMaximum = 12000;
+ ULONG DefaultKeyboardDataQueueSize = 100;
+ ULONG DefaultOverrideKeyboardType = 0;
+ ULONG DefaultOverrideKeyboardSubtype = 0;
+ ULONG DefaultMouseDataQueueSize = 100;
+ ULONG DefaultMouseResendStallTime = 1000;
+ ULONG DefaultMouseSynchIn100ns = 20000000;
+ ULONG DefaultMouseResolution = 3;
+ ULONG DefaultSampleRate = 60;
+ ULONG DefaultNumberOfButtons = 2;
+ ULONG DefaultEnableWheelDetection = 1;
RtlInitUnicodeString(&ParametersPath, NULL);
ParametersPath.MaximumLength = (wcslen(RegistryPath) *
@@ -212,15 +210,15 @@
NULL);
if (!NT_SUCCESS(Status)) {
- DPRINT1 ("Can't read registry: %x\n", Status);
/* Actually, the defaults are not set when the function
* fails, as would happen during setup, so you have to
* set them manually anyway...
*/
RTL_QUERY_REGISTRY_TABLE *Current = Parameters;
+ DPRINT1 ("Can't read registry: %x\n", Status);
while (Current->Name) {
- *((DWORD *)Current->EntryContext) =
- *((DWORD *)Current->DefaultData);
+ *((PULONG)Current->EntryContext) =
+ *((PULONG)Current->DefaultData);
Current++;
}
DPRINT1 ("Manually set defaults\n");
Property changes on: trunk/reactos/drivers/input/i8042prt/registry.c
___________________________________________________________________
Name: svn:keywords
- author date id revision
+ author date revision