- Timestamp:
- Feb 24, 2009 1:00:29 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 43287
- Location:
- trunk/src/VBox/HostDrivers/Support
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/Support/SUPDrvInternal.h
r16029 r17064 185 185 186 186 /* check kernel version */ 187 #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)187 #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) 188 188 # error Unsupported kernel version! 189 189 #endif -
trunk/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
r15999 r17064 64 64 #ifdef CONFIG_X86_LOCAL_APIC 65 65 # include <asm/apic.h> 66 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) 67 # include <asm/nmi.h> 68 # endif 66 # include <asm/nmi.h> 69 67 #endif 70 68 #ifdef VBOX_WITH_SUSPEND_NOTIFICATION 71 69 # include <linux/platform_device.h> 72 #endif73 74 #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)75 # include <asm/pgtable.h>76 # define global_flush_tlb __flush_tlb_global77 70 #endif 78 71 … … 87 80 # define VBOX_DEV_FMASK (S_IRUGO | S_IWUGO) 88 81 # endif 89 90 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)91 92 # define VBOX_REGISTER_DEVFS() \93 ({ \94 void *rc = NULL; \95 if (devfs_mk_cdev(MKDEV(DEVICE_MAJOR, 0), \96 S_IFCHR | VBOX_DEV_FMASK, \97 DEVICE_NAME) == 0) \98 rc = (void *)' '; /* return not NULL */ \99 rc; \100 })101 102 # define VBOX_UNREGISTER_DEVFS(handle) \103 devfs_remove(DEVICE_NAME);104 105 # else /* < 2.6.0 */106 107 # define VBOX_REGISTER_DEVFS() \108 devfs_register(NULL, DEVICE_NAME, DEVFS_FL_DEFAULT, \109 DEVICE_MAJOR, 0, \110 S_IFCHR | VBOX_DEV_FMASK, \111 &gFileOpsVBoxDrv, NULL)112 113 # define VBOX_UNREGISTER_DEVFS(handle) \114 if (handle != NULL) \115 devfs_unregister(handle)116 117 # endif /* < 2.6.0 */118 82 #endif /* CONFIG_DEV_FS && !CONFIG_VBOXDEV_AS_MISC */ 119 120 #ifndef CONFIG_VBOXDRV_AS_MISC121 # if defined(CONFIG_DEVFS_FS) && LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 0)122 # define VBOX_REGISTER_DEVICE(a,b,c) devfs_register_chrdev(a,b,c)123 # define VBOX_UNREGISTER_DEVICE(a,b) devfs_unregister_chrdev(a,b)124 # else125 # define VBOX_REGISTER_DEVICE(a,b,c) register_chrdev(a,b,c)126 # define VBOX_UNREGISTER_DEVICE(a,b) unregister_chrdev(a,b)127 # endif128 #endif /* !CONFIG_VBOXDRV_AS_MISC */129 130 83 131 84 #ifdef CONFIG_X86_HIGH_ENTRY … … 184 137 */ 185 138 static SUPDRVDEVEXT g_DevExt; 186 187 /** Registered devfs device handle. */188 #if defined(CONFIG_DEVFS_FS) && !defined(CONFIG_VBOXDRV_AS_MISC)189 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)190 static void *g_hDevFsVBoxDrv = NULL;191 # else192 static devfs_handle_t g_hDevFsVBoxDrv = NULL;193 # endif194 #endif195 139 196 140 #ifndef CONFIG_VBOXDRV_AS_MISC … … 265 209 name: DEVICE_NAME, 266 210 fops: &gFileOpsVBoxDrv, 267 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) && \ 268 LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 17) 211 # if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 17) 269 212 devfs_name: DEVICE_NAME, 270 213 # endif … … 447 390 * we don't allow to setup an NMI watchdog. 448 391 */ 449 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) &&!defined(VBOX_REDHAT_KABI)392 # if !defined(VBOX_REDHAT_KABI) 450 393 /* 451 394 * First test: NMI actiated? Works only works with Linux 2.6 -- 2.4 does not export 452 395 * the nmi_watchdog variable. 453 396 */ 454 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || \ 455 (defined CONFIG_X86_64 && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)) 397 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined CONFIG_X86_64 456 398 # ifdef DO_DISABLE_NMI 457 399 if (nmi_atomic_read(&nmi_active) > 0) … … 531 473 if ((GET_APIC_DELIVERY_MODE(v) == APIC_MODE_NMI) && !(v & APIC_LVT_MASKED)) 532 474 { 533 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || \ 534 (defined CONFIG_X86_64 && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)) 475 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) || defined CONFIG_X86_64 535 476 printk(KERN_ERR DEVICE_NAME 536 477 ": NMI watchdog either active or at least initialized. Please disable the NMI\n" … … 539 480 return -EINVAL; 540 481 # else /* < 2.6.19 */ 541 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) &&!defined(VBOX_REDHAT_KABI)482 # if !defined(VBOX_REDHAT_KABI) 542 483 nmi_activated: 543 484 # endif … … 572 513 */ 573 514 g_iModuleMajor = DEVICE_MAJOR; 574 rc = VBOX_REGISTER_DEVICE((dev_t)g_iModuleMajor, DEVICE_NAME, &gFileOpsVBoxDrv);515 rc = register_chrdev((dev_t)g_iModuleMajor, DEVICE_NAME, &gFileOpsVBoxDrv); 575 516 if (rc < 0) 576 517 { 577 dprintf((" VBOX_REGISTER_DEVICEfailed with rc=%#x!\n", rc));518 dprintf(("register_chrdev() failed with rc=%#x!\n", rc)); 578 519 return rc; 579 520 } … … 588 529 rc = 0; 589 530 590 # ifdef CONFIG_DEVFS_FS531 # ifdef CONFIG_DEVFS_FS 591 532 /* 592 533 * Register a device entry 593 534 */ 594 g_hDevFsVBoxDrv = VBOX_REGISTER_DEVFS(); 595 if (g_hDevFsVBoxDrv == NULL) 535 if (devfs_mk_cdev(MKDEV(DEVICE_MAJOR, 0), S_IFCHR | VBOX_DEV_FMASK, DEVICE_NAME) != 0) 596 536 { 597 537 dprintf(("devfs_register failed!\n")); 598 538 rc = -EINVAL; 599 539 } 600 # endif540 # endif 601 541 #endif /* !CONFIG_VBOXDRV_AS_MISC */ 602 542 if (!rc) … … 658 598 */ 659 599 #if defined(CONFIG_DEVFS_FS) && !defined(CONFIG_VBOXDRV_AS_MISC) 660 VBOX_UNREGISTER_DEVFS(g_hDevFsVBoxDrv);600 devfs_remove(DEVICE_NAME); 661 601 #endif 662 602 } … … 665 605 dprintf(("VBoxDrv::ModuleInit returning %#x (minor:%d)\n", rc, gMiscDevice.minor)); 666 606 #else 667 VBOX_UNREGISTER_DEVICE(g_iModuleMajor, DEVICE_NAME);607 unregister_chrdev(g_iModuleMajor, DEVICE_NAME); 668 608 dprintf(("VBoxDrv::ModuleInit returning %#x (major:%d)\n", rc, g_iModuleMajor)); 669 609 #endif … … 701 641 * Unregister a device entry 702 642 */ 703 VBOX_UNREGISTER_DEVFS(g_hDevFsVBoxDrv);643 devfs_remove(DEVICE_NAME); 704 644 # endif /* devfs */ 705 VBOX_UNREGISTER_DEVICE(g_iModuleMajor, DEVICE_NAME);645 unregister_chrdev(g_iModuleMajor, DEVICE_NAME); 706 646 #endif /* !CONFIG_VBOXDRV_AS_MISC */ 707 647 … … 1081 1021 #endif 1082 1022 1083 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)1084 1023 module_param(force_async_tsc, int, 0444); 1085 #else1086 MODULE_PARM(force_async_tsc, "i");1087 #endif1088 1024 MODULE_PARM_DESC(force_async_tsc, "force the asynchronous TSC mode"); 1089 1025
Note:
See TracChangeset
for help on using the changeset viewer.