1
/*********************************************************
2
* Copyright (C) 2007 VMware, Inc. All rights reserved.
4
* This program is free software; you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License as published by the
6
* Free Software Foundation version 2 and no later version.
8
* This program is distributed in the hope that it will be useful, but
9
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
10
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13
* You should have received a copy of the GNU General Public License along
14
* with this program; if not, write to the Free Software Foundation, Inc.,
15
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17
*********************************************************/
23
#ifndef __COMPAT_MODULE_H__
24
# define __COMPAT_MODULE_H__
27
#include <linux/module.h>
31
* Modules wishing to use the GPL license are required to include a
32
* MODULE_LICENSE definition in their module source as of 2.4.10.
34
#ifndef MODULE_LICENSE
35
#define MODULE_LICENSE(license)
39
* To make use of our own home-brewed MODULE_INFO, we need macros to
40
* concatenate two expressions to "__mod_", and and to convert an
41
* expression into a string. I'm sure we've got these in our codebase,
42
* but I'd rather not introduce such a dependency in a compat header.
45
#define __module_cat_1(a, b) __mod_ ## a ## b
46
#define __module_cat(a, b) __module_cat_1(a, b)
50
#define __stringify_1(x) #x
51
#define __stringify(x) __stringify_1(x)
55
* MODULE_INFO was born in 2.5.69.
58
#define MODULE_INFO(tag, info) \
59
static const char __module_cat(tag, __LINE__)[] \
60
__attribute__((section(".modinfo"), unused)) = __stringify(tag) "=" info
64
* MODULE_VERSION was born in 2.6.4. The earlier form appends a long "\0xxx"
65
* string to the module's version, but that was removed in 2.6.10, so we'll
66
* ignore it in our wrapper.
68
#ifndef MODULE_VERSION
69
#define MODULE_VERSION(_version) MODULE_INFO(version, _version)
72
#endif /* __COMPAT_MODULE_H__ */