From dce13aed608b008bb4e4a2f74fc8a60894bc40bd Mon Sep 17 00:00:00 2001 From: "VMware, Inc" <> Date: Thu, 17 Jun 2010 14:41:49 -0700 Subject: [PATCH] OVT: remove Linux vmmemctl (balloon) driver Now that the balloon driver has been accepted upstream there is no need to distribute it in open-vm-tools package. Signed-off-by: Marcelo Vanzin --- open-vm-tools/configure.ac | 2 +- open-vm-tools/modules/Makefile.am | 1 - open-vm-tools/modules/linux/dkms.conf | 23 +- open-vm-tools/modules/linux/dkms.sh | 8 +- open-vm-tools/modules/linux/vmmemctl/COPYING | 339 --------- open-vm-tools/modules/linux/vmmemctl/Makefile | 167 ----- .../modules/linux/vmmemctl/Makefile.kernel | 72 -- open-vm-tools/modules/linux/vmmemctl/README | 11 - open-vm-tools/modules/linux/vmmemctl/os.c | 708 ------------------ .../modules/linux/vmmemctl/vmmemctl_version.h | 32 - 10 files changed, 11 insertions(+), 1352 deletions(-) delete mode 100644 open-vm-tools/modules/linux/vmmemctl/COPYING delete mode 100644 open-vm-tools/modules/linux/vmmemctl/Makefile delete mode 100644 open-vm-tools/modules/linux/vmmemctl/Makefile.kernel delete mode 100644 open-vm-tools/modules/linux/vmmemctl/README delete mode 100644 open-vm-tools/modules/linux/vmmemctl/os.c delete mode 100644 open-vm-tools/modules/linux/vmmemctl/vmmemctl_version.h diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac index 9b1baaf73..f39574759 100644 --- a/open-vm-tools/configure.ac +++ b/open-vm-tools/configure.ac @@ -1005,7 +1005,7 @@ if test "$os" = "linux"; then CPPFLAGS="$CPPFLAGS -D_BSD_SOURCE" CPPFLAGS="$CPPFLAGS -D_SVID_SOURCE" - MODULES="$MODULES vmmemctl vmsync vmci vsock" + MODULES="$MODULES vmsync vmci vsock" MODULES="$MODULES vmxnet vmblock vmhgfs" buildHgfsmounter=yes fi diff --git a/open-vm-tools/modules/Makefile.am b/open-vm-tools/modules/Makefile.am index 1487efce4..c1e92b950 100644 --- a/open-vm-tools/modules/Makefile.am +++ b/open-vm-tools/modules/Makefile.am @@ -20,7 +20,6 @@ if LINUX export vmblockdir := $(MODULES_DIR)/fs/vmblock export vmcidir := $(MODULES_DIR)/drivers/misc export vmhgfsdir := $(MODULES_DIR)/fs/vmhgfs -export vmmemctldir := $(MODULES_DIR)/drivers/misc export vmsyncdir := $(MODULES_DIR)/drivers/misc export vmxnetdir := $(MODULES_DIR)/drivers/net export vsockdir := $(MODULES_DIR)/net/vsock diff --git a/open-vm-tools/modules/linux/dkms.conf b/open-vm-tools/modules/linux/dkms.conf index 6cd895311..ee228c493 100644 --- a/open-vm-tools/modules/linux/dkms.conf +++ b/open-vm-tools/modules/linux/dkms.conf @@ -1,5 +1,5 @@ PACKAGE_NAME=open-vm-tools -PACKAGE_VERSION=2010.04.25 +PACKAGE_VERSION=2010.04.25-253928 MAKE_CMD_TMPL="make VM_UNAME=\$kernelver \ MODULEBUILDDIR=$dkms_tree/$PACKAGE_NAME/$PACKAGE_VERSION/build" @@ -9,36 +9,31 @@ MAKE_CMD_TMPL="make VM_UNAME=\$kernelver \ MAKE[0]="$MAKE_CMD_TMPL -C vmblock; \ $MAKE_CMD_TMPL -C vmci; \ $MAKE_CMD_TMPL -C vmhgfs; \ - $MAKE_CMD_TMPL -C vmmemctl; \ $MAKE_CMD_TMPL -C vmsync; \ $MAKE_CMD_TMPL -C vmxnet; \ $MAKE_CMD_TMPL -C vsock" CLEAN[0]="$MAKE_CMD_TMPL -C vmblock clean; \ $MAKE_CMD_TMPL -C vmci clean; \ $MAKE_CMD_TMPL -C vmhgfs clean; \ - $MAKE_CMD_TMPL -C vmmemctl clean; \ $MAKE_CMD_TMPL -C vmsync clean"; \ $MAKE_CMD_TMPL -C vmxnet clean; \ $MAKE_CMD_TMPL -C vsock clean BUILT_MODULE_NAME[0]="vmblock" BUILT_MODULE_NAME[1]="vmci" BUILT_MODULE_NAME[2]="vmhgfs" -BUILT_MODULE_NAME[3]="vmmemctl" -BUILT_MODULE_NAME[4]="vmsync" -BUILT_MODULE_NAME[5]="vmxnet" -BUILT_MODULE_NAME[6]="vsock" +BUILT_MODULE_NAME[3]="vmsync" +BUILT_MODULE_NAME[4]="vmxnet" +BUILT_MODULE_NAME[5]="vsock" BUILT_MODULE_LOCATION[0]="vmblock/" BUILT_MODULE_LOCATION[1]="vmci/" BUILT_MODULE_LOCATION[2]="vmhgfs/" -BUILT_MODULE_LOCATION[3]="vmmemctl/" -BUILT_MODULE_LOCATION[4]="vmsync/" -BUILT_MODULE_LOCATION[5]="vmxnet/" -BUILT_MODULE_LOCATION[6]="vsock/" +BUILT_MODULE_LOCATION[3]="vmsync/" +BUILT_MODULE_LOCATION[4]="vmxnet/" +BUILT_MODULE_LOCATION[5]="vsock/" DEST_MODULE_LOCATION[0]="/kernel/fs/vmblock" DEST_MODULE_LOCATION[1]="/kernel/drivers/misc" DEST_MODULE_LOCATION[2]="/kernel/fs/vmhgfs" DEST_MODULE_LOCATION[3]="/kernel/drivers/misc" -DEST_MODULE_LOCATION[4]="/kernel/drivers/misc" -DEST_MODULE_LOCATION[5]="/kernel/drivers/net" -DEST_MODULE_LOCATION[6]="/kernel/net/vsock" +DEST_MODULE_LOCATION[4]="/kernel/drivers/net" +DEST_MODULE_LOCATION[5]="/kernel/net/vsock" AUTOINSTALL="YES" diff --git a/open-vm-tools/modules/linux/dkms.sh b/open-vm-tools/modules/linux/dkms.sh index 264baca60..43d1028f7 100644 --- a/open-vm-tools/modules/linux/dkms.sh +++ b/open-vm-tools/modules/linux/dkms.sh @@ -64,7 +64,7 @@ rm -rf $dst mkdir -p $dst cp -f `dirname $0`/dkms.conf $dst -for m in vmblock vmci vmhgfs vmmemctl vmsync vmxnet vsock +for m in vmblock vmci vmhgfs vmsync vmxnet vsock do mdst="$dst/$m" @@ -103,12 +103,6 @@ do cp -f $src/lib/rpcOut/*.c $mdst fi - # Shared vmmemctl code. - if test $m = vmmemctl - then - cp -f $src/modules/shared/vmmemctl/* $mdst - fi - # Extra header file for vmsync. if test $m = vmsync then diff --git a/open-vm-tools/modules/linux/vmmemctl/COPYING b/open-vm-tools/modules/linux/vmmemctl/COPYING deleted file mode 100644 index d511905c1..000000000 --- a/open-vm-tools/modules/linux/vmmemctl/COPYING +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/open-vm-tools/modules/linux/vmmemctl/Makefile b/open-vm-tools/modules/linux/vmmemctl/Makefile deleted file mode 100644 index f96ec447b..000000000 --- a/open-vm-tools/modules/linux/vmmemctl/Makefile +++ /dev/null @@ -1,167 +0,0 @@ -#!/usr/bin/make -f -########################################################## -# Copyright (C) 1998 VMware, Inc. All rights reserved. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation version 2 and no later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -########################################################## - -#### -#### VMware kernel module Makefile to be distributed externally -#### - -#### -#### SRCROOT _must_ be a relative path. -#### -SRCROOT = . - -# -# open-vm-tools doesn't replicate shared source files for different modules; -# instead, files are kept in shared locations. So define a few useful macros -# to be able to handle both cases cleanly. -# -INCLUDE := -ifdef OVT_SOURCE_DIR -AUTOCONF_DIR := $(OVT_SOURCE_DIR)/modules/linux/shared/autoconf -VMLIB_PATH = $(OVT_SOURCE_DIR)/lib/$(1) -INCLUDE += -I$(OVT_SOURCE_DIR)/modules/linux/shared -INCLUDE += -I$(OVT_SOURCE_DIR)/lib/include -else -AUTOCONF_DIR := $(SRCROOT)/shared/autoconf -INCLUDE += -I$(SRCROOT)/shared -endif - - -VM_UNAME = $(shell uname -r) - -# Header directory for the running kernel -HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include - -BUILD_DIR = $(HEADER_DIR)/.. - -DRIVER := vmmemctl -PRODUCT := tools - -# Grep program -GREP = /bin/grep - -vm_check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null \ - > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi) -vm_check_file = $(shell if test -f $(1); then echo "yes"; else echo "no"; fi) - -ifndef VM_KBUILD -VM_KBUILD := no -ifeq ($(call vm_check_file,$(BUILD_DIR)/Makefile), yes) -ifneq ($(call vm_check_file,$(BUILD_DIR)/Rules.make), yes) -VM_KBUILD := 26 -endif -endif -export VM_KBUILD -endif - -ifndef VM_KBUILD_SHOWN -ifeq ($(VM_KBUILD), no) -VM_DUMMY := $(shell echo >&2 "Using standalone build system.") -else -ifeq ($(VM_KBUILD), 24) -VM_DUMMY := $(shell echo >&2 "Using 2.4.x kernel build system.") -else -VM_DUMMY := $(shell echo >&2 "Using 2.6.x kernel build system.") -endif -endif -VM_KBUILD_SHOWN := yes -export VM_KBUILD_SHOWN -endif - -ifneq ($(VM_KBUILD), no) - -VMCCVER := $(shell $(CC) -dumpversion) - -# If there is no version defined, we are in toplevel pass, not yet in kernel makefiles... -ifeq ($(VERSION),) - -ifeq ($(VM_KBUILD), 24) -DRIVER_KO := $(DRIVER).o -else -DRIVER_KO := $(DRIVER).ko -endif - -.PHONY: $(DRIVER_KO) - -auto-build: $(DRIVER_KO) - cp -f $< $(SRCROOT)/../$(DRIVER).o - -# $(DRIVER_KO) is a phony target, so compare file times explicitly -$(DRIVER): $(DRIVER_KO) - if [ $< -nt $@ ] || [ ! -e $@ ] ; then cp -f $< $@; fi - -# Pass gcc version down the chain, so we can detect if kernel attempts to use unapproved compiler -VM_CCVER := $(VMCCVER) -export VM_CCVER -VM_CC := $(CC) -export VM_CC - -MAKEOVERRIDES := $(filter-out CC=%,$(MAKEOVERRIDES)) - -# -# Define a setup target that gets built before the actual driver. -# This target may not be used at all, but if it is then it will be defined -# in Makefile.kernel -# -prebuild:: ; -postbuild:: ; - -$(DRIVER_KO): prebuild - make -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \ - MODULEBUILDDIR=$(MODULEBUILDDIR) modules - make -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \ - MODULEBUILDDIR=$(MODULEBUILDDIR) postbuild -endif - -vm_check_build = $(shell if $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) \ - $(CPPFLAGS) $(CFLAGS) $(CFLAGS_KERNEL) $(LINUXINCLUDE) \ - $(EXTRA_CFLAGS) -Iinclude2/asm/mach-default \ - -DKBUILD_BASENAME=\"$(DRIVER)\" \ - -Werror -S -o /dev/null -xc $(1) \ - > /dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi) - -CC_WARNINGS := -Wall -Wstrict-prototypes -CC_OPTS := $(GLOBAL_DEFS) $(CC_WARNINGS) -DVMW_USING_KBUILD -ifdef VMX86_DEVEL -CC_OPTS += -DVMX86_DEVEL -endif -ifdef VMX86_DEBUG -CC_OPTS += -DVMX86_DEBUG -endif - -include $(SRCROOT)/Makefile.kernel - -ifdef TOPDIR -ifeq ($(VM_KBUILD), 24) - -O_TARGET := $(DRIVER).o - -obj-y := $($(DRIVER)-y) - -include $(TOPDIR)/Rules.make -endif -endif - -else - -include $(SRCROOT)/Makefile.normal - -endif - -#.SILENT: diff --git a/open-vm-tools/modules/linux/vmmemctl/Makefile.kernel b/open-vm-tools/modules/linux/vmmemctl/Makefile.kernel deleted file mode 100644 index 9642f17e2..000000000 --- a/open-vm-tools/modules/linux/vmmemctl/Makefile.kernel +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/make -f -########################################################## -# Copyright (C) 1998 VMware, Inc. All rights reserved. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation version 2 and no later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -########################################################## - -#### -#### VMware vmballoon Makefile to be distributed externally -#### - -INCLUDE += -I. - -obj-m += $(DRIVER).o - -$(DRIVER)-y := $(subst $(SRCROOT)/, , $(patsubst %.c, %.o, $(wildcard $(SRCROOT)/*.c))) - -# -# In open-vm-tools, need to compile the common sources from the lib directory. -# -ifdef OVT_SOURCE_DIR -VMMEMCTL_PATH := $(shell cd $(SRCROOT) && pwd) -VMMEMCTL_SHARED_PATH := $(OVT_SOURCE_DIR)/modules/shared/vmmemctl -LIBBACKDOOR_PATH := $(call VMLIB_PATH,backdoor) - -INCLUDE += -I$(LIBBACKDOOR_PATH) -INCLUDE += -I$(VMMEMCTL_SHARED_PATH) - -LIBBACKDOOR := backdoorGcc32.o -LIBBACKDOOR += backdoorGcc64.o - -VMMEMCTL_SHARED := vmballoon.o - -$(addprefix $(VMMEMCTL_PATH)/,$(LIBBACKDOOR)): $(VMMEMCTL_PATH)/%.o: $(LIBBACKDOOR_PATH)/%.c - $(Q)$(rule_cc_o_c) - -$(addprefix $(VMMEMCTL_PATH)/,$(VMMEMCTL_SHARED)): $(VMMEMCTL_PATH)/%.o: $(VMMEMCTL_SHARED_PATH)/%.c - $(Q)$(rule_cc_o_c) - -$(DRIVER)-y += $(LIBBACKDOOR) -$(DRIVER)-y += $(VMMEMCTL_SHARED) -endif - -EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) -EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/epoll.c, -DVMW_HAVE_EPOLL, ) -EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/setnice.c, -DVMW_HAVE_SET_USER_NICE, ) - -# -# On a 32-bit machine, strip out 64-bit backdoor code, and vice versa. -# -ifeq ($(CONFIG_X86_64),y) -$(DRIVER)-y := $(filter-out backdoorGcc32.o, $($(DRIVER)-y)) -else -$(DRIVER)-y := $(filter-out backdoorGcc64.o, $($(DRIVER)-y)) -endif - -clean: - rm -rf $(wildcard $(DRIVER).mod.c $(DRIVER).ko .tmp_versions \ - Module.symvers Modules.symvers Module.markers modules.order \ - $(foreach dir,./,$(addprefix $(dir),.*.cmd .*.o.flags *.o))) diff --git a/open-vm-tools/modules/linux/vmmemctl/README b/open-vm-tools/modules/linux/vmmemctl/README deleted file mode 100644 index 91a4e5ee5..000000000 --- a/open-vm-tools/modules/linux/vmmemctl/README +++ /dev/null @@ -1,11 +0,0 @@ -The files in this directory are the source files for the VMware -Memory Control driver. In order to build, make certain the -Makefile is correct, especially about whether or not your system is -multi-processor or not, and then just type: - - make - -from this directory. A copy of the module will be left in 'vmmemctl.o', -which can then be installed in /lib/modules//misc. - -If you have any problems or questions, send mail to support@vmware.com diff --git a/open-vm-tools/modules/linux/vmmemctl/os.c b/open-vm-tools/modules/linux/vmmemctl/os.c deleted file mode 100644 index 6b4077cf5..000000000 --- a/open-vm-tools/modules/linux/vmmemctl/os.c +++ /dev/null @@ -1,708 +0,0 @@ -/********************************************************* - * Copyright (C) 2000 VMware, Inc. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation version 2 and no later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - *********************************************************/ - -/* - * os.c -- - * - * Wrappers for Linux system functions required by "vmmemctl". - */ - -/* - * Compile-Time Options - */ - -#define OS_DISABLE_UNLOAD 0 -#define OS_DEBUG 1 - -/* - * Includes - */ - -#include "driver-config.h" - -#include -#include -#include -#include -#include -#include -#include - -#ifdef CONFIG_PROC_FS -#include -#include -#include -#endif /* CONFIG_PROC_FS */ - -#include "compat_sched.h" - -#include -#include - -#include "vmmemctl_version.h" -#include "os.h" -#include "vmballoon.h" - - -/* - * Constants - */ - -/* - * Use __GFP_HIGHMEM to allow pages from HIGHMEM zone. We don't - * allow wait (__GFP_WAIT) for NOSLEEP page allocations. Use - * __GFP_NOWARN, to suppress page allocation failure warnings. - */ -#define OS_PAGE_ALLOC_NOSLEEP (__GFP_HIGHMEM|__GFP_NOWARN) - -/* - * GFP_ATOMIC allocations dig deep for free pages. Maybe it is - * okay because balloon driver uses OS_Malloc() to only allocate - * few bytes, and the allocation requires a new page only occasionally. - * Still if __GFP_NOMEMALLOC flag is available, then use it to inform - * the guest's page allocator not to use emergency pools. - */ -#ifdef __GFP_NOMEMALLOC -#define OS_KMALLOC_NOSLEEP (GFP_ATOMIC|__GFP_NOMEMALLOC|__GFP_NOWARN) -#else -#define OS_KMALLOC_NOSLEEP (GFP_ATOMIC|__GFP_NOWARN) -#endif - -/* - * Use GFP_HIGHUSER when executing in a separate kernel thread - * context and allocation can sleep. This is less stressful to - * the guest memory system, since it allows the thread to block - * while memory is reclaimed, and won't take pages from emergency - * low-memory pools. - */ -#define OS_PAGE_ALLOC_CANSLEEP (GFP_HIGHUSER) - -/* - * Types - */ - -typedef struct { - /* registered state */ - OSTimerHandler *handler; - void *data; - int period; - - /* system structures */ - wait_queue_head_t delay; - struct task_struct *task; -} os_timer; - -typedef struct { - /* registered state */ - OSStatusHandler *handler; - const char *name_verbose; - const char *name; -} os_status; - -typedef struct { - os_status status; - os_timer timer; - unsigned int totalMemoryPages; -} os_state; - -/* - * Globals - */ - -#ifdef CONFIG_PROC_FS -static struct proc_dir_entry *global_proc_entry; -static int os_proc_open(struct inode *, struct file *); -static struct file_operations global_proc_fops = { - .open = os_proc_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; -#endif /* CONFIG_PROC_FS */ - -static os_state global_state; - -static int os_timer_thread_loop(void *clientData); - - -/* - *----------------------------------------------------------------------------- - * - * OS_Malloc -- - * - * Allocates kernel memory. - * - * Results: - * On success: Pointer to allocated memory - * On failure: NULL - * - * Side effects: - * None - * - *----------------------------------------------------------------------------- - */ - -void * -OS_Malloc(size_t size) // IN -{ - return kmalloc(size, OS_KMALLOC_NOSLEEP); -} - - -/* - *----------------------------------------------------------------------------- - * - * OS_Free -- - * - * Free allocated kernel memory. - * - * Results: - * None - * - * Side effects: - * None - * - *----------------------------------------------------------------------------- - */ - -void -OS_Free(void *ptr, // IN - size_t size) // IN -{ - kfree(ptr); -} - - -/* - *----------------------------------------------------------------------------- - * - * OS_MemZero -- - * - * Fill a memory location with 0s. - * - * Results: - * None - * - * Side effects: - * None - * - *----------------------------------------------------------------------------- - */ - -void -OS_MemZero(void *ptr, // OUT - size_t size) // IN -{ - memset(ptr, 0, size); -} - - -/* - *----------------------------------------------------------------------------- - * - * OS_MemCopy -- - * - * Copy a memory portion into another location. - * - * Results: - * None - * - * Side effects: - * None - * - *----------------------------------------------------------------------------- - */ - -void -OS_MemCopy(void *dest, // OUT - const void *src, // IN - size_t size) // IN -{ - memcpy(dest, src, size); -} - - -/* - *----------------------------------------------------------------------------- - * - * OS_Snprintf -- - * - * Print a string into a bounded memory location. - * - * Results: - * Number of character printed including trailing \0. - * - * Side effects: - * None - * - *----------------------------------------------------------------------------- - */ - -int -OS_Snprintf(char *buf, // OUT - size_t size, // IN - const char *format, // IN - ...) // IN -{ - int result; - va_list args; - - va_start(args, format); - result = vsnprintf(buf, size, format, args); - va_end(args); - - return result; -} - - -/* - *----------------------------------------------------------------------------- - * - * OS_Identity -- - * - * Returns an identifier for the guest OS family. - * - * Results: - * The identifier - * - * Side effects: - * None - * - *----------------------------------------------------------------------------- - */ - -BalloonGuest -OS_Identity(void) -{ - return BALLOON_GUEST_LINUX; -} - - -/* - *----------------------------------------------------------------------------- - * - * OS_ReservedPageGetLimit -- - * - * Predict the maximum achievable balloon size. - * - * In 2.4.x and 2.6.x kernels, the balloon driver can guess the number of pages - * that can be ballooned. But, for now let us just pass the totalram-size as the - * maximum achievable balloon size. Note that normally (unless guest kernel is - * booted with a mem=XX parameter) the totalram-size is equal to alloc.max. - * - * Results: - * The maximum achievable balloon size in pages. - * - * Side effects: - * None - * - *----------------------------------------------------------------------------- - */ - -unsigned long -OS_ReservedPageGetLimit(void) -{ - struct sysinfo info; - os_state *state = &global_state; - - /* - * si_meminfo() is cheap. Moreover, we want to provide dynamic - * max balloon size later. So let us call si_meminfo() every - * iteration. - */ - si_meminfo(&info); - - /* info.totalram is in pages */ - state->totalMemoryPages = info.totalram; - return state->totalMemoryPages; -} - - -/* - *----------------------------------------------------------------------------- - * - * OS_ReservedPageGetPPN -- - * - * Convert a page handle (of a physical page previously reserved with - * OS_ReservedPageAlloc()) to a ppn. - * - * Use newer alloc_page() interface on 2.4.x kernels. - * - * Results: - * The ppn. - * - * Side effects: - * None. - * - *----------------------------------------------------------------------------- - */ - -unsigned long -OS_ReservedPageGetPPN(PageHandle handle) // IN: A valid page handle -{ - struct page *page = (struct page *)handle; - - return page_to_pfn(page); -} - - -/* - *----------------------------------------------------------------------------- - * - * OS_ReservedPageAlloc -- - * - * Reserve a physical page for the exclusive use of this driver. - * - * Results: - * On success: A valid page handle that can be passed to OS_ReservedPageGetPPN() - * or OS_ReservedPageFree(). - * On failure: PAGE_HANDLE_INVALID - * - * Side effects: - * None. - * - *----------------------------------------------------------------------------- - */ - -PageHandle -OS_ReservedPageAlloc(int canSleep) // IN -{ - struct page *page; - - page = alloc_page(canSleep ? OS_PAGE_ALLOC_CANSLEEP : OS_PAGE_ALLOC_NOSLEEP); - if (page == NULL) { - return PAGE_HANDLE_INVALID; - } - - return (PageHandle)page; -} - - -/* - *----------------------------------------------------------------------------- - * - * OS_ReservedPageFree -- - * - * Unreserve a physical page previously reserved with OS_ReservedPageAlloc(). - * - * Results: - * None. - * - * Side effects: - * None. - * - *----------------------------------------------------------------------------- - */ - -void -OS_ReservedPageFree(PageHandle handle) // IN: A valid page handle -{ - struct page *page = (struct page *)handle; - - __free_page(page); -} - - -/* - *----------------------------------------------------------------------------- - * - * OS_TimerStart -- - * - * Setup the timer callback function, then start it. - * - * Results: - * On success: TRUE - * On failure: FALSE - * - * Side effects: - * None - * - *----------------------------------------------------------------------------- - */ - -Bool -OS_TimerStart(OSTimerHandler *handler, // IN - void *clientData) // IN -{ - os_timer *t = &global_state.timer; - os_status *s = &global_state.status; - - /* initialize the timer structure */ - t->handler = handler; - t->data = clientData; - t->period = HZ; - - /* initialize sync objects */ - init_waitqueue_head(&t->delay); - - /* create kernel thread */ - t->task = kthread_run(os_timer_thread_loop, t, "vmmemctl"); - if (IS_ERR(t->task)) { - printk(KERN_WARNING "%s: unable to create kernel thread\n", s->name); - return FALSE; - } - if (OS_DEBUG) { - printk(KERN_DEBUG "%s: started kernel thread pid=%d\n", s->name, t->task->pid); - } - - return TRUE; -} - - -static int -os_timer_thread_loop(void *clientData) // IN -{ - os_timer *t = clientData; - - /* we are running */ - compat_set_freezable(); - - /* main loop */ - while (1) { - /* sleep for specified period */ - wait_event_interruptible_timeout(t->delay, - compat_wait_check_freezing() || - kthread_should_stop(), - t->period); - compat_try_to_freeze(); - if (kthread_should_stop()) { - break; - } - - /* execute registered handler */ - t->handler(t->data); - } - - return 0; -} - - -/* - *----------------------------------------------------------------------------- - * - * OS_TimerStop -- - * - * Stop the timer. - * - * Results: - * None - * - * Side effects: - * None - * - *----------------------------------------------------------------------------- - */ - -void -OS_TimerStop(void) -{ - kthread_stop(global_state.timer.task); -} - - -/* - *----------------------------------------------------------------------------- - * - * OS_Yield -- - * - * Yield the CPU, if needed. - * - * Results: - * None - * - * Side effects: - * This thread might get descheduled, other threads might get scheduled. - * - *----------------------------------------------------------------------------- - */ - -void -OS_Yield(void) -{ - cond_resched(); -} - - -#ifdef CONFIG_PROC_FS -static int -os_proc_show(struct seq_file *f, // IN - void *data) // IN: Unused -{ - os_status *s = &global_state.status; - char *buf = NULL; - int err = -1; - - if (s->handler == NULL) { - err = 0; - goto out; - } - - buf = kmalloc(PAGE_SIZE, GFP_KERNEL); - if (buf == NULL) { - err = -ENOMEM; - goto out; - } - - s->handler(buf, PAGE_SIZE); - - if (seq_puts(f, buf) != 0) { - err = -ENOSPC; - goto out; - } - - err = 0; - - out: - kfree(buf); - - return err; -} - - -static int -os_proc_open(struct inode *inode, // IN: Unused - struct file *file) // IN -{ - return single_open(file, os_proc_show, NULL); -} -#endif /* CONFIG_PROC_FS */ - - -/* - *----------------------------------------------------------------------------- - * - * OS_Init -- - * - * Called at driver startup, initializes the balloon state and structures. - * - * Results: - * On success: TRUE - * On failure: FALSE - * - * Side effects: - * None - * - *----------------------------------------------------------------------------- - */ - -Bool -OS_Init(const char *name, // IN - const char *nameVerbose, // IN - OSStatusHandler *handler) // IN -{ - os_state *state = &global_state; - static int initialized = 0; - - /* initialize only once */ - if (initialized++) { - return FALSE; - } - - /* prevent module unload with extra reference */ - if (OS_DISABLE_UNLOAD) { - try_module_get(THIS_MODULE); - } - - /* zero global state */ - memset(state, 0, sizeof(global_state)); - - /* initialize status state */ - state->status.handler = handler; - state->status.name = name; - state->status.name_verbose = nameVerbose; - -#ifdef CONFIG_PROC_FS - /* register procfs device */ - global_proc_entry = create_proc_entry("vmmemctl", S_IFREG | S_IRUGO, NULL); - if (global_proc_entry != NULL) { - global_proc_entry->proc_fops = &global_proc_fops; - } -#endif /* CONFIG_PROC_FS */ - - /* log device load */ - printk(KERN_INFO "%s initialized\n", state->status.name_verbose); - return TRUE; -} - - -/* - *----------------------------------------------------------------------------- - * - * OS_Cleanup -- - * - * Called when the driver is terminating, cleanup initialized structures. - * - * Results: - * None - * - * Side effects: - * None - * - *----------------------------------------------------------------------------- - */ - -void -OS_Cleanup(void) -{ - os_status *s = &global_state.status; - -#ifdef CONFIG_PROC_FS - /* unregister procfs entry */ - remove_proc_entry("vmmemctl", NULL); -#endif /* CONFIG_PROC_FS */ - - /* log device unload */ - printk(KERN_INFO "%s unloaded\n", s->name_verbose); -} - - -int -init_module(void) -{ - if (Balloon_ModuleInit() == BALLOON_SUCCESS) { - return 0; - } else { - return -EAGAIN; - } -} - - -void -cleanup_module(void) -{ - /* - * We cannot use module_exit(Balloon_ModuleCleanup) because compilation - * would fail for 'Kernel Verify Build Status', see bug #459403. - */ - Balloon_ModuleCleanup(); -} - - -/* Module information. */ -MODULE_AUTHOR("VMware, Inc."); -MODULE_DESCRIPTION("VMware Memory Control Driver"); -MODULE_LICENSE("GPL v2"); -MODULE_VERSION(VMMEMCTL_DRIVER_VERSION_STRING); -MODULE_ALIAS("vmware_vmmemctl"); -/* - * Starting with SLE10sp2, Novell requires that IHVs sign a support agreement - * with them and mark their kernel modules as externally supported via a - * change to the module header. If this isn't done, the module will not load - * by default (i.e., neither mkinitrd nor modprobe will accept it). - */ -MODULE_INFO(supported, "external"); diff --git a/open-vm-tools/modules/linux/vmmemctl/vmmemctl_version.h b/open-vm-tools/modules/linux/vmmemctl/vmmemctl_version.h deleted file mode 100644 index 5a2e154b2..000000000 --- a/open-vm-tools/modules/linux/vmmemctl/vmmemctl_version.h +++ /dev/null @@ -1,32 +0,0 @@ -/********************************************************* - * Copyright (C) 2007 VMware, Inc. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation version 2 and no later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - *********************************************************/ - -/* - * vmmemctl_version.h -- - * - * Version definitions for the Linux memory ballooning driver. - */ - -#ifndef _VMMEMCTL_VERSION_H_ -#define _VMMEMCTL_VERSION_H_ - -#define VMMEMCTL_DRIVER_VERSION 1.2.1.0 -#define VMMEMCTL_DRIVER_VERSION_COMMAS 1,2,1,0 -#define VMMEMCTL_DRIVER_VERSION_STRING "1.2.1.0" - -#endif /* _VMMEMCTL_VERSION_H_ */ -- 2.47.3