Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Mar 2008 03:50:02 GMT
From:      fchang@cs.ubc.ca
To:        freebsd-emulation@FreeBSD.org
Subject:   Re: ports/117350: compile error in emulators/vmware3
Message-ID:  <200803040350.m243o21q009051@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/117350; it has been noted by GNATS.

From: fchang@cs.ubc.ca
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/117350: compile error in emulators/vmware3
Date: Mon, 3 Mar 2008 19:26:40 -0800 (PST)

 Please test this patch.  I tested it on FreeBSD RELEASE-7.0
 i386 uniprocessor, and I could boot Windows XP from it.
 
 --- work/vmware-distrib/vmmon-only/freebsd/driver.c.old 2008-03-03 17:03:25.000000000 +0000
 +++ work/vmware-distrib/vmmon-only/freebsd/driver.c     2008-03-03 17:04:13.000000000 +0000
 @@ -397,12 +397,12 @@
           if ((error = falloc(td, &fp, &fd)) != 0)
                   return error;
 
 -       FILEDESC_LOCK(p->p_fd);
 +       FILEDESC_XLOCK(p->p_fd);
           fp->f_data = data;
           fp->f_flag = flags & FMASK;
           fp->f_ops = &vmmon_fileops;
           fp->f_type = DTYPE_SOCKET;
 -       FILEDESC_UNLOCK(p->p_fd);
 +       FILEDESC_XUNLOCK(p->p_fd);
 
    #if __FreeBSD_version >= 501111
           /* falloc now returns TWO references to the file, not one. */
 @@ -1309,6 +1309,19 @@
           return FALSE;
    }
 
 +static vm_paddr_t
 +get_avail_end(void)
 +{
 +        vm_paddr_t avail_end;
 +        int i;
 +        avail_end = phys_avail[1];
 +        for (i = 0; phys_avail[i + 1]; i += 2) {
 +                if (phys_avail[i + 1] > avail_end)
 +                        avail_end = phys_avail[i + 1];
 +        }
 +        return avail_end;
 +}
 +
    /*
     * Allocate and lock numPages of memory physically continguous addresses
     * below 4GB.
 @@ -1341,6 +1354,7 @@
                   VMDEBUG("vmmon_alloc_low_pages: malloc MemRange failed\n");
                   return ENOMEM;
           }
 +       vm_paddr_t avail_end = get_avail_end();
           if (avail_end > ISA_DMA_BOUNCE_THRESHOLD)
                   high = trunc_page(ISA_DMA_BOUNCE_THRESHOLD);
           else
 --- work/vmware-distrib/vmmon-only/include/vm_asm.h.old 2008-03-03 17:03:22.000000000 +0000
 +++ work/vmware-distrib/vmmon-only/include/vm_asm.h     2008-03-03 17:07:21.000000000 +0000
 @@ -1020,6 +1020,7 @@
     *-----------------------------------------------------------------------------
     */
 
 +#if 0
    static INLINE void
    Div643264(uint64 dividend,
              uint32 divisor,
 @@ -1047,6 +1048,7 @@
       *quotient = (uint64)hQuotient << 32 | lQuotient;
    }
    #endif
 +#endif
 
 
    #endif /* VM_ASM_H */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200803040350.m243o21q009051>