All of lore.kernel.org
 help / color / mirror / Atom feed
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;


  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.