summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Hüttel <dilfridge@gentoo.org>2013-10-19 11:42:51 +0000
committerAndreas Hüttel <dilfridge@gentoo.org>2013-10-19 11:42:51 +0000
commit52f32376a63008fe72b27557bba0dd3f947510c0 (patch)
treef9e35a9755c9d1eb8536c22d6ef5d3cfc54ed77d /app-emulation/vmware-modules
parentBump regex-pcre-builtin to 0.94.4.7.8.31 (diff)
downloadhistorical-52f32376a63008fe72b27557bba0dd3f947510c0.tar.gz
historical-52f32376a63008fe72b27557bba0dd3f947510c0.tar.bz2
historical-52f32376a63008fe72b27557bba0dd3f947510c0.zip
Version bump, added without keywords for testing. Bug 484098. Thanks to Billy DeVincentis for the files.
Package-Manager: portage-2.2.7/cvs/Linux x86_64 Manifest-Sign-Key: 0xEBE6A336BE19039C!
Diffstat (limited to 'app-emulation/vmware-modules')
-rw-r--r--app-emulation/vmware-modules/ChangeLog12
-rw-r--r--app-emulation/vmware-modules/Manifest40
-rw-r--r--app-emulation/vmware-modules/files/279-3.10.0.patch809
-rw-r--r--app-emulation/vmware-modules/files/279-apic.patch12
-rw-r--r--app-emulation/vmware-modules/files/279-makefile-include.patch65
-rw-r--r--app-emulation/vmware-modules/files/279-makefile-kernel-dir.patch85
-rw-r--r--app-emulation/vmware-modules/files/279-netdevice.patch24
-rw-r--r--app-emulation/vmware-modules/files/279-putname.patch13
-rw-r--r--app-emulation/vmware-modules/files/279-vmblock.patch27
-rw-r--r--app-emulation/vmware-modules/vmware-modules-279.0.ebuild84
10 files changed, 1155 insertions, 16 deletions
diff --git a/app-emulation/vmware-modules/ChangeLog b/app-emulation/vmware-modules/ChangeLog
index c4931a6318df..1f02d226ed80 100644
--- a/app-emulation/vmware-modules/ChangeLog
+++ b/app-emulation/vmware-modules/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for app-emulation/vmware-modules
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/ChangeLog,v 1.107 2013/08/11 17:24:06 dilfridge Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/ChangeLog,v 1.108 2013/10/19 11:42:47 dilfridge Exp $
+
+*vmware-modules-279.0 (19 Oct 2013)
+
+ 19 Oct 2013; Andreas K. Huettel <dilfridge@gentoo.org>
+ +files/279-3.10.0.patch, +files/279-apic.patch,
+ +files/279-makefile-include.patch, +files/279-makefile-kernel-dir.patch,
+ +files/279-netdevice.patch, +files/279-putname.patch,
+ +files/279-vmblock.patch, +vmware-modules-279.0.ebuild:
+ Version bump, added without keywords for testing. Bug 484098. Thanks to Billy
+ DeVincentis for the files.
11 Aug 2013; Andreas K. Huettel <dilfridge@gentoo.org>
+files/264-3.10.0.patch, +files/271-3.10.0.patch,
diff --git a/app-emulation/vmware-modules/Manifest b/app-emulation/vmware-modules/Manifest
index f7a3ebed8663..c4d6161fb02e 100644
--- a/app-emulation/vmware-modules/Manifest
+++ b/app-emulation/vmware-modules/Manifest
@@ -27,26 +27,36 @@ AUX 271-makefile-kernel-dir.patch 2153 SHA256 d76b1028d21b804836e36478d243cd7914
AUX 271-netdevice.patch 833 SHA256 8f17ce379abda45a8f94e1dcd6e43367273f97f76edd41f9941beb3b1730a751 SHA512 b4ec7c1694968a1843f10e8bfe0dbfdc99bd3b5fc1391456d91a3648b848b82df681a0748d967afa19e728c4d19b79b6a3cb9fd3e15a52a5cab048a6ac9b06a9 WHIRLPOOL b0cabe2ec1b8ca52d427c02593d6057c98d4ed00c578d006de65460138c37a5be76a7938d85f5a35eb6f49ee5e34065ce62b60a51b0ccf021639a59b27aeac8a
AUX 271-putname.patch 394 SHA256 b8103d3c72c24696e974e49dcdcdf2d5a2b2c2fdd5f6ca050842b840e906ba77 SHA512 86a0a0ec3ff225940190056e85d498fd7eb260bcc52882fea8921398f572bc46f56c3f2941d3f3d1587a07bc72c8885cbddacf632d2b5fed7d8c9d284399d6d8 WHIRLPOOL e1e8afcafe00131fd6d90b61e5d911da69d7c26b7fd19be085eb5cfd23c2ab19784ae5ddf18928f9cc4a178d87c6d51e8de27dfab8507e2d57fc18868fde9f45
AUX 271-vmmon.patch 1581 SHA256 a4e89766232d0fc0456bb026978dedca17fcc62e247c8d65ae747b537e62fd13 SHA512 10aca60b959647c058fa69f851892a0245acad971028876da8d0a0e6002d0e8f6f2677fd0d9b140ee8a1a68cf2cfa3f8937a992f8b0e7e163aa6bcc17b75c979 WHIRLPOOL 28d1a34e89c7a995dbde48d87d8942c6f58e61f4a24189a1463c148c843fdf16cea7df497993eb6fb8d8de228f07ae8a44233bb63e42b54ab1f762e7e24889ba
+AUX 279-3.10.0.patch 23418 SHA256 346d1ca7705dd5f791e0d69cdbb346ebd31f2f4f11f3989c23d1a89e11e1b91b SHA512 878678f951b05137deb1656ccd7fd3185887f02649f2a223ef60ccecdedc7aeda6ca08ddd108e379734b5e04ef11d326b20e45c069c53cc52b7a6869b8db6410 WHIRLPOOL 196515870addefcd6857dd3e44a04b8a6c0da39185e7cea7826f1498f5a4c17997ebe43aada7f22a1c3fa94302576ced2a7ed36e2452de00711256c83f7fa41e
+AUX 279-apic.patch 302 SHA256 60e7df881281fedcabe9ea4427b324b5e1142a1a2b6ab5236ac0843bd1051048 SHA512 003240043e5875d8c6425c146e708eb3c3d8be7fa48a2ac42b3071f00dafdbd51f7796d6f884298b135adccaf8a3eac32fd82b34a436a724da125dac5f6261d7 WHIRLPOOL 4707d0ddd532d5ec27ee2ba3d0fb25c1972bbc9f958b4b89f2f5cceffdf955ba88cd1be0cde046aa5fa688d52faeab5ccf3f03bbccb3e9b088abc37ad579e8e0
+AUX 279-makefile-include.patch 2501 SHA256 208121855fe18ecb279ff40f2833463559363461c2170d32c17040211a01f169 SHA512 c498c025c7eb025f6554cee683242dd73e4a284e4b28c95b75339f4f4a912a156acc1845881fbd78bf399c2092af7413f5d6c4782cd066527ea275518b411c1d WHIRLPOOL e03a6d7139ab7b309e0ca1527cb8b52a8f84f5f5d997a510305d2a6ccdd39f33b18c7276df8ac78d92d2a17a66236f582baaa5e374069d3912090544908a0338
+AUX 279-makefile-kernel-dir.patch 2153 SHA256 d76b1028d21b804836e36478d243cd7914435a34f3fe014058e0a9cc7a020653 SHA512 f18339dc8ac4c864b0c2fb234ad2db8f4638a5cd28e8fd11b5593c82107925b41b42e0d0acac52232a373780d79a3e397f70886534cdf889055e86cfda718f62 WHIRLPOOL 70c869bf4efab6843856addd0c5f5a295ed2fe38f9fc2a8ab2ca55523cd39cb92018d6bd0dac75658fa0f5260962c98f0bbd001593f3f11c2d204c693061c5b6
+AUX 279-netdevice.patch 833 SHA256 8f17ce379abda45a8f94e1dcd6e43367273f97f76edd41f9941beb3b1730a751 SHA512 b4ec7c1694968a1843f10e8bfe0dbfdc99bd3b5fc1391456d91a3648b848b82df681a0748d967afa19e728c4d19b79b6a3cb9fd3e15a52a5cab048a6ac9b06a9 WHIRLPOOL b0cabe2ec1b8ca52d427c02593d6057c98d4ed00c578d006de65460138c37a5be76a7938d85f5a35eb6f49ee5e34065ce62b60a51b0ccf021639a59b27aeac8a
+AUX 279-putname.patch 394 SHA256 b8103d3c72c24696e974e49dcdcdf2d5a2b2c2fdd5f6ca050842b840e906ba77 SHA512 86a0a0ec3ff225940190056e85d498fd7eb260bcc52882fea8921398f572bc46f56c3f2941d3f3d1587a07bc72c8885cbddacf632d2b5fed7d8c9d284399d6d8 WHIRLPOOL e1e8afcafe00131fd6d90b61e5d911da69d7c26b7fd19be085eb5cfd23c2ab19784ae5ddf18928f9cc4a178d87c6d51e8de27dfab8507e2d57fc18868fde9f45
+AUX 279-vmblock.patch 1217 SHA256 6c25464162853bbf4d149314d13a7de3212d20e53269c918ab65c0d02252fba6 SHA512 34b26256a36c483ac917f483e5f87cb1e6a72c21a9113944f7525156d80483970bbee7c68863b6c96f11f9be5689e457dacb92ef1cbca6cc39c4fc72b4e88a0e WHIRLPOOL 1ad37266559f13ac8bde700460340d16bf152b44a8e01827916612ac13013fa280eaf1c4fa0b76944959ac4d6b3dde709e0f823c2259690307a0266f86b71fba
AUX hardened.patch 5052 SHA256 191cf892bfb9a6288d110191de824bf6243bc6f48f1e62ab49f3582c7ade5af6 SHA512 52dcca8d9f689f0a0d0ca369c0c7ce0d177de3529d2d1325330eb5a9e940a55e8930bbbe7374793bdf29cbdefac9727e9eb21d00f81ad4f5eddba3a51597b7a5 WHIRLPOOL 539731bc36f3e292403f55d74c353deeb28baa312f726b36d2a6060adf3483dfa2ed011baf93eff941fa754ef62f4d6da86868c40550ee2292c4a711e061bde0
EBUILD vmware-modules-238.6.ebuild 2216 SHA256 495f742c98fc4ea4aaaa9daf1ffbc6d79e56a77e2d032cfe0ebc6cf409fa904c SHA512 70d3d107ac3b72215054efdf355f2731720dfdbc5b4ba6736b5b12a4f7809b29cc04809b30c208398c90152ba14ee6124d82dc067d6c0342538a2c3c8e9075fe WHIRLPOOL 9ff331f9b7c6bde939730b0b2511776f14607b768c1748ab612f2f52754736cb889cfdfb16186b0d6ef38fd83bdd07c1aabe2095059e8f79f89d8c72ab470675
EBUILD vmware-modules-264.5.ebuild 2296 SHA256 6cef014c0bec60e55ac83f18954680b89a35e031049b745ef864e1ffaac06bc6 SHA512 c63329e2ed5cd845f13935da9277dc3c9145f40832b1b7eb79fe5767fda241a0ceca004da080b164c3c25ed04975739ca9ed8ea4b9f941e33713e68a0032355d WHIRLPOOL ca5d4cc0523e6758a8013603812f6ca8ee03aaf480ae6a9c6123fb692c2900618d88cb1f0e6f94f4b167d66c8b4b3ee52867c4aa50ab9f2bc05649971fefae4d
EBUILD vmware-modules-271.2.ebuild 2178 SHA256 1eea69a1154fd39be0ecfd60b0097be58265c7a3ca91949ea0c801380c91efa5 SHA512 58c108869ff3b73de5518ffec240e30398f261ca4c6b8a36172a36c494e9ca29a89ef272bddca6cdc38aa2cb3b8c59bdea79d4ad2c21ded6a1e592d3b23a662c WHIRLPOOL 1af685b6e45df9ccf18215b71653d3eb5991afa3830d358179c346a546f3ebfabae84307a1344b8cad64ccb3390b9f315926fd688a88bec89ed7c9c19445b910
-MISC ChangeLog 23431 SHA256 7c8b435026670569f969b6e2ba7dba8813fe7a389c4ce695c78ab8aad2c515d8 SHA512 8eeaf7df6a9d830e61a8ba3dd70edb9b7316bdc756c08a4beafdf50bdc17213adc0d12f6773c132d70c364ca19d4780334b445cc249553c0d79fe716ddb88799 WHIRLPOOL e0f0f5778a7cb5fa1857e1d075786f28c2bd67c3a2615b2d1e46c7abec1231d46458cc67ff311e3220990fb0379fee0cd297efa3679e2abbb2da07e7c5ffadd0
+EBUILD vmware-modules-279.0.ebuild 2237 SHA256 6558e769bb7b661db3a9d9d3a7460fea1edf46261459c0a4e0e7b9bab087f269 SHA512 92d13a3f6e45c12ebe7b483440009012f4570da1e8e012e9981bb6f1c237cf626414348474d08fa28563edce44fadc838fd2c15cb288b8f47904146c0dc72a9f WHIRLPOOL 1db2de061cb23b8af2246fbf6d7dc09413c2dd984496932a92619d51fb332c4bbbea668c3dc902397b2b448b8b205da58c4ada0a320b8fca71c8a02ceb84c64e
+MISC ChangeLog 23874 SHA256 4759186b8e0bf4257c6791499f1a57f66f4b3188565ecad223c88f32ddc5136c SHA512 aebfbea0b27f2842d6d698570be4f1c3edd5a7affcfac895c53b6e814f0fc55fa8bd605e1922b9ac14f8e0f5664085f6825c4e266b576f143c402444907c8140 WHIRLPOOL 647f4f2a896959cc1cc0276c03d5c9717379983fa1f74fc750a595aeeb9ed15b9a7849969bc2042eaad09397c0c004d67b0fcf24f26e57d7ce637f4cb1dbe5dc
MISC metadata.xml 318 SHA256 ac8fd80ce620f3ec98dfc0dac974408e862ac259c9e43830465598393faa95d0 SHA512 9f7b8c607064b29a2a80ab3af8e5a442a2af1cee3ef9f1929a525e8b3724cf7fef0a4de8d78f32b2bc30f1f734ecc204a3db06a0bcf1e09dbe3d6b8d49dba458 WHIRLPOOL de36c0b8febb345a20d876fceeaeab2bf6f2399620174028fe5bf956cdc871e6623981f8e42562668b34dbf0cf8c4fe35035f4696779f582f679614682c81c72
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.20 (GNU/Linux)
+Version: GnuPG v2.0.22 (GNU/Linux)
-iQIcBAEBCAAGBQJSB8jMAAoJEJS/30SErRQv17gP/3RJZNZyWFFIXD4NxNbTtkGh
-D7FENFzHoJIKs7CihF4LKu8JKlS0cSgkQA0es+yg+1DopGFMRYmiqx1ErJYaRpC+
-pjqx4Njp5g5HhN5ewaxta3s00gaE4CiuZI92oQhh9xQA3Agp2whXqVQ+n6L5yqq6
-IlIo1FvKPlnPGRh7cOOgAxoisTPvvS4+7xorsxXY3HNmyO7sHeWEyDeAXbxQCoa0
-ZFJr/FClCJb+6k+nge/wtgP7e4kdyfvBibOlsxBgEaM45cbNdJShk/PQ6b5sZ8by
-s0m+MnvVH7S4D50jk4BIjkcRGu5H3I7KY89gJ33f+MS+5/igkuB59gsgz8zP/DUP
-ql0ATPDNJI0na9QORNBSpokkHGnSVJji7PUZbZedcPWSdtnuNx+fpZ8oDfbKHZj3
-yEUz9RgCyy2ckElNklihqMa0ORi+2nP83YR0SO102HCDq/fhY8ImhmtfFVLpcTok
-AMw694/1lB4XyUI8fK4newL8WPKfUB2+sk2IYIMYDaaJiooYJFBX8bhpFwqM2MDe
-DBdDF8TkeQodtn4UHgNKClZS5Bpqx9w1iBAkO9sdnZq4ZW/gqm+qFkzReJL2E0ts
-hl7euxeLSKxjhX7PDaYqzMJ4T68EFN7EP6/srV2lrxomRhCitBkWnlsP3kqZ52bY
-eq36il+qfgeW8LxJODbJ
-=aWzE
+iQJ8BAEBCABmBQJSYnBEXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
+ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQwNzlCRDk4QzA4RENBRkYzQUEwRjQzMDlF
+QkU2QTMzNkJFMTkwMzlDAAoJEOvmoza+GQOcjx4P/2qGYKHigokxPVw8zby6022c
+BRUr8hYAHtPvsfvIOGv2bPiaJmVGa4k4WqbNx9ASv8SzUugC77r98oslMeAb+GmJ
+X9swY6UT85dnIXBW3JeYOlWUscUhSUDUYd639UQWcHLjefXHO2x34C0uDmwzcAuB
+oFgWw92tuk2DDRHTwleRyId8rPWB+gIvVx9IpUd2ee72Y5lPj/IQolYF9ik9yIJX
+ci5016Jy+DhzXRoj/kyR5P8Wzqgj9SBXPCfbE5NsJ9S4iblwGmXgzl100F06K1rw
+s6/sdosdAgmuXr5aKcAk48CDXsOgUF5es4esWM8THt4/uvxp2F3HUcX93aSblNnR
+iLr0uta3TgP7y8oFnmEROJC/g8MpMnehVluLqPWe0RZ1dnKFMsJ5GrpPyapefn1z
+SIp7WB9H4uFOHWsbP50gj50pRCUNT2nec/zB7B06bYohzJdRyliKB/p82FrmWc8h
+yMmiMTFcKa/pakdaSzMMu5PXaY9Vwl0P9j2dtUd3zl9Yb2CpoSfCcRK/EVyulZg1
+00KaiiNPzsvsJGxwS7oVsf6xmm6EIY1CHtS7rcsNnBNqdyrJLzf441JciBfc1RDw
+HB/24/gvB4iPfQUr5GCStRMsCJ2TYs/Ns7fUqkMKduyKHmZqePCXk8f6oX1Zfcj6
+HMjD6s3yGvW7RWppjW5Y
+=6gXD
-----END PGP SIGNATURE-----
diff --git a/app-emulation/vmware-modules/files/279-3.10.0.patch b/app-emulation/vmware-modules/files/279-3.10.0.patch
new file mode 100644
index 000000000000..7795b18f5d7e
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-3.10.0.patch
@@ -0,0 +1,809 @@
+--- a/vmnet-only/bridge.c
++++ b/vmnet-only/bridge.c
+@@ -105,8 +105,6 @@ static Bool VNetBridgeCycleDetect(VNetJack *this, int generation);
+ static Bool VNetBridgeIsDeviceWireless(struct net_device *dev);
+ static void VNetBridgePortsChanged(VNetJack *this);
+ static int VNetBridgeIsBridged(VNetJack *this);
+-static int VNetBridgeProcRead(char *page, char **start, off_t off,
+- int count, int *eof, void *data);
+ static void VNetBridgeComputeHeaderPosIPv6(struct sk_buff *skb);
+ static PacketStatus VNetCallSMACFunc(struct SMACState *state,
+ struct sk_buff **skb, void *startOfData,
+@@ -225,6 +223,53 @@ VNetBridgeDevCompatible(VNetBridge *bridge, // IN: Bridge
+ /*
+ *----------------------------------------------------------------------
+ *
++ * VNetBridgeProcShow --
++ *
++ * Callback for read operation on this bridge entry in vnets proc fs.
++ *
++ * Results:
++ * Length of read operation.
++ *
++ * Side effects:
++ * None.
++ *
++ *----------------------------------------------------------------------
++ */
++
++int
++VNetBridgeProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into
++ void *data) // IN: client data - pointer to bridge
++{
++ VNetBridge *bridge = (VNetBridge*)data;
++
++ if (!bridge) {
++ return 0;
++ }
++
++ VNetPrintPort(&bridge->port, seqf);
++
++ seq_printf(seqf, "dev %s ", bridge->name);
++
++ seq_printf(seqf, "\n");
++
++ return 0;
++}
++
++static int proc_bridge_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, VNetBridgeProcShow, PDE_DATA(inode));
++}
++
++static const struct file_operations proc_bridge_fops = {
++ .open = proc_bridge_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = seq_release,
++};
++
++/*
++ *----------------------------------------------------------------------
++ *
+ * VNetBridge_Create --
+ *
+ * Creates a bridge. Allocates struct, allocates internal device,
+@@ -319,17 +364,14 @@ VNetBridge_Create(const char *devName, // IN: name of device (e.g., "eth0")
+ * Make proc entry for this jack.
+ */
+
+- retval = VNetProc_MakeEntry(bridge->port.jack.name, S_IFREG,
+- &bridge->port.jack.procEntry);
++ retval = VNetProc_MakeEntryOps(bridge->port.jack.name, S_IFREG,
++ &bridge->port.jack.procEntry, &proc_bridge_fops, bridge);
+ if (retval) {
+ if (retval == -ENXIO) {
+ bridge->port.jack.procEntry = NULL;
+ } else {
+ goto out;
+ }
+- } else {
+- bridge->port.jack.procEntry->read_proc = VNetBridgeProcRead;
+- bridge->port.jack.procEntry->data = bridge;
+ }
+
+ /*
+@@ -1719,45 +1761,3 @@ VNetBridgeReceiveFromDev(struct sk_buff *skb, // IN: packet to receive
+ return 0;
+ }
+
+-
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetBridgeProcRead --
+- *
+- * Callback for read operation on this bridge entry in vnets proc fs.
+- *
+- * Results:
+- * Length of read operation.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetBridgeProcRead(char *page, // IN/OUT: buffer to write into
+- char **start, // OUT: 0 if file < 4k, else offset into page
+- off_t off, // IN: (unused) offset of read into the file
+- int count, // IN: (unused) maximum number of bytes to read
+- int *eof, // OUT: TRUE if there is nothing more to read
+- void *data) // IN: client data - pointer to bridge
+-{
+- VNetBridge *bridge = (VNetBridge*)data;
+- int len = 0;
+-
+- if (!bridge) {
+- return len;
+- }
+-
+- len += VNetPrintPort(&bridge->port, page+len);
+-
+- len += sprintf(page+len, "dev %s ", bridge->name);
+-
+- len += sprintf(page+len, "\n");
+-
+- *start = 0;
+- *eof = 1;
+- return len;
+-}
+--- a/vmnet-only/driver.c
++++ b/vmnet-only/driver.c
+@@ -1785,21 +1785,17 @@ VNetSetMACUnique(VNetPort *port, // IN:
+ *----------------------------------------------------------------------
+ */
+
+-int
++void
+ VNetPrintJack(const VNetJack *jack, // IN: jack
+- char *buf) // OUT: info about jack
++ struct seq_file *seqf) // OUT: info about jack
+ {
+- int len = 0;
+-
+ read_lock(&vnetPeerLock);
+ if (!jack->peer) {
+- len += sprintf(buf+len, "connected not ");
++ seq_printf(seqf, "connected not ");
+ } else {
+- len += sprintf(buf+len, "connected %s ", jack->peer->name);
++ seq_printf(seqf, "connected %s ", jack->peer->name);
+ }
+ read_unlock(&vnetPeerLock);
+-
+- return len;
+ }
+
+
+@@ -1819,52 +1815,48 @@ VNetPrintJack(const VNetJack *jack, // IN: jack
+ *----------------------------------------------------------------------
+ */
+
+-int
++void
+ VNetPrintPort(const VNetPort *port, // IN: port
+- char *buf) // OUT: info about port
++ struct seq_file *seqf) // OUT: info about port
+ {
+- int len = 0;
++ VNetPrintJack(&port->jack, seqf);
+
+- len += VNetPrintJack(&port->jack, buf+len);
+-
+- len += sprintf(buf+len, "mac %02x:%02x:%02x:%02x:%02x:%02x ",
++ seq_printf(seqf, "mac %02x:%02x:%02x:%02x:%02x:%02x ",
+ port->paddr[0], port->paddr[1], port->paddr[2],
+ port->paddr[3], port->paddr[4], port->paddr[5]);
+
+- len += sprintf(buf+len, "ladrf %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x ",
++ seq_printf(seqf, "ladrf %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x ",
+ port->ladrf[0], port->ladrf[1], port->ladrf[2],
+ port->ladrf[3], port->ladrf[4], port->ladrf[5],
+ port->ladrf[6], port->ladrf[7]);
+
+- len += sprintf(buf+len, "flags IFF_RUNNING");
++ seq_printf(seqf, "flags IFF_RUNNING");
+
+ if (port->flags & IFF_UP) {
+- len += sprintf(buf+len, ",IFF_UP");
++ seq_printf(seqf, ",IFF_UP");
+ }
+
+ if (port->flags & IFF_BROADCAST) {
+- len += sprintf(buf+len, ",IFF_BROADCAST");
++ seq_printf(seqf, ",IFF_BROADCAST");
+ }
+
+ if (port->flags & IFF_DEBUG) {
+- len += sprintf(buf+len, ",IFF_DEBUG");
++ seq_printf(seqf, ",IFF_DEBUG");
+ }
+
+ if (port->flags & IFF_PROMISC) {
+- len += sprintf(buf+len, ",IFF_PROMISC");
++ seq_printf(seqf, ",IFF_PROMISC");
+ }
+
+ if (port->flags & IFF_MULTICAST) {
+- len += sprintf(buf+len, ",IFF_MULTICAST");
++ seq_printf(seqf, ",IFF_MULTICAST");
+ }
+
+ if (port->flags & IFF_ALLMULTI) {
+- len += sprintf(buf+len, ",IFF_ALLMULTI");
++ seq_printf(seqf, ",IFF_ALLMULTI");
+ }
+
+- len += sprintf(buf+len, " ");
+-
+- return len;
++ seq_printf(seqf, " ");
+ }
+
+
+--- a/vmnet-only/hub.c
++++ b/vmnet-only/hub.c
+@@ -25,6 +25,7 @@
+ #include <linux/sched.h>
+ #include <linux/slab.h>
+ #include <linux/poll.h>
++#include <linux/seq_file.h>
+
+ #include <linux/netdevice.h>
+ #include <linux/etherdevice.h>
+@@ -71,8 +72,6 @@ static void VNetHubReceive(VNetJack *this, struct sk_buff *skb);
+ static Bool VNetHubCycleDetect(VNetJack *this, int generation);
+ static void VNetHubPortsChanged(VNetJack *this);
+ static int VNetHubIsBridged(VNetJack *this);
+-static int VNetHubProcRead(char *page, char **start, off_t off,
+- int count, int *eof, void *data);
+
+ static VNetHub *vnetHub;
+ static DEFINE_SPINLOCK(vnetHubLock);
+@@ -241,6 +240,53 @@ VNetHub_AllocPvn(uint8 id[]) // IN: the PVN ID to alloc on
+ /*
+ *----------------------------------------------------------------------
+ *
++ * VNetHubProcShow --
++ *
++ * Callback for read operation on hub entry in vnets proc fs.
++ *
++ * Results:
++ * Length of read operation.
++ *
++ * Side effects:
++ * None.
++ *
++ *----------------------------------------------------------------------
++ */
++
++int
++VNetHubProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into
++ void *data) // IN: client data - not used
++{
++ VNetJack *jack = (VNetJack*)data;
++ VNetHub *hub;
++
++ if (!jack || !jack->private) {
++ return 0;
++ }
++ hub = (VNetHub*)jack->private;
++
++ VNetPrintJack(jack, seqf);
++
++ seq_printf(seqf, "tx %u ", hub->stats[jack->index].tx);
++ seq_printf(seqf, "\n");
++ return 0;
++}
++
++static int proc_hub_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, VNetHubProcShow, PDE_DATA(inode));
++}
++
++static const struct file_operations proc_hub_fops = {
++ .open = proc_hub_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = seq_release,
++};
++
++/*
++ *----------------------------------------------------------------------
++ *
+ * VNetHubAlloc --
+ *
+ * Allocate a jack on this hub.
+@@ -354,7 +400,7 @@ VNetHubAlloc(Bool allocPvn, // IN: TRUE for PVN, FALSE for vnet
+ * Make proc entry for this jack.
+ */
+
+- retval = VNetProc_MakeEntry(jack->name, S_IFREG, &jack->procEntry);
++ retval = VNetProc_MakeEntryOps(jack->name, S_IFREG, &jack->procEntry, &proc_hub_fops, jack);
+ if (retval) {
+ if (retval == -ENXIO) {
+ jack->procEntry = NULL;
+@@ -362,9 +408,6 @@ VNetHubAlloc(Bool allocPvn, // IN: TRUE for PVN, FALSE for vnet
+ hub->used[i] = FALSE;
+ return NULL;
+ }
+- } else {
+- jack->procEntry->read_proc = VNetHubProcRead;
+- jack->procEntry->data = jack;
+ }
+
+ /*
+@@ -686,46 +729,3 @@ VNetHubIsBridged(VNetJack *this)
+ }
+
+
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetHubProcRead --
+- *
+- * Callback for read operation on hub entry in vnets proc fs.
+- *
+- * Results:
+- * Length of read operation.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetHubProcRead(char *page, // IN/OUT: buffer to write into
+- char **start, // OUT: 0 if file < 4k, else offset into page
+- off_t off, // IN: offset of read into the file
+- int count, // IN: maximum number of bytes to read
+- int *eof, // OUT: TRUE if there is nothing more to read
+- void *data) // IN: client data - not used
+-{
+- VNetJack *jack = (VNetJack*)data;
+- VNetHub *hub;
+- int len = 0;
+-
+- if (!jack || !jack->private) {
+- return len;
+- }
+- hub = (VNetHub*)jack->private;
+-
+- len += VNetPrintJack(jack, page+len);
+-
+- len += sprintf(page+len, "tx %u ", hub->stats[jack->index].tx);
+-
+- len += sprintf(page+len, "\n");
+-
+- *start = 0;
+- *eof = 1;
+- return len;
+-}
+--- a/vmnet-only/netif.c
++++ b/vmnet-only/netif.c
+@@ -62,8 +62,6 @@ static int VNetNetifStartXmit(struct sk_buff *skb, struct net_device *dev);
+ static struct net_device_stats *VNetNetifGetStats(struct net_device *dev);
+ static int VNetNetifSetMAC(struct net_device *dev, void *addr);
+ static void VNetNetifSetMulticast(struct net_device *dev);
+-static int VNetNetIfProcRead(char *page, char **start, off_t off,
+- int count, int *eof, void *data);
+
+ /*
+ *----------------------------------------------------------------------
+@@ -116,6 +114,53 @@ VNetNetIfSetup(struct net_device *dev) // IN:
+
+ }
+
++/*
++ *----------------------------------------------------------------------
++ *
++ * VNetNetIfProcShow --
++ *
++ * Callback for read operation on this netif entry in vnets proc fs.
++ *
++ * Results:
++ * Length of read operation.
++ *
++ * Side effects:
++ * None.
++ *
++ *----------------------------------------------------------------------
++ */
++
++int
++VNetNetIfProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into
++ void *data) // IN: client data
++{
++ VNetNetIF *netIf = data;
++
++ if (!netIf) {
++ return 0;
++ }
++
++ VNetPrintPort(&netIf->port, seqf);
++
++ seq_printf(seqf, "dev %s ", netIf->dev->name);
++
++ seq_printf(seqf, "\n");
++
++ return 0;
++}
++
++static int proc_netif_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, VNetNetIfProcShow, PDE_DATA(inode));
++}
++
++static const struct file_operations proc_netif_fops = {
++ .open = proc_netif_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = seq_release,
++};
++
+
+ /*
+ *----------------------------------------------------------------------
+@@ -180,16 +225,13 @@ VNetNetIf_Create(char *devName, // IN:
+ * Make proc entry for this jack.
+ */
+
+- retval = VNetProc_MakeEntry(netIf->port.jack.name, S_IFREG,
+- &netIf->port.jack.procEntry);
++ retval = VNetProc_MakeEntryOps(netIf->port.jack.name, S_IFREG,
++ &netIf->port.jack.procEntry, &proc_netif_fops, netIf);
+ if (retval) {
+ netIf->port.jack.procEntry = NULL;
+ if (retval != -ENXIO) {
+ goto outFreeDev;
+ }
+- } else {
+- netIf->port.jack.procEntry->read_proc = VNetNetIfProcRead;
+- netIf->port.jack.procEntry->data = netIf;
+ }
+
+ /*
+@@ -553,45 +595,3 @@ VNetNetifGetStats(struct net_device *dev) // IN:
+ return &netIf->stats;
+ }
+
+-
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetNetIfProcRead --
+- *
+- * Callback for read operation on this netif entry in vnets proc fs.
+- *
+- * Results:
+- * Length of read operation.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetNetIfProcRead(char *page, // IN/OUT: buffer to write into
+- char **start, // OUT: 0 if file < 4k, else offset into page
+- off_t off, // IN: (unused) offset of read into the file
+- int count, // IN: (unused) maximum number of bytes to read
+- int *eof, // OUT: TRUE if there is nothing more to read
+- void *data) // IN: client data
+-{
+- VNetNetIF *netIf = data;
+- int len = 0;
+-
+- if (!netIf) {
+- return len;
+- }
+-
+- len += VNetPrintPort(&netIf->port, page+len);
+-
+- len += sprintf(page+len, "dev %s ", netIf->dev->name);
+-
+- len += sprintf(page+len, "\n");
+-
+- *start = 0;
+- *eof = 1;
+- return len;
+-}
+--- a/vmnet-only/procfs.c
++++ b/vmnet-only/procfs.c
+@@ -45,10 +45,6 @@
+
+ #if defined(CONFIG_PROC_FS)
+
+-static int VNetProcMakeEntryInt(VNetProcEntry *parent, char *name, int mode,
+- VNetProcEntry **ret);
+-static void VNetProcRemoveEntryInt(VNetProcEntry *node, VNetProcEntry *parent);
+-
+ static VNetProcEntry *base = NULL;
+
+
+@@ -71,7 +67,12 @@ static VNetProcEntry *base = NULL;
+ int
+ VNetProc_Init(void)
+ {
+- return VNetProcMakeEntryInt(NULL, "vmnet", S_IFDIR, &base);
++ base = proc_mkdir("vmnet", NULL);
++ if(IS_ERR(base)) {
++ base = NULL;
++ return PTR_ERR(base);
++ }
++ return 0;
+ }
+
+
+@@ -94,14 +95,14 @@ VNetProc_Init(void)
+ void
+ VNetProc_Cleanup(void)
+ {
+- VNetProcRemoveEntryInt(base, NULL);
++ proc_remove(base);
+ base = NULL;
+ }
+
+ /*
+ *----------------------------------------------------------------------
+ *
+- * VNetProcMakeEntryInt --
++ * VNetProc_MakeEntryOps --
+ *
+ * Make an entry in the vnets proc file system.
+ *
+@@ -116,72 +117,21 @@ VNetProc_Cleanup(void)
+ */
+
+ int
+-VNetProcMakeEntryInt(VNetProcEntry *parent, // IN:
+- char *name, // IN:
++VNetProc_MakeEntryOps(char *name, // IN:
+ int mode, // IN:
+- VNetProcEntry **ret) // OUT:
++ VNetProcEntry **ret,
++ const struct file_operations *fops,
++ void *data
++ ) // OUT:
+ {
+ VNetProcEntry *ent;
+- ent = create_proc_entry(name, mode, parent);
++ ent = proc_create_data(name, mode, base, fops, data);
+ *ret = ent;
+ if (!ent)
+ return -ENOMEM;
+ return 0;
+ }
+
+-
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetProcRemoveEntryInt --
+- *
+- * Remove a previously installed proc entry.
+- *
+- * Results:
+- * None.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-void
+-VNetProcRemoveEntryInt(VNetProcEntry *node,
+- VNetProcEntry *parent)
+-{
+- if (node) {
+- remove_proc_entry(node->name, parent);
+- }
+-}
+-
+-
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetProc_MakeEntry --
+- *
+- * Make an entry in the vnets proc file system.
+- *
+- * Results:
+- * errno. If errno is 0 and ret is non NULL then ret is filled
+- * in with the resulting proc entry.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetProc_MakeEntry(char *name, // IN:
+- int mode, // IN:
+- VNetProcEntry **ret) // OUT:
+-{
+- return VNetProcMakeEntryInt(base, name, mode, ret);
+-}
+-
+-
+ /*
+ *----------------------------------------------------------------------
+ *
+@@ -201,7 +151,8 @@ VNetProc_MakeEntry(char *name, // IN:
+ void
+ VNetProc_RemoveEntry(VNetProcEntry *node)
+ {
+- VNetProcRemoveEntryInt(node, base);
++ if(node)
++ proc_remove(node);
+ }
+
+
+@@ -253,31 +204,6 @@ VNetProc_Cleanup(void)
+ }
+
+
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetProc_MakeEntry --
+- *
+- * Make an entry in the vnets proc file system.
+- *
+- * Results:
+- * errno. If errno is 0 and ret is non NULL then ret is filled
+- * in with the resulting proc entry.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetProc_MakeEntry(char *name,
+- int mode,
+- VNetProcEntry **ret)
+-{
+- return -ENXIO;
+-}
+-
+
+ /*
+ *----------------------------------------------------------------------
+--- a/vmnet-only/userif.c
++++ b/vmnet-only/userif.c
+@@ -389,7 +389,7 @@ VNetUserIfReceive(VNetJack *this, // IN
+ /*
+ *----------------------------------------------------------------------
+ *
+- * VNetUserIfProcRead --
++ * VNetUserIfProcShow --
+ *
+ * Callback for read operation on this userif entry in vnets proc fs.
+ *
+@@ -403,30 +403,23 @@ VNetUserIfReceive(VNetJack *this, // IN
+ */
+
+ static int
+-VNetUserIfProcRead(char *page, // IN/OUT: buffer to write into
+- char **start, // OUT: 0 if file < 4k, else offset into
+- // page
+- off_t off, // IN: offset of read into the file
+- int count, // IN: maximum number of bytes to read
+- int *eof, // OUT: TRUE if there is nothing more to
+- // read
++VNetUserIfProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into
+ void *data) // IN: client data - not used
+ {
+ VNetUserIF *userIf = (VNetUserIF*)data;
+- int len = 0;
+
+ if (!userIf) {
+- return len;
++ return 0;
+ }
+
+- len += VNetPrintPort(&userIf->port, page+len);
++ VNetPrintPort(&userIf->port, seqf);
+
+- len += sprintf(page+len, "read %u written %u queued %u ",
++ seq_printf(seqf, "read %u written %u queued %u ",
+ userIf->stats.read,
+ userIf->stats.written,
+ userIf->stats.queued);
+
+- len += sprintf(page+len,
++ seq_printf(seqf,
+ "dropped.down %u dropped.mismatch %u "
+ "dropped.overflow %u dropped.largePacket %u",
+ userIf->stats.droppedDown,
+@@ -434,13 +427,23 @@ VNetUserIfProcRead(char *page, // IN/OUT: buffer to write into
+ userIf->stats.droppedOverflow,
+ userIf->stats.droppedLargePacket);
+
+- len += sprintf(page+len, "\n");
++ seq_printf(seqf, "\n");
+
+- *start = 0;
+- *eof = 1;
+- return len;
++ return 0;
++}
++
++static int proc_userif_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, VNetUserIfProcShow, PDE_DATA(inode));
+ }
+
++static const struct file_operations proc_userif_fops = {
++ .open = proc_userif_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = seq_release,
++};
++
+
+ /*
+ *----------------------------------------------------------------------
+@@ -1036,8 +1039,8 @@ VNetUserIf_Create(VNetPort **ret) // OUT
+ * Make proc entry for this jack.
+ */
+
+- retval = VNetProc_MakeEntry(userIf->port.jack.name, S_IFREG,
+- &userIf->port.jack.procEntry);
++ retval = VNetProc_MakeEntryOps(userIf->port.jack.name, S_IFREG,
++ &userIf->port.jack.procEntry, &proc_userif_fops, userIf);
+ if (retval) {
+ if (retval == -ENXIO) {
+ userIf->port.jack.procEntry = NULL;
+@@ -1045,9 +1048,6 @@ VNetUserIf_Create(VNetPort **ret) // OUT
+ kfree(userIf);
+ return retval;
+ }
+- } else {
+- userIf->port.jack.procEntry->read_proc = VNetUserIfProcRead;
+- userIf->port.jack.procEntry->data = userIf;
+ }
+
+ /*
+--- a/vmnet-only/vnetInt.h
++++ b/vmnet-only/vnetInt.h
+@@ -171,12 +171,14 @@ VNetJack *VNetDisconnect(VNetJack *jack);
+
+ void VNetSend(const VNetJack *jack, struct sk_buff *skb);
+
+-int VNetProc_MakeEntry(char *name, int mode,
+- VNetProcEntry **ret);
++int VNetProc_MakeEntryOps(char *name, int mode,
++ VNetProcEntry **ret,
++ const struct file_operations *fops,
++ void *data);
+
+ void VNetProc_RemoveEntry(VNetProcEntry *node);
+
+-int VNetPrintJack(const VNetJack *jack, char *buf);
++void VNetPrintJack(const VNetJack *jack, struct seq_file *seqf);
+
+ int VNet_MakeMACAddress(VNetPort *port);
+
+@@ -196,7 +198,7 @@ Bool VNetPacketMatch(const uint8 *destAddr, const uint8 *ifAddr,
+
+ Bool VNetCycleDetectIf(const char *name, int generation);
+
+-int VNetPrintPort(const VNetPort *port, char *buf);
++void VNetPrintPort(const VNetPort *port, struct seq_file *seqf);
+
+ int VNetSnprintf(char *str, size_t size, const char *format, ...);
+
+--
+--- a/vmblock-only/linux/control.c 2013-05-21 19:21:19.165750556 +0200
++++ b/vmblock-only/linux/control.c 2013-05-21 19:22:18.363747723 +0200
+@@ -208,9 +208,10 @@
+ VMBlockSetProcEntryOwner(controlProcMountpoint);
+
+ /* Create /proc/fs/vmblock/dev */
+- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
+- VMBLOCK_CONTROL_MODE,
+- controlProcDirEntry);
++ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME,
++ VMBLOCK_CONTROL_MODE,
++ controlProcDirEntry,
++ &ControlFileOps);
+ if (!controlProcEntry) {
+ Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n");
+ remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry);
+@@ -218,7 +219,6 @@
+ return -EINVAL;
+ }
+
+- controlProcEntry->proc_fops = &ControlFileOps;
+ return 0;
+ }
+
diff --git a/app-emulation/vmware-modules/files/279-apic.patch b/app-emulation/vmware-modules/files/279-apic.patch
new file mode 100644
index 000000000000..66cd45933246
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-apic.patch
@@ -0,0 +1,12 @@
+diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
+index f1f4b10..c43242f 100644
+--- a/vmmon-only/linux/hostif.c
++++ b/vmmon-only/linux/hostif.c
+@@ -55,6 +55,7 @@
+ #include <linux/kthread.h>
+ #include <linux/wait.h>
+
++#include <asm/apic.h>
+
+ #include "vmware.h"
+ #include "x86apic.h"
diff --git a/app-emulation/vmware-modules/files/279-makefile-include.patch b/app-emulation/vmware-modules/files/279-makefile-include.patch
new file mode 100644
index 000000000000..39c300030805
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-makefile-include.patch
@@ -0,0 +1,65 @@
+diff --git a/vmblock-only/Makefile.kernel b/vmblock-only/Makefile.kernel
+index ab7a727..e3ec9d2 100644
+--- a/vmblock-only/Makefile.kernel
++++ b/vmblock-only/Makefile.kernel
+@@ -19,7 +19,7 @@
+
+ INCLUDE += -I$(SRCROOT)/include
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+
+ EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachecreate.c, -DVMW_KMEMCR_HAS_DTOR, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachector.c, -DVMW_KMEMCR_CTOR_HAS_3_ARGS, )
+diff --git a/vmci-only/Makefile.kernel b/vmci-only/Makefile.kernel
+index ba343ee..861ea83 100644
+--- a/vmci-only/Makefile.kernel
++++ b/vmci-only/Makefile.kernel
+@@ -21,7 +21,7 @@ CC_OPTS += -DVMCI
+
+ INCLUDE += -I$(SRCROOT)/shared -I$(SRCROOT)/common -I$(SRCROOT)/linux
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+
+ obj-m += $(DRIVER).o
+
+diff --git a/vmmon-only/Makefile.kernel b/vmmon-only/Makefile.kernel
+index 8770d1d..c4746c3 100644
+--- a/vmmon-only/Makefile.kernel
++++ b/vmmon-only/Makefile.kernel
+@@ -22,7 +22,7 @@ CC_OPTS += -DVMMON -DVMCORE
+ INCLUDE := -I$(SRCROOT)/include -I$(SRCROOT)/common -I$(SRCROOT)/linux \
+ -I$(SRCROOT)/vmcore
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/smpcall.c, -DVMW_HAVE_SMP_CALL_3ARG, )
+
+diff --git a/vmnet-only/Makefile.kernel b/vmnet-only/Makefile.kernel
+index d1e3133..665d428 100644
+--- a/vmnet-only/Makefile.kernel
++++ b/vmnet-only/Makefile.kernel
+@@ -19,7 +19,7 @@
+
+ INCLUDE := -I$(SRCROOT)
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_net.c,-DVMW_NETDEV_HAS_NET, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_dev_net.c,-DVMW_NETDEV_HAS_DEV_NET, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/nfhook_uses_skb.c,-DVMW_NFHOOK_USES_SKB, )
+diff --git a/vsock-only/Makefile.kernel b/vsock-only/Makefile.kernel
+index b4629ee..264b8cb 100644
+--- a/vsock-only/Makefile.kernel
++++ b/vsock-only/Makefile.kernel
+@@ -25,7 +25,7 @@ INCLUDE += -I$(SRCROOT)/include
+ INCLUDE += -I$(SRCROOT)/linux
+ INCLUDE += -I$(SRCROOT)/common
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+ EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/netcreate_num_params.c, -DVMW_NETCREATE_KERNARG, )
+
+
diff --git a/app-emulation/vmware-modules/files/279-makefile-kernel-dir.patch b/app-emulation/vmware-modules/files/279-makefile-kernel-dir.patch
new file mode 100644
index 000000000000..1a647a3302d8
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-makefile-kernel-dir.patch
@@ -0,0 +1,85 @@
+diff --git a/vmblock-only/Makefile b/vmblock-only/Makefile
+index 2b81323..746c8b8 100644
+--- a/vmblock-only/Makefile
++++ b/vmblock-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmblock
+ PRODUCT := ws
+diff --git a/vmci-only/Makefile b/vmci-only/Makefile
+index 8e9c5be..6ec828b 100644
+--- a/vmci-only/Makefile
++++ b/vmci-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmci
+ PRODUCT := ws
+diff --git a/vmmon-only/Makefile b/vmmon-only/Makefile
+index 5bd867b..91a83d4 100644
+--- a/vmmon-only/Makefile
++++ b/vmmon-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmmon
+ PRODUCT := @@PRODUCT@@
+diff --git a/vmnet-only/Makefile b/vmnet-only/Makefile
+index d4eb73c..c7c6d38 100644
+--- a/vmnet-only/Makefile
++++ b/vmnet-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmnet
+ PRODUCT := @@PRODUCT@@
+diff --git a/vsock-only/Makefile b/vsock-only/Makefile
+index 93dd61d..9765696 100644
+--- a/vsock-only/Makefile
++++ b/vsock-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vsock
+ PRODUCT := ws
diff --git a/app-emulation/vmware-modules/files/279-netdevice.patch b/app-emulation/vmware-modules/files/279-netdevice.patch
new file mode 100644
index 000000000000..35231a3205e3
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-netdevice.patch
@@ -0,0 +1,24 @@
+diff --git a/vmnet-only/compat_netdevice.h b/vmnet-only/compat_netdevice.h
+index 7a56304..9ff4548 100644
+--- a/vmnet-only/compat_netdevice.h
++++ b/vmnet-only/compat_netdevice.h
+@@ -47,6 +47,19 @@
+ # define net_device device
+ #endif
+
++/* it looks like these have been removed from the kernel 3.1
++ * probably because the "transition" is considered complete.
++ * so to keep this source compatible we just redefine them like they were
++ * previously
++ */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 1, 0)
++#define HAVE_ALLOC_NETDEV /* feature macro: alloc_xxxdev
++ functions are available. */
++#define HAVE_FREE_NETDEV /* free_netdev() */
++#define HAVE_NETDEV_PRIV /* netdev_priv() */
++#define HAVE_NETIF_QUEUE
++#define HAVE_NET_DEVICE_OPS
++#endif
+
+ /*
+ * SET_MODULE_OWNER appeared sometime during 2.3.x. It was setting
diff --git a/app-emulation/vmware-modules/files/279-putname.patch b/app-emulation/vmware-modules/files/279-putname.patch
new file mode 100644
index 000000000000..6e76130fa165
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-putname.patch
@@ -0,0 +1,13 @@
+diff --git a/vmblock-only/linux/control.c b/vmblock-only/linux/control.c
+index 79716bd..2dd83fe 100644
+--- a/vmblock-only/linux/control.c
++++ b/vmblock-only/linux/control.c
+@@ -293,7 +293,7 @@ ExecuteBlockOp(const char __user *buf, // IN: buffer with name
+
+ retval = i < 0 ? -EINVAL : blockOp(name, blocker);
+
+- putname(name);
++ __putname(name);
+
+ return retval;
+ }
diff --git a/app-emulation/vmware-modules/files/279-vmblock.patch b/app-emulation/vmware-modules/files/279-vmblock.patch
new file mode 100644
index 000000000000..e578441e1219
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-vmblock.patch
@@ -0,0 +1,27 @@
+diff -ur vmblock-onlya/linux/control.c vmblock-only/linux/control.c
+--- vmblock-only/linux/control.c 2013-02-26 10:17:29.000000000 +0200
++++ vmblock-only/linux/control.c 2013-07-05 19:56:48.298553173 +0300
+@@ -208,17 +208,18 @@
+ VMBlockSetProcEntryOwner(controlProcMountpoint);
+
+ /* Create /proc/fs/vmblock/dev */
+- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
++ /*controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
+ VMBLOCK_CONTROL_MODE,
+- controlProcDirEntry);
+- if (!controlProcEntry) {
++ controlProcDirEntry);*/
++ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME, VMBLOCK_CONTROL_MODE, controlProcDirEntry, &ControlFileOps);
++ if (controlProcEntry == NULL) {
+ Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n");
+ remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry);
+ remove_proc_entry(VMBLOCK_CONTROL_PROC_DIRNAME, NULL);
+ return -EINVAL;
+ }
+
+- controlProcEntry->proc_fops = &ControlFileOps;
++ /* controlProcEntry->proc_fops = &ControlFileOps; */
+ return 0;
+ }
+
+
diff --git a/app-emulation/vmware-modules/vmware-modules-279.0.ebuild b/app-emulation/vmware-modules/vmware-modules-279.0.ebuild
new file mode 100644
index 000000000000..e967df4a9aa3
--- /dev/null
+++ b/app-emulation/vmware-modules/vmware-modules-279.0.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/vmware-modules-279.0.ebuild,v 1.1 2013/10/19 11:42:47 dilfridge Exp $
+
+EAPI=5
+
+inherit eutils flag-o-matic linux-info linux-mod user versionator udev
+
+PV_MAJOR=$(get_major_version)
+PV_MINOR=$(get_version_component_range 2)
+
+DESCRIPTION="VMware kernel modules"
+HOMEPAGE="http://www.vmware.com/"
+
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="pax_kernel"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ || ( =app-emulation/vmware-player-6.0.${PV_MINOR}*
+ =app-emulation/vmware-workstation-10.0.${PV_MINOR}* )"
+
+S=${WORKDIR}
+
+pkg_setup() {
+ CONFIG_CHECK="~HIGH_RES_TIMERS"
+ if kernel_is ge 2 6 37 && kernel_is lt 2 6 39; then
+ CONFIG_CHECK="${CONFIG_CHECK} BKL"
+ fi
+
+ linux-info_pkg_setup
+
+ linux-mod_pkg_setup
+
+ VMWARE_GROUP=${VMWARE_GROUP:-vmware}
+
+ VMWARE_MODULE_LIST="vmblock vmci vmmon vmnet vsock"
+ VMWARE_MOD_DIR="${PN}-${PVR}"
+
+ BUILD_TARGETS="auto-build KERNEL_DIR=${KERNEL_DIR} KBUILD_OUTPUT=${KV_OUT_DIR}"
+
+ enewgroup "${VMWARE_GROUP}"
+ filter-flags -mfpmath=sse
+
+ for mod in ${VMWARE_MODULE_LIST}; do
+ MODULE_NAMES="${MODULE_NAMES} ${mod}(misc:${S}/${mod}-only)"
+ done
+}
+
+src_unpack() {
+ cd "${S}"
+ for mod in ${VMWARE_MODULE_LIST}; do
+ tar -xf /opt/vmware/lib/vmware/modules/source/${mod}.tar
+ done
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${PV_MAJOR}-makefile-kernel-dir.patch"
+ epatch "${FILESDIR}/${PV_MAJOR}-makefile-include.patch"
+ epatch "${FILESDIR}/${PV_MAJOR}-netdevice.patch"
+ use pax_kernel && epatch "${FILESDIR}/hardened.patch"
+ epatch "${FILESDIR}/${PV_MAJOR}-apic.patch"
+ kernel_is ge 3 7 0 && epatch "${FILESDIR}/${PV_MAJOR}-putname.patch"
+ kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10.0.patch"
+ kernel_is ge 3 11 0 && epatch "${FILESDIR}/${PV_MAJOR}-vmblock.patch"
+
+ # Allow user patches so they can support RC kernels and whatever else
+ epatch_user
+}
+
+src_install() {
+ linux-mod_src_install
+ local udevrules="${T}/60-vmware.rules"
+ cat > "${udevrules}" <<-EOF
+ KERNEL=="vmci", GROUP="vmware", MODE=660
+ KERNEL=="vmmon", GROUP="vmware", MODE=660
+ KERNEL=="vsock", GROUP="vmware", MODE=660
+ EOF
+ udev_dorules "${udevrules}"
+}