[Haiku-commits] r33099 - in haiku/branches/components/gallium3d: headers/private headers/private/drm src/add-ons/kernel src/add-ons/kernel/drivers src/add-ons/kernel/drivers/drm src/add-ons/kernel/drivers/drm/test src/add-ons/kernel/drm

aljen at mail.berlios.de aljen at mail.berlios.de
Sat Sep 12 17:46:42 CEST 2009


Author: aljen
Date: 2009-09-12 17:46:37 +0200 (Sat, 12 Sep 2009)
New Revision: 33099
ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33099&view=rev

Added:
   haiku/branches/components/gallium3d/headers/private/drm/
   haiku/branches/components/gallium3d/headers/private/drm/drm_module.h
   haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/
   haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/Jamfile
   haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/
   haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/Jamfile
   haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/drm_test.c
   haiku/branches/components/gallium3d/src/add-ons/kernel/drm/
   haiku/branches/components/gallium3d/src/add-ons/kernel/drm/Jamfile
   haiku/branches/components/gallium3d/src/add-ons/kernel/drm/drm_module.c
Modified:
   haiku/branches/components/gallium3d/src/add-ons/kernel/Jamfile
   haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/Jamfile
Log:
Added empty kernel drm code

Added: haiku/branches/components/gallium3d/headers/private/drm/drm_module.h
===================================================================
--- haiku/branches/components/gallium3d/headers/private/drm/drm_module.h	2009-09-12 15:37:38 UTC (rev 33098)
+++ haiku/branches/components/gallium3d/headers/private/drm/drm_module.h	2009-09-12 15:46:37 UTC (rev 33099)
@@ -0,0 +1,12 @@
+#ifndef __DRM_MODULE_H__
+#define __DRM_MODULE_H__
+
+#include <module.h>
+
+#define DRM_MODULE_NAME	"drm/drm"
+
+typedef struct {
+	module_info info;
+} drm_module_info;
+
+#endif // __DRM_MODULE_H__

Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/Jamfile
===================================================================
--- haiku/branches/components/gallium3d/src/add-ons/kernel/Jamfile	2009-09-12 15:37:38 UTC (rev 33098)
+++ haiku/branches/components/gallium3d/src/add-ons/kernel/Jamfile	2009-09-12 15:46:37 UTC (rev 33099)
@@ -5,6 +5,7 @@
 SubInclude HAIKU_TOP src add-ons kernel console ;
 SubInclude HAIKU_TOP src add-ons kernel cpu ;
 SubInclude HAIKU_TOP src add-ons kernel debugger ;
+SubInclude HAIKU_TOP src add-ons kernel drm ;
 SubInclude HAIKU_TOP src add-ons kernel drivers ;
 SubInclude HAIKU_TOP src add-ons kernel file_cache ;
 SubInclude HAIKU_TOP src add-ons kernel file_systems ;

Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/Jamfile
===================================================================
--- haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/Jamfile	2009-09-12 15:37:38 UTC (rev 33098)
+++ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/Jamfile	2009-09-12 15:46:37 UTC (rev 33099)
@@ -5,6 +5,7 @@
 SubInclude HAIKU_TOP src add-ons kernel drivers bus ;
 SubInclude HAIKU_TOP src add-ons kernel drivers audio ;
 SubInclude HAIKU_TOP src add-ons kernel drivers common ;
+SubInclude HAIKU_TOP src add-ons kernel drivers drm ;
 SubInclude HAIKU_TOP src add-ons kernel drivers disk ;
 SubInclude HAIKU_TOP src add-ons kernel drivers dvb ;
 SubInclude HAIKU_TOP src add-ons kernel drivers input ;

Added: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/Jamfile
===================================================================
--- haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/Jamfile	2009-09-12 15:37:38 UTC (rev 33098)
+++ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/Jamfile	2009-09-12 15:46:37 UTC (rev 33099)
@@ -0,0 +1,3 @@
+SubDir HAIKU_TOP src add-ons kernel drivers drm ; 
+
+SubInclude HAIKU_TOP src add-ons kernel drivers drm test ;

Added: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/Jamfile
===================================================================
--- haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/Jamfile	2009-09-12 15:37:38 UTC (rev 33098)
+++ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/Jamfile	2009-09-12 15:46:37 UTC (rev 33099)
@@ -0,0 +1,7 @@
+SubDir HAIKU_TOP src add-ons kernel drivers drm test ;
+
+UsePrivateHeaders kernel drm ;
+
+KernelAddon drm_test :
+	drm_test.c
+	;

Added: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/drm_test.c
===================================================================
--- haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/drm_test.c	2009-09-12 15:37:38 UTC (rev 33098)
+++ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/drm_test.c	2009-09-12 15:46:37 UTC (rev 33099)
@@ -0,0 +1,134 @@
+#include <Drivers.h>
+#include <KernelExport.h>
+
+#include <drm_module.h>
+#include <lock.h>
+
+#include <string.h>
+#include <stdio.h>
+
+#define DEVICE_NAME "drm/0"
+
+int32 api_version = B_CUR_DRIVER_API_VERSION;
+static mutex gLock;
+drm_module_info* gDrmModule;
+
+static status_t
+drm_test_open(const char* name, uint32 flags, void** cookie)
+{
+	dprintf("drm_test: drm_test_open\n");
+	*cookie = NULL;
+	return B_OK;
+}
+
+
+static status_t
+drm_test_close(void* cookie)
+{
+	dprintf("drm_test: drm_test_close\n");
+	return B_OK;
+}
+
+
+static status_t
+drm_test_freecookie(void* cookie)
+{
+	dprintf("drm_test: drm_test_freecookie\n");
+	return B_OK;
+}
+
+
+static status_t
+drm_test_ioctl(void* cookie, uint32 op, void* buffer, size_t length)
+{
+	dprintf("drm_test: drm_test_ioctl op: %ld buf: %p, len: %ld\n", op,
+		buffer, length);
+	return EPERM;
+}
+
+
+static status_t
+drm_test_read(void* cookie, off_t pos, void* buffer, size_t* length)
+{
+	dprintf("drm_test: drm_test_read gDrmModule: %p len: %ld\n",
+		gDrmModule, *length);
+	*length = 0;
+	return B_NOT_ALLOWED;
+}
+
+
+static status_t
+drm_test_write(void* cookie, off_t pos, const void* buffer, size_t *length)
+{
+	dprintf("drm_test: drm_test_write\n");
+	*length = 0;
+	return B_NOT_ALLOWED;
+}
+
+
+status_t
+init_hardware()
+{
+	dprintf("drm_test: init_hardware\n");
+	return B_OK;
+}
+
+
+const char**
+publish_devices(void)
+{
+	dprintf("drm_test: publish_devices\n");
+	static const char* devices[] = {
+		DEVICE_NAME,
+		NULL
+	};
+	return devices;
+}
+
+
+device_hooks*
+find_device(const char* name)
+{
+	dprintf("drm_test: find_device name: %s\n", name);
+	static device_hooks hooks = {
+		&drm_test_open,
+		&drm_test_close,
+		&drm_test_freecookie,
+		&drm_test_ioctl,
+		&drm_test_read,
+		&drm_test_write,
+		NULL,
+		NULL,
+		NULL,
+		NULL
+	};
+	
+	if (!strcmp(name, DEVICE_NAME))
+		return &hooks;
+	
+	return NULL;
+}
+
+
+status_t
+init_driver(void)
+{
+	dprintf("drm_test: init_driver\n");
+	if (get_module(DRM_MODULE_NAME, (module_info**)&gDrmModule) < B_OK) {
+		dprintf("drm_test: cannot get module \"%s\"\n", DRM_MODULE_NAME);
+		return B_ERROR;
+	}
+
+	dprintf("drm_test: \"%s\" module at %p\n", DRM_MODULE_NAME,
+		gDrmModule);
+
+	return B_OK;	
+}
+
+
+void
+uninit_driver(void)
+{
+	dprintf("drm_test: uninit_driver\n");
+	put_module(DRM_MODULE_NAME);
+}

Added: haiku/branches/components/gallium3d/src/add-ons/kernel/drm/Jamfile
===================================================================
--- haiku/branches/components/gallium3d/src/add-ons/kernel/drm/Jamfile	2009-09-12 15:37:38 UTC (rev 33098)
+++ haiku/branches/components/gallium3d/src/add-ons/kernel/drm/Jamfile	2009-09-12 15:46:37 UTC (rev 33099)
@@ -0,0 +1,8 @@
+SubDir HAIKU_TOP src add-ons kernel drm ;
+
+UsePrivateKernelHeaders ;
+UsePrivateHeaders kernel drm ;
+
+KernelAddon drm :
+	drm_module.c
+	;

Added: haiku/branches/components/gallium3d/src/add-ons/kernel/drm/drm_module.c
===================================================================
--- haiku/branches/components/gallium3d/src/add-ons/kernel/drm/drm_module.c	2009-09-12 15:37:38 UTC (rev 33098)
+++ haiku/branches/components/gallium3d/src/add-ons/kernel/drm/drm_module.c	2009-09-12 15:46:37 UTC (rev 33099)
@@ -0,0 +1,63 @@
+#include <KernelExport.h>
+#include <Drivers.h>
+
+#include <string.h>
+
+#include <drm_module.h>
+#include <lock.h>
+
+
+#define TRACE_DRM_MODULE
+#ifdef TRACE_DRM_MODULE
+#	define TRACE(x...) dprintf(x)
+#else
+#	define TRACE(x...)
+#endif
+
+
+static status_t
+drm_module_init()
+{
+	TRACE("drm: drm_module_init\n");
+	return B_OK;	
+}
+
+
+static status_t
+drm_module_uninit()
+{
+	TRACE("drm: drm_module_uninit\n");
+	return B_OK;
+}
+
+
+static status_t
+drm_std_ops(int32 op, ...)
+{
+	TRACE("drm: drm_std_ops(0x%lx)\n", op);
+	switch (op) {
+		case B_MODULE_INIT:
+			return drm_module_init();
+		case B_MODULE_UNINIT:
+			return drm_module_uninit();
+		default:
+			return B_ERROR;
+	}
+	return B_OK;
+}
+
+
+static drm_module_info sDrmModule = {
+	// module info
+	{
+		DRM_MODULE_NAME,
+		0,
+		drm_std_ops
+	}
+};
+
+
+module_info *modules[] = {
+		(module_info *)&sDrmModule,
+		NULL
+};




More information about the Haiku-commits mailing list