Added support for building as modules or as part of monolithic kernel
authorRik Faith <faith@alephnull.com>
Thu, 20 Jul 2000 00:48:12 +0000 (00:48 +0000)
committerRik Faith <faith@alephnull.com>
Thu, 20 Jul 2000 00:48:12 +0000 (00:48 +0000)
linux-core/drmP.h
linux-core/i810_drv.c
linux-core/mga_drv.c
linux-core/r128_drv.c
linux-core/tdfx_drv.c
linux/drmP.h
linux/gamma_drv.c
linux/i810_drv.c
linux/mga_drv.c
linux/r128_drv.c
linux/tdfx_drv.c

index 9ad83bd..3362313 100644 (file)
@@ -129,6 +129,14 @@ typedef struct wait_queue *wait_queue_head_t;
 #define NOPAGE_OOM 0
 #endif
 
+                               /* module_init/module_exit added in 2.3.13 */
+#ifndef module_init
+#define module_init(x)  int init_module(void) { return x(); }
+#endif
+#ifndef module_exit
+#define module_exit(x)  void cleanup_module(void) { x(); }
+#endif
+
                                /* Generic cmpxchg added in 2.3.x */
 #ifndef __HAVE_ARCH_CMPXCHG
                                /* Include this here so that driver can be
index cef3354..0067785 100644 (file)
@@ -123,47 +123,29 @@ static drm_ioctl_desc_t         i810_ioctls[] = {
 #define I810_IOCTL_COUNT DRM_ARRAY_SIZE(i810_ioctls)
 
 #ifdef MODULE
-int                          init_module(void);
-void                         cleanup_module(void);
 static char                  *i810 = NULL;
+#endif
 
-MODULE_AUTHOR("Precision Insight, Inc., Cedar Park, Texas.");
+MODULE_AUTHOR("VA Linux Systems, Inc.");
 MODULE_DESCRIPTION("Intel I810");
 MODULE_PARM(i810, "s");
 
-/* init_module is called when insmod is used to load the module */
-
-int init_module(void)
-{
-       DRM_DEBUG("doing i810_init()\n");
-       return i810_init();
-}
-
-/* cleanup_module is called when rmmod is used to unload the module */
-
-void cleanup_module(void)
-{
-       i810_cleanup();
-}
-#endif
+module_init(i810_init);
+module_exit(i810_cleanup);
 
 #ifndef MODULE
-/* i810_setup is called by the kernel to parse command-line options passed
- * via the boot-loader (e.g., LILO).  It calls the insmod option routine,
- * drm_parse_drm.
- *
- * This is not currently supported, since it requires changes to
- * linux/init/main.c. */
+/* i810_options is called by the kernel to parse command-line options
+ * passed via the boot-loader (e.g., LILO).  It calls the insmod option
+ * routine, drm_parse_drm.
+ */
 
-void __init i810_setup(char *str, int *ints)
+static int __init i810_options(char *str, int *ints)
 {
-       if (ints[0] != 0) {
-               DRM_ERROR("Illegal command line format, ignored\n");
-               return;
-       }
        drm_parse_options(str);
+       return 1;
 }
+
+__setup("i810=", i810_options);
 #endif
 
 static int i810_setup(drm_device_t *dev)
