[ros-diffs] [silverblade] 26102: Basic beginnings of an MPU401 driver (forgot to commit with last files)

silverblade at svn.reactos.org silverblade at svn.reactos.org
Wed Mar 14 21:50:43 CET 2007


Author: silverblade
Date: Wed Mar 14 23:50:42 2007
New Revision: 26102

URL: http://svn.reactos.org/svn/reactos?rev=26102&view=rev
Log:
Basic beginnings of an MPU401 driver (forgot to commit with last files)

Added:
    trunk/reactos/drivers/multimedia/mpu401_ks/
    trunk/reactos/drivers/multimedia/mpu401_ks/adapter.cpp
    trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.def
    trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.rbuild
    trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.rc

Added: trunk/reactos/drivers/multimedia/mpu401_ks/adapter.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/multimedia/mpu401_ks/adapter.cpp?rev=26102&view=auto
==============================================================================
--- trunk/reactos/drivers/multimedia/mpu401_ks/adapter.cpp (added)
+++ trunk/reactos/drivers/multimedia/mpu401_ks/adapter.cpp Wed Mar 14 23:50:42 2007
@@ -1,0 +1,97 @@
+/*
+    ReactOS Operating System
+    MPU401 Example KS Driver
+
+    AUTHORS:
+        Andrew Greenwood
+
+    NOTES:
+        This is an example MPU401 driver. You can use DirectMusic instead with
+        this, by changing the CLSIDs accordingly.
+*/
+
+#define MAX_MINIPORTS 1
+
+#define PUT_GUIDS_HERE
+
+#include <portcls.h>
+
+extern "C"
+NTSTATUS
+StartDevice(
+    IN  PDEVICE_OBJECT pDeviceObject,
+    IN  PIRP pIrp,
+    IN  PRESOURCELIST ResourceList)
+{
+    if ( ! ResourceList )
+        return STATUS_INVALID_PARAMETER;
+
+    if ( ResourceList->NumberOfEntries() == 0 )
+    {
+        return STATUS_INSUFFICIENT_RESOURCES;
+    }
+
+    PPORT port;
+    PMINIPORT miniport;
+
+    NTSTATUS status;
+
+    status = PcNewPort(&port, CLSID_PortMidi);
+
+    if ( ! NT_SUCCESS(status) )
+    {
+        return status;
+    }
+
+    status = PcNewMiniport(&miniport, CLSID_MiniportDriverUart);
+
+    if ( ! NT_SUCCESS(status) )
+    {
+        return status;
+    }
+
+    status = port->Init(pDeviceObject, pIrp, miniport, NULL, ResourceList);
+
+    if ( ! NT_SUCCESS(status) )
+    {
+        return status;
+    }
+
+    status = PcRegisterSubdevice(pDeviceObject, L"Uart", port);
+
+    if ( ! NT_SUCCESS(status) )
+    {
+        /* just print an error here */
+    }
+
+    miniport->Release();
+    port->Release();
+
+    return status;
+}
+
+
+extern "C"
+NTSTATUS
+AddDevice(
+    IN  PVOID Context1,
+    IN  PVOID Context2)
+{
+    return PcAddAdapterDevice((PDRIVER_OBJECT) Context1,
+                              (PDEVICE_OBJECT) Context2,
+                              StartDevice,
+                              MAX_MINIPORTS,
+                              0);
+}
+
+
+extern "C"
+NTSTATUS
+DriverEntry(
+    IN  PVOID Context1,
+    IN  PVOID Context2)
+{
+    return PcInitializeAdapterDriver((PDRIVER_OBJECT) Context1,
+                                     (PUNICODE_STRING) Context2,
+                                     (PDRIVER_ADD_DEVICE) AddDevice);
+};

Added: trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.def
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.def?rev=26102&view=auto
==============================================================================
--- trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.def (added)
+++ trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.def Wed Mar 14 23:50:42 2007
@@ -1,0 +1,6 @@
+;
+; Exports definition file for mpu401_ks.sys
+;
+EXPORTS
+DriverEntry at 8
+

Added: trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.rbuild?rev=26102&view=auto
==============================================================================
--- trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.rbuild (added)
+++ trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.rbuild Wed Mar 14 23:50:42 2007
@@ -1,0 +1,10 @@
+<module name="mpu401_ks" type="exportdriver" installbase="system32/drivers" installname="mpu401_ks.sys" allowwarnings="true">
+	<include base="mpu401">.</include>
+	<include base="mpu401">..</include>
+	<importlibrary definition="mpu401.def" />
+	<library>ntoskrnl</library>
+	<library>portcls</library>
+	<define name="__USE_W32API" />
+	<file>mpu401.rc</file>
+	<file>adapter.cpp</file>
+</module>

Added: trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.rc?rev=26102&view=auto
==============================================================================
--- trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.rc (added)
+++ trunk/reactos/drivers/multimedia/mpu401_ks/mpu401.rc Wed Mar 14 23:50:42 2007
@@ -1,0 +1,5 @@
+#define REACTOS_VERSION_DLL
+#define REACTOS_STR_FILE_DESCRIPTION	"MPU401 KS Driver\0"
+#define REACTOS_STR_INTERNAL_NAME	"mpu401_ks\0"
+#define REACTOS_STR_ORIGINAL_FILENAME	"mpu401_ks.sys\0"
+#include <reactos/version.rc>




More information about the Ros-diffs mailing list