- get mpu401, parallel and ramdrv to work on msvc.
[reactos.git] / reactos / drivers / dd / parallel / parallel.c
index 639135b..41f5af3 100644 (file)
@@ -5,15 +5,14 @@
  * FILE:             services/parallel/parallel.c
  * PURPOSE:          Parallel port driver
  * PROGRAMMER:       David Welch (welch@mcmail.com)
- * UPDATE HISTORY: 
+ * UPDATE HISTORY:
  *              ??/??/??: Created
  *              18/06/98: Made more NT like
  */
 
 /* FUNCTIONS **************************************************************/
 
-#include <ddk/ntddk.h>
-#include <rosrtl/string.h>
+#include <ntddk.h>
 
 #include "parallel.h"
 
@@ -25,6 +24,9 @@
 #define LP_S (READ_PORT_UCHAR((PUCHAR)(LP_B+1)))
 #define LP_C (LP_B+2)
 
+NTSTATUS STDCALL
+DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath);
+
 static void Parallel_Reset(void)
 /*
  * FUNCTION: Resets the device attached to the parallel port
@@ -44,7 +46,7 @@ static void Parallel_putchar(unsigned char ch)
  *          ch = character to write
  */
 {
-       
+
        int count=0;
        int status;
        int wait=0;
@@ -55,13 +57,13 @@ static void Parallel_putchar(unsigned char ch)
             count++;
          }
        while ( count < 500000 && !(status & LP_PBUSY) );
-         
+
        if (count==500000)
          {
             DPRINT("printer_putchar(): timed out\n");
             return;
          }
-       
+
        WRITE_PORT_UCHAR((PUCHAR)LP_B,ch);
        while (wait != 10000) { wait++; }
        WRITE_PORT_UCHAR((PUCHAR)LP_C, (LP_PSELECP | LP_PINITP | LP_PSTROBE ));
@@ -69,7 +71,7 @@ static void Parallel_putchar(unsigned char ch)
        WRITE_PORT_UCHAR((PUCHAR)LP_C, LP_PSELECP | LP_PINITP);
 }
 
-NTSTATUS STDCALL
+static NTSTATUS STDCALL
 Dispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp)
 /*
  * FUNCTION: Handles user mode requests
@@ -81,8 +83,8 @@ Dispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp)
 {
    PIO_STACK_LOCATION Stack = IoGetCurrentIrpStackLocation(Irp);
    NTSTATUS status;
-   int i;
-   
+   ULONG i;
+
    switch (Stack->MajorFunction)
      {
       case IRP_MJ_CREATE:
@@ -90,11 +92,11 @@ Dispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp)
        Parallel_Reset();
        status = STATUS_SUCCESS;
        break;
-       
+
       case IRP_MJ_CLOSE:
        status = STATUS_SUCCESS;
        break;
-       
+
       case IRP_MJ_WRITE:
        DPRINT("(Parallel Port Driver) Writing %d bytes\n",
               Stack->Parameters.Write.Length);
@@ -104,15 +106,15 @@ Dispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp)
          }
        status = STATUS_SUCCESS;
        break;
-       
+
       default:
        status = STATUS_NOT_IMPLEMENTED;
        break;
      }
-   
+
    Irp->IoStatus.Status = status;
    Irp->IoStatus.Information = 0;
-   
+
    IoCompleteRequest(Irp, IO_NO_INCREMENT);
    return(status);
 }
@@ -128,11 +130,11 @@ DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
  */
 {
    PDEVICE_OBJECT DeviceObject;
-   UNICODE_STRING DeviceName = ROS_STRING_INITIALIZER(L"\\Device\\Parallel");
+   UNICODE_STRING DeviceName = RTL_CONSTANT_STRING(L"\\Device\\Parallel");
    NTSTATUS Status;
-   
+
    DPRINT("Parallel Port Driver 0.0.1\n");
-   
+
    Status = IoCreateDevice(DriverObject,
                           0,
                           &DeviceName,
@@ -150,7 +152,7 @@ DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
    DriverObject->MajorFunction[IRP_MJ_CREATE] = Dispatch;
    DriverObject->MajorFunction[IRP_MJ_WRITE] = Dispatch;
    DriverObject->DriverUnload = NULL;
-   
+
    return(STATUS_SUCCESS);
 }