index f8fee21..3e486d8 100644 (file)
@@ -122,47 +122,29 @@ static drm_ioctl_desc_t         mga_ioctls[] = {
 #define MGA_IOCTL_COUNT DRM_ARRAY_SIZE(mga_ioctls)
 
 #ifdef MODULE
-int                          init_module(void);
-void                         cleanup_module(void);
 static char                  *mga = NULL;
+#endif
 
-MODULE_AUTHOR("Precision Insight, Inc., Cedar Park, Texas.");
+MODULE_AUTHOR("VA Linux Systems, Inc.");
 MODULE_DESCRIPTION("Matrox g200/g400");
 MODULE_PARM(mga, "s");
 
-/* init_module is called when insmod is used to load the module */
-
-int init_module(void)
-{
-       DRM_DEBUG("doing mga_init()\n");
-       return mga_init();
-}
-
-/* cleanup_module is called when rmmod is used to unload the module */
-
-void cleanup_module(void)
-{
-       mga_cleanup();
-}
-#endif
+module_init(mga_init);
+module_exit(mga_cleanup);
 
 #ifndef MODULE
-/* mga_setup is called by the kernel to parse command-line options passed
+/* mga_options is called by the kernel to parse command-line options passed
  * via the boot-loader (e.g., LILO).  It calls the insmod option routine,
  * drm_parse_drm.
- *
- * This is not currently supported, since it requires changes to
- * linux/init/main.c. */
+ */
 
-void __init mga_setup(char *str, int *ints)
+static int __init mga_options(char *str, int *ints)
 {
-       if (ints[0] != 0) {
-               DRM_ERROR("Illegal command line format, ignored\n");
-               return;
-       }
        drm_parse_options(str);
+       return 1;
 }
+
+__setup("mga=", mga_options);
 #endif
 
 static int mga_setup(drm_device_t *dev)
index 3a3c416..1103832 100644 (file)
@@ -118,46 +118,29 @@ static drm_ioctl_desc_t         r128_ioctls[] = {
 #define R128_IOCTL_COUNT DRM_ARRAY_SIZE(r128_ioctls)
 
 #ifdef MODULE
-int                          init_module(void);
-void                         cleanup_module(void);
 static char                  *r128 = NULL;
+#endif
 
-MODULE_AUTHOR("Precision Insight, Inc., Cedar Park, Texas.");
+MODULE_AUTHOR("VA Linux Systems, Inc.");
 MODULE_DESCRIPTION("r128");
 MODULE_PARM(r128, "s");
 
-/* init_module is called when insmod is used to load the module */
-
-int init_module(void)
-{
-       return r128_init();
-}
-
-/* cleanup_module is called when rmmod is used to unload the module */
-
-void cleanup_module(void)
-{
-       r128_cleanup();
-}
-#endif
+module_init(r128_init);
+module_exit(r128_cleanup);
 
 #ifndef MODULE
-/* r128_setup is called by the kernel to parse command-line options passed
- * via the boot-loader (e.g., LILO).  It calls the insmod option routine,
- * drm_parse_drm.
- *
- * This is not currently supported, since it requires changes to
- * linux/init/main.c. */
-
+/* r128_options is called by the kernel to parse command-line options
+ * passed via the boot-loader (e.g., LILO).  It calls the insmod option
+ * routine, drm_parse_drm.
+ */
 
-void __init r128_setup(char *str, int *ints)
+static int __init r128_options(char *str, int *ints)
 {
-       if (ints[0] != 0) {
-               DRM_ERROR("Illegal command line format, ignored\n");
-               return;
-       }
        drm_parse_options(str);
+       return 1;
 }
+
+__setup("r128=", r128_options);
 #endif
 
 static int r128_setup(drm_device_t *dev)
index 6c7c5f0..f102757 100644 (file)
@@ -106,46 +106,29 @@ static drm_ioctl_desc_t         tdfx_ioctls[] = {
 #define TDFX_IOCTL_COUNT DRM_ARRAY_SIZE(tdfx_ioctls)
 
 #ifdef MODULE
-int                          init_module(void);
-void                         cleanup_module(void);
 static char                  *tdfx = NULL;
+#endif
 
-MODULE_AUTHOR("Precision Insight, Inc., Cedar Park, Texas.");
+MODULE_AUTHOR("VA Linux Systems, Inc.");
 MODULE_DESCRIPTION("tdfx");
 MODULE_PARM(tdfx, "s");
 
-/* init_module is called when insmod is used to load the module */
-
-int init_module(void)
-{
-       return tdfx_init();
-}
-
-/* cleanup_module is called when rmmod is used to unload the module */
-
-void cleanup_module(void)
-{
-       tdfx_cleanup();
-}
-#endif
+module_init(tdfx_init);
+module_exit(tdfx_cleanup);
 
 #ifndef MODULE
-/* tdfx_setup is called by the kernel to parse command-line options passed
- * via the boot-loader (e.g., LILO).  It calls the insmod option routine,
- * drm_parse_drm.
- *
- * This is not currently supported, since it requires changes to
- * linux/init/main.c. */
+/* tdfx_options is called by the kernel to parse command-line options
+ * passed via the boot-loader (e.g., LILO).  It calls the insmod option
+ * routine, drm_parse_drm.
+ */
 
-void __init tdfx_setup(char *str, int *ints)
+static int __init tdfx_options(char *str, int *ints)
 {
-       if (ints[0] != 0) {
-               DRM_ERROR("Illegal command line format, ignored\n");
-               return;
-       }
        drm_parse_options(str);
+       return 1;
 }
+
+__setup("tdfx=", tdfx_options);
 #endif
 
 static int tdfx_setup(drm_device_t *dev)
index 9ad83bd..3362313 100644 (file)
@@ -129,6 +129,14 @@ typedef struct wait_queue *wait_queue_head_t;
 #define NOPAGE_OOM 0
 #endif
 
+                               /* module_init/module_exit added in 2.3.13 */
+#ifndef module_init
+#define module_init(x)  int init_module(void) { return x(); }
+#endif
+#ifndef module_exit
+#define module_exit(x)  void cleanup_module(void) { x(); }
+#endif
+
                                /* Generic cmpxchg added in 2.3.x */
 #ifndef __HAVE_ARCH_CMPXCHG
                                /* Include this here so that driver can be
index 03f1ee3..0586b4c 100644 (file)
@@ -110,49 +110,34 @@ static drm_ioctl_desc_t         gamma_ioctls[] = {
 #define GAMMA_IOCTL_COUNT DRM_ARRAY_SIZE(gamma_ioctls)
 
 #ifdef MODULE
-int                          init_module(void);
-void                         cleanup_module(void);
 static char                  *gamma = NULL;
 static int                   devices = 0;
+#endif
 
-MODULE_AUTHOR("Precision Insight, Inc., Cedar Park, Texas.");
+MODULE_AUTHOR("VA Linux Systems, Inc.");
 MODULE_DESCRIPTION("3dlabs GMX 2000");
 MODULE_PARM(gamma, "s");
 MODULE_PARM(devices, "i");
-MODULE_PARM_DESC(devices, "devices=x, where x is the number of MX chips on your card\n");
-
-/* init_module is called when insmod is used to load the module */
+MODULE_PARM_DESC(devices,
+                "devices=x, where x is the number of MX chips on card\n");
 
-int init_module(void)
-{
-       return gamma_init();
-}
-
-/* cleanup_module is called when rmmod is used to unload the module */
-
-void cleanup_module(void)
-{
-       gamma_cleanup();
-}
-#endif
+module_init(gamma_init);
+module_exit(gamma_cleanup);
 
 #ifndef MODULE
-/* gamma_setup is called by the kernel to parse command-line options passed
- * via the boot-loader (e.g., LILO).  It calls the insmod option routine,
- * drm_parse_options.
- *
- * This is not currently supported, since it requires changes to
- * linux/init/main.c. */
+/* gamma_options is called by the kernel to parse command-line options
+ * passed via the boot-loader (e.g., LILO).  It calls the insmod option
+ * routine, drm_parse_options.
+ */
  
 
-void __init gamma_setup(char *str, int *ints)
+static int __init gamma_options(char *str, int *ints)
 {
-       if (ints[0] != 0) {
-               DRM_ERROR("Illegal command line format, ignored\n");
-               return;
-       }
        drm_parse_options(str);
+       return 1;
 }
+
+__setup("gamma=", gamma_options);
 #endif
 
 static int gamma_setup(drm_device_t *dev)
index cef3354..0067785 100644 (file)
@@ -123,47 +123,29 @@ static drm_ioctl_desc_t         i810_ioctls[] = {
 #define I810_IOCTL_COUNT DRM_ARRAY_SIZE(i810_ioctls)
 
 #ifdef MODULE
-int                          init_module(void);
-void                         cleanup_module(void);
 static char                  *i810 = NULL;
+#endif
 
-MODULE_AUTHOR("Precision Insight, Inc., Cedar Park, Texas.");
+MODULE_AUTHOR("VA Linux Systems, Inc.");
 MODULE_DESCRIPTION("Intel I810");
 MODULE_PARM(i810, "s");
 
-/* init_module is called when insmod is used to load the module */
-
-int init_module(void)
-{
-       DRM_DEBUG("doing i810_init()\n");
-       return i810_init();
-}
-
-/* cleanup_module is called when rmmod is used to unload the module */
-
-void cleanup_module(void)
-{
-       i810_cleanup();
-}
-#endif
+module_init(i810_init);
+module_exit(i810_cleanup);
 
 #ifndef MODULE
-/* i810_setup is called by the kernel to parse command-line options passed
- * via the boot-loader (e.g., LILO).  It calls the insmod option routine,
- * drm_parse_drm.
- *
- * This is not currently supported, since it requires changes to
- * linux/init/main.c. */
+/* i810_options is called by the kernel to parse command-line options
+ * passed via the boot-loader (e.g., LILO).  It calls the insmod option
+ * routine, drm_parse_drm.
+ */
 
-void __init i810_setup(char *str, int *ints)
+static int __init i810_options(char *str, int *ints)
 {
-       if (ints[0] != 0) {
-               DRM_ERROR("Illegal command line format, ignored\n");
-               return;
-       }
        drm_parse_options(str);
+       return 1;
 }
+
+__setup("i810=", i810_options);
 #endif
 
 static int i810_setup(drm_device_t *dev)
index f8fee21..3e486d8 100644 (file)
@@ -122,47 +122,29 @@ static drm_ioctl_desc_t         mga_ioctls[] = {
 #define MGA_IOCTL_COUNT DRM_ARRAY_SIZE(mga_ioctls)
 
 #ifdef MODULE
-int                          init_module(void);
-void                         cleanup_module(void);
 static char                  *mga = NULL;
+#endif
 
-MODULE_AUTHOR("Precision Insight, Inc., Cedar Park, Texas.");
+MODULE_AUTHOR("VA Linux Systems, Inc.");
 MODULE_DESCRIPTION("Matrox g200/g400");
 MODULE_PARM(mga, "s");
 
-/* init_module is called when insmod is used to load the module */
-
-int init_module(void)
-{
-       DRM_DEBUG("doing mga_init()\n");
-       return mga_init();
-}
-
-/* cleanup_module is called when rmmod is used to unload the module */
-
-void cleanup_module(void)
-{
-       mga_cleanup();
-}
-#endif
+module_init(mga_init);
+module_exit(mga_cleanup);
 
 #ifndef MODULE
-/* mga_setup is called by the kernel to parse command-line options passed
+/* mga_options is called by the kernel to parse command-line options passed
  * via the boot-loader (e.g., LILO).  It calls the insmod option routine,
  * drm_parse_drm.
- *
- * This is not currently supported, since it requires changes to
- * linux/init/main.c. */
+ */
 
-void __init mga_setup(char *str, int *ints)
+static int __init mga_options(char *str, int *ints)
 {
-       if (ints[0] != 0) {
-               DRM_ERROR("Illegal command line format, ignored\n");
-               return;
-       }
        drm_parse_options(str);
+       return 1;
 }
+
+__setup("mga=", mga_options);
 #endif
 
 static int mga_setup(drm_device_t *dev)
index 3a3c416..1103832 100644 (file)
@@ -118,46 +118,29 @@ static drm_ioctl_desc_t         r128_ioctls[] = {
 #define R128_IOCTL_COUNT DRM_ARRAY_SIZE(r128_ioctls)
 
 #ifdef MODULE
-int                          init_module(void);
-void                         cleanup_module(void);
 static char                  *r128 = NULL;
+#endif
 
-MODULE_AUTHOR("Precision Insight, Inc., Cedar Park, Texas.");
+MODULE_AUTHOR("VA Linux Systems, Inc.");
 MODULE_DESCRIPTION("r128");
 MODULE_PARM(r128, "s");
 
-/* init_module is called when insmod is used to load the module */
-
-int init_module(void)
-{
-       return r128_init();
-}
-
-/* cleanup_module is called when rmmod is used to unload the module */
-
-void cleanup_module(void)
-{
-       r128_cleanup();
-}
-#endif
+module_init(r128_init);
+module_exit(r128_cleanup);
 
 #ifndef MODULE
-/* r128_setup is called by the kernel to parse command-line options passed
- * via the boot-loader (e.g., LILO).  It calls the insmod option routine,
- * drm_parse_drm.
- *
- * This is not currently supported, since it requires changes to
- * linux/init/main.c. */
-
+/* r128_options is called by the kernel to parse command-line options
+ * passed via the boot-loader (e.g., LILO).  It calls the insmod option
+ * routine, drm_parse_drm.
+ */
 
-void __init r128_setup(char *str, int *ints)
+static int __init r128_options(char *str, int *ints)
 {
-       if (ints[0] != 0) {
-               DRM_ERROR("Illegal command line format, ignored\n");
-               return;
-       }
        drm_parse_options(str);
+       return 1;
 }
+
+__setup("r128=", r128_options);
 #endif
 
 static int r128_setup(drm_device_t *dev)
index 6c7c5f0..f102757 100644 (file)
@@ -106,46 +106,29 @@ static drm_ioctl_desc_t         tdfx_ioctls[] = {
 #define TDFX_IOCTL_COUNT DRM_ARRAY_SIZE(tdfx_ioctls)
 
 #ifdef MODULE
-int                          init_module(void);
-void                         cleanup_module(void);
 static char                  *tdfx = NULL;
+#endif
 
-MODULE_AUTHOR("Precision Insight, Inc., Cedar Park, Texas.");
+MODULE_AUTHOR("VA Linux Systems, Inc.");
 MODULE_DESCRIPTION("tdfx");
 MODULE_PARM(tdfx, "s");
 
-/* init_module is called when insmod is used to load the module */
-
-int init_module(void)
-{
-       return tdfx_init();
-}
-
-/* cleanup_module is called when rmmod is used to unload the module */
-
-void cleanup_module(void)
-{
-       tdfx_cleanup();
-}
-#endif
+module_init(tdfx_init);
+module_exit(tdfx_cleanup);
 
 #ifndef MODULE
-/* tdfx_setup is called by the kernel to parse command-line options passed
- * via the boot-loader (e.g., LILO).  It calls the insmod option routine,
- * drm_parse_drm.
- *
- * This is not currently supported, since it requires changes to
- * linux/init/main.c. */
+/* tdfx_options is called by the kernel to parse command-line options
+ * passed via the boot-loader (e.g., LILO).  It calls the insmod option
+ * routine, drm_parse_drm.
+ */
 
-void __init tdfx_setup(char *str, int *ints)
+static int __init tdfx_options(char *str, int *ints)
 {
-       if (ints[0] != 0) {
-               DRM_ERROR("Illegal command line format, ignored\n");
-               return;
-       }
        drm_parse_options(str);
+       return 1;
 }
+
+__setup("tdfx=", tdfx_options);
 #endif
 
 static int tdfx_setup(drm_device_t *dev)