From: Lucas Correia Villa Real <lucasvr@gobolinux.org>
To: erich@uruk.org
Cc: linux-kernel@vger.kernel.org
Subject: [patch] VMnet/VMware workstation 4.0
Date: Thu, 17 Apr 2003 13:48:56 -0300 [thread overview]
Message-ID: <200304171214.35344.lucasvr@gobolinux.org> (raw)
In-Reply-To: <200304160142.48072.lucasvr@gobolinux.org>
Is there a "correct" place at vmware.com to send these patches? I tryied
sending it to feature-request@vmware.com, but I got no response from them.
Anyway, below follows the patch providing support to devfs on the vmnet driver
for vmware workstation 4.0.
Lucas
--- driver.c.orig 2003-04-17 11:43:48.000000000 -0300
+++ driver.c 2003-04-17 11:55:14.000000000 -0300
@@ -1,5 +1,9 @@
/* **********************************************************
* Copyright 1998 VMware, Inc. All rights reserved. -- VMware Confidential
+ *
+ * Changes:
+ * 17-04-2003 - Lucas Correia Villa Real <lucasvr@gobolinux.org>
+ * Added support to DevFS.
* **********************************************************/
#define FILECODEINT 330
@@ -40,6 +44,7 @@
#define __KERNEL_SYSCALLS__
#include <asm/io.h>
+#include <linux/devfs_fs_kernel.h>
#include <linux/proc_fs.h>
#include <linux/file.h>
@@ -63,6 +68,10 @@
extern int VNetNetIf_Create(char *devName, VNetPort **ret, int hubNum);
extern int VNetBridge_Create(char *devName, VNetPort **ret);
+/*
+ * DevFS handle
+ */
+static devfs_handle_t devfs_handle;
/*
* Structure for cycle detection of host interfaces.
@@ -191,7 +200,7 @@
int
VNetRegister(int value)
{
- LOG(0, (KERN_WARNING "/dev/vmnet: VNetRegister called\n"));
+ LOG(0, (KERN_WARNING "vmnet: VNetRegister called\n"));
return 0;
}
@@ -277,7 +286,8 @@
int
init_module(void)
{
- int retval;
+ int retval, minor, devices;
+ char name[8];
/*
* First initialize everything, and as a last step register
@@ -287,7 +297,7 @@
retval = VNetProc_Init();
if (retval) {
- LOG(0, (KERN_NOTICE "/dev/vmnet: could not register proc fs\n"));
+ LOG(0, (KERN_NOTICE "vmnet: could not register proc fs\n"));
return -ENOENT;
}
@@ -303,14 +313,36 @@
vnetFileOps.open = VNetFileOpOpen;
vnetFileOps.release = VNetFileOpClose;
+#ifdef CONFIG_DEVFS_FS
+ retval = devfs_register_chrdev(VNET_MAJOR_NUMBER, "vmnet", &vnetFileOps);
+ if (retval < 0) {
+ LOG(0, (KERN_NOTICE "vmnet: could not register major device %d\n",
+ VNET_MAJOR_NUMBER));
+ return -ENOENT;
+ }
+
+ devfs_handle = devfs_mk_dir(NULL, "vmware", NULL);
+ if (! devfs_handle)
+ printk(KERN_ERR "vmnet: could not create 'vmware' device subdir\n");
+
+ devices = 10;
+ for (minor=0; minor<devices; minor++) {
+ snprintf (name, sizeof (name), "vmnet%d", minor);
+ devfs_register(devfs_handle, name,
+ DEVFS_FL_DEFAULT, VNET_MAJOR_NUMBER, minor,
+ S_IFCHR | S_IRUGO | S_IWUGO,
+ &vnetFileOps, NULL);
+ }
+#else
retval = register_chrdev(VNET_MAJOR_NUMBER, "vmnet", &vnetFileOps);
if (retval) {
- LOG(0, (KERN_NOTICE "/dev/vmnet: could not register major device %d\n",
+ LOG(0, (KERN_NOTICE "vmnet: could not register major device %d\n",
VNET_MAJOR_NUMBER));
VNetProc_Cleanup();
return -ENOENT;
}
-
+#endif /* CONFIG_DEVFS_FS */
+
#ifndef KERNEL_2_1
register_symtab(&vnet_syms);
#endif
@@ -340,9 +372,14 @@
{
int retval;
+#ifdef CONFIG_DEVFS_FS
+ devfs_unregister(devfs_handle);
+ retval = devfs_unregister_chrdev(VNET_MAJOR_NUMBER, "vmnet");
+#else
retval = unregister_chrdev(VNET_MAJOR_NUMBER, "vmnet");
+#endif
if (retval != 0 ) {
- LOG(0, (KERN_WARNING "/dev/vmnet: could not unregister major device
%d\n",
+ LOG(0, (KERN_WARNING "vmnet: could not unregister major device %d\n",
VNET_MAJOR_NUMBER));
}
VNetProc_Cleanup();
@@ -403,7 +440,7 @@
int hubNum;
int retval;
- LOG(1, (KERN_DEBUG "/dev/vmnet: open called by PID %d (%s)\n",
+ LOG(1, (KERN_DEBUG "vmnet: open called by PID %d (%s)\n",
current->pid, current->comm));
/*
@@ -449,7 +486,7 @@
filp->private_data = port;
- LOG(1, (KERN_DEBUG "/dev/vmnet: port on hub %d successfully opened\n",
hubNum));
+ LOG(1, (KERN_DEBUG "vmnet: port on hub %d successfully opened\n",
hubNum));
compat_mod_inc_refcount;
@@ -485,7 +522,7 @@
VNetJack *peer;
if (!port) {
- LOG(1, (KERN_DEBUG "/dev/vmnet: bad file pointer on close\n"));
+ LOG(1, (KERN_DEBUG "vmnet: bad file pointer on close\n"));
#ifdef KERNEL_2_1
return -EBADF;
#else
@@ -544,7 +581,7 @@
VNetPort *port = (VNetPort*)filp->private_data;
if (!port) {
- LOG(1, (KERN_DEBUG "/dev/vmnet: bad file pointer on read\n"));
+ LOG(1, (KERN_DEBUG "vmnet: bad file pointer on read\n"));
return -EBADF;
}
@@ -588,7 +625,7 @@
VNetPort *port = (VNetPort*)filp->private_data;
if (!port) {
- LOG(1, (KERN_DEBUG "/dev/vmnet: bad file pointer on write\n"));
+ LOG(1, (KERN_DEBUG "vmnet: bad file pointer on write\n"));
return -EBADF;
}
@@ -624,7 +661,7 @@
VNetPort *port = (VNetPort*)filp->private_data;
if (!port) {
- LOG(1, (KERN_DEBUG "/dev/vmnet: bad file pointer on poll\n"));
+ LOG(1, (KERN_DEBUG "vmnet: bad file pointer on poll\n"));
return -EBADF;
}
@@ -646,7 +683,7 @@
VNetPort *port = (VNetPort*)filp->private_data;
if (!port) {
- LOG(1, (KERN_DEBUG "/dev/vmnet: bad file pointer on select\n"));
+ LOG(1, (KERN_DEBUG "vmnet: bad file pointer on select\n"));
return -EBADF;
}
@@ -723,7 +760,7 @@
VNet_SetMacAddrIOCTL macAddr;
if (!port) {
- LOG(1, (KERN_DEBUG "/dev/vmnet: bad file pointer on ioctl\n"));
+ LOG(1, (KERN_DEBUG "vmnet: bad file pointer on ioctl\n"));
return -EBADF;
}
@@ -773,7 +810,7 @@
VNetFree(&new->jack);
if (retval2) {
// assert xxx redo this
- LOG(1, (KERN_NOTICE "/dev/vmnet: cycle on connect failure\n"));
+ LOG(1, (KERN_NOTICE "vmnet: cycle on connect failure\n"));
return -EBADF;
}
return retval;
next prev parent reply other threads:[~2003-04-17 16:36 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-11 10:34 Small fix for VMWare 3.2 (3.x?) on Redhat 9 (any 2.4.20+ kernel?) erich
2003-04-16 4:42 ` Lucas Correia Villa Real
2003-04-17 16:48 ` Lucas Correia Villa Real [this message]
2003-04-17 20:08 ` wwp
-- strict thread matches above, loose matches on Subject: below --
2003-04-17 18:12 [patch] VMnet/VMware workstation 4.0 Petr Vandrovec
2003-04-17 19:28 ` Daniel Gryniewicz
2003-04-18 18:10 ` Lucas Correia Villa Real
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200304171214.35344.lucasvr@gobolinux.org \
--to=lucasvr@gobolinux.org \
--cc=erich@uruk.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.