Changeset 24386 in vbox
- Timestamp:
- Nov 5, 2009 2:17:10 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 11 deleted
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Config.kmk
r24385 r24386 393 393 VBOX_WITH_NEW_USB_CODE_ON_DARWIN=1 394 394 # Enable USB code that relies on USBA driver election callback & our own USB client driver on Solaris. 395 #ifdef VBOX_WITH_USB396 #VBOX_WITH_NEW_USB_CODE_ON_SOLARIS=1397 #endif395 ifdef VBOX_WITH_USB 396 VBOX_WITH_NEW_USB_CODE_ON_SOLARIS=1 397 endif 398 398 # Enable the hal/sysfs USB code on Linux. This depends on VBOX_WITH_DBUS. 399 399 ifdef VBOX_WITH_DBUS … … 401 401 endif 402 402 # Use the new VBI module on Solaris. 403 VBOX_WITH_SOLARIS_VBI = 1403 #VBOX_WITH_SOLARIS_VBI = 1 404 404 # Enable 64 bits guest pointers. 405 405 VBOX_WITH_64_BITS_GUESTS = 1 … … 2317 2317 TEMPLATE_VBOXR0DRV_INCS = $(VBOX_SOLARIS_SYS_INCS) 2318 2318 TEMPLATE_VBOXR0DRV_LDFLAGS = -r -dy 2319 ifdef VBOX_WITH_SOLARIS_VBI2320 TEMPLATE_VBOXR0DRV_LDFLAGS += -N misc/vbi2321 endif2322 2319 TEMPLATE_VBOXR0DRV_LDFLAGS.amd64 = -64 2323 2320 # Exclude -Wall because of solaris headers' pragma ident warnings that gcc refuses to supress. … … 3625 3622 ifeq ($(KBUILD_TARGET),solaris) # No VBI for the guest additions yet. 3626 3623 TEMPLATE_VBOXGUESTR0_LDFLAGS = -r -dy 3627 # ifdef VBOX_WITH_SOLARIS_VBI3628 # TEMPLATE_VBOXGUESTR0DRV_LDFLAGS += -N misc/vbi3629 # endif3630 3624 endif 3631 3625 -
trunk/src/VBox/Runtime/Makefile.kmk
r24189 r24386 1135 1135 RuntimeR0Drv_INCS.linux = \ 1136 1136 r0drv/linux 1137 ifdef VBOX_WITH_SOLARIS_VBI 1138 RuntimeR0Drv_INCS.solaris = \ 1139 r0drv/solaris/vbi/i86pc 1140 endif 1137 RuntimeR0Drv_INCS.solaris = \ 1138 r0drv/solaris/vbi/i86pc \ 1139 r0drv/solaris/vbi/i86pc/sys 1141 1140 1142 1141 RuntimeR0Drv_SOURCES = \ … … 1423 1422 r0drv/solaris/spinlock-r0drv-solaris.c 1424 1423 1425 ifdef VBOX_WITH_SOLARIS_VBI 1424 # VBI is now compiled into IPRT 1426 1425 RuntimeR0Drv_SOURCES.solaris += \ 1427 1426 r0drv/solaris/vbi/RTMpPokeCpu-r0drv-solaris.c \ … … 1434 1433 r0drv/solaris/vbi/thread2-r0drv-solaris.c \ 1435 1434 r0drv/solaris/vbi/time-r0drv-solaris.c \ 1436 r0drv/solaris/vbi/timer-r0drv-solaris.c 1437 else # !VBOX_WITH_SOLARIS_VBI 1438 RuntimeR0Drv_SOURCES.solaris += \ 1439 r0drv/solaris/mpnotification-r0drv-solaris.c \ 1440 r0drv/solaris/alloc-r0drv-solaris.c \ 1441 r0drv/solaris/memobj-r0drv-solaris.c \ 1442 r0drv/solaris/process-r0drv-solaris.c \ 1443 r0drv/solaris/thread-r0drv-solaris.c \ 1444 r0drv/solaris/thread2-r0drv-solaris.c \ 1445 r0drv/solaris/time-r0drv-solaris.c \ 1446 r0drv/solaris/timer-r0drv-solaris.c 1447 # Don't use mp-r0drv-solaris.c because it will cause crashes due to incorrect memobj-r0drv-solaris.c code. 1448 ifeq (0,0) 1449 # Stub it. ## @todo limit the stubbing to RTMpOn*. 1450 RuntimeR0Drv_SOURCES.solaris += \ 1451 generic/RTMpCpuId-generic.cpp \ 1452 generic/RTMpCpuIdFromSetIndex-generic.cpp \ 1453 generic/RTMpCpuIdToSetIndex-generic.cpp \ 1454 generic/RTMpIsCpuPossible-generic.cpp \ 1455 generic/RTMpGetCount-generic.cpp \ 1456 generic/RTMpGetMaxCpuId-generic.cpp \ 1457 generic/RTMpGetOnlineCount-generic.cpp \ 1458 generic/RTMpGetOnlineSet-generic.cpp \ 1459 generic/RTMpGetSet-generic.cpp \ 1460 generic/RTMpIsCpuOnline-generic.cpp \ 1461 r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \ 1462 r0drv/generic/RTMpOn-r0drv-generic.cpp \ 1463 r0drv/solaris/RTMpPokeCpu-r0drv-solaris.c 1464 else 1465 # Use mp-r0drv-solaris.c. 1466 RuntimeR0Drv_SOURCES.solaris += \ 1467 r0drv/solaris/mp-r0drv-solaris.c \ 1468 r0drv/solaris/RTMpPokeCpu-r0drv-solaris.c 1469 # r0drv/solaris/mpnotification-r0drv-solaris.c 1470 endif 1471 1472 endif # !VBOX_WITH_SOLARIS_VBI 1435 r0drv/solaris/vbi/timer-r0drv-solaris.c \ 1436 r0drv/solaris/vbi/i86pc/os/vbi.c 1437 1473 1438 1474 1439 ## PORTME: Porters create and add their selection of platform specific Ring-0 Driver files here. … … 1491 1456 RuntimeGuestR0_EXTENDS = RuntimeR0Drv 1492 1457 1493 # HACK: no vbi for the solaris guest additions - yet.1494 RuntimeGuestR0_SOURCES.solaris = \1495 common/err/RTErrConvertFromErrno.cpp \1496 common/err/RTErrConvertToErrno.cpp \1497 common/misc/thread.cpp \1498 common/string/memchr.asm \1499 generic/RTAssertShouldPanic-generic.cpp \1500 generic/RTTimerCreate-generic.cpp \1501 r0drv/memobj-r0drv.cpp \1502 generic/RTMpCpuId-generic.cpp \1503 generic/RTMpCpuIdFromSetIndex-generic.cpp \1504 generic/RTMpCpuIdToSetIndex-generic.cpp \1505 generic/RTMpIsCpuPossible-generic.cpp \1506 generic/RTMpGetCount-generic.cpp \1507 generic/RTMpGetMaxCpuId-generic.cpp \1508 generic/RTMpGetOnlineCount-generic.cpp \1509 generic/RTMpGetOnlineSet-generic.cpp \1510 generic/RTMpGetSet-generic.cpp \1511 generic/RTMpIsCpuOnline-generic.cpp \1512 generic/RTLogWriteStdOut-stub-generic.cpp \1513 generic/mppresent-generic.cpp \1514 r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \1515 r0drv/generic/RTMpOn-r0drv-generic.cpp \1516 r0drv/generic/RTMpPokeCpu-r0drv-generic.cpp \1517 r0drv/generic/mpnotification-r0drv-generic.cpp \1518 r0drv/solaris/alloc-r0drv-solaris.c \1519 r0drv/solaris/assert-r0drv-solaris.c \1520 r0drv/solaris/initterm-r0drv-solaris.c \1521 r0drv/solaris/memobj-r0drv-solaris.c \1522 r0drv/solaris/process-r0drv-solaris.c \1523 r0drv/solaris/RTLogWriteDebugger-r0drv-solaris.c \1524 r0drv/solaris/semevent-r0drv-solaris.c \1525 r0drv/solaris/semeventmulti-r0drv-solaris.c \1526 r0drv/solaris/semfastmutex-r0drv-solaris.c \1527 r0drv/solaris/spinlock-r0drv-solaris.c \1528 r0drv/solaris/thread-r0drv-solaris.c \1529 r0drv/solaris/thread2-r0drv-solaris.c \1530 r0drv/solaris/time-r0drv-solaris.c \1531 r0drv/solaris/timer-r0drv-solaris.c1532 1458 1533 1459 # -
trunk/src/VBox/Runtime/r0drv/solaris/initterm-r0drv-solaris.c
r22556 r24386 52 52 { 53 53 /* 54 * Detech whether spl*() is preserving the interrupt flag or not. 55 * This is a problem on S10. 54 * Initialize vbi (keeping it separate for now) 56 55 */ 57 RTCCUINTREG uOldFlags = ASMIntDisableFlags(); 58 int iOld = splr(DISP_LEVEL); 59 if (ASMIntAreEnabled()) 60 g_frtSolarisSplSetsEIF = true; 61 splx(iOld); 62 if (ASMIntAreEnabled()) 63 g_frtSolarisSplSetsEIF = true; 64 ASMSetFlags(uOldFlags); 56 int rc = vbi_init(); 57 if (!rc) 58 { 59 /* 60 * Detech whether spl*() is preserving the interrupt flag or not. 61 * This is a problem on S10. 62 */ 63 RTCCUINTREG uOldFlags = ASMIntDisableFlags(); 64 int iOld = splr(DISP_LEVEL); 65 if (ASMIntAreEnabled()) 66 g_frtSolarisSplSetsEIF = true; 67 splx(iOld); 68 if (ASMIntAreEnabled()) 69 g_frtSolarisSplSetsEIF = true; 70 ASMSetFlags(uOldFlags); 65 71 66 return VINF_SUCCESS; 72 return VINF_SUCCESS; 73 } 74 cmn_err(CE_NOTE, "vbi_init failed. rc=%d\n", rc); 75 return VERR_GENERAL_FAILURE; 67 76 } 68 77 -
trunk/src/VBox/Runtime/r0drv/solaris/the-solaris-kernel.h
r22991 r24386 59 59 #include <sys/spl.h> 60 60 #include <sys/archsystm.h> 61 #include "vbi.h" 61 62 62 63 #undef u /* /usr/include/sys/user.h:249:1 is where this is defined to (curproc->p_user). very cool. */ … … 66 67 67 68 RT_C_DECLS_BEGIN 68 extern bool 69 extern struct ddi_dma_attr 69 extern bool g_frtSolarisSplSetsEIF; 70 extern struct ddi_dma_attr g_SolarisX86PhysMemLimits; 70 71 extern uintptr_t kernelbase; 72 extern RTCPUSET g_rtMpSolarisCpuSet; 71 73 RT_C_DECLS_END 72 74 -
trunk/src/VBox/Runtime/r0drv/solaris/vbi/RTMpPokeCpu-r0drv-solaris.c
r22073 r24386 33 33 * Header Files * 34 34 *******************************************************************************/ 35 #include " the-solaris-kernel.h"35 #include "../the-solaris-kernel.h" 36 36 #include "internal/iprt.h" 37 37 #include <iprt/mp.h> -
trunk/src/VBox/Runtime/r0drv/solaris/vbi/alloc-r0drv-solaris.c
r22073 r24386 33 33 * Header Files * 34 34 *******************************************************************************/ 35 #include " the-solaris-kernel.h"35 #include "../the-solaris-kernel.h" 36 36 #include "internal/iprt.h" 37 37 #include <iprt/mem.h> -
trunk/src/VBox/Runtime/r0drv/solaris/vbi/i86pc/os/vbi.c
r21452 r24386 187 187 /* End of v6 intro */ 188 188 189 189 #if 0 190 190 int 191 191 _init(void) 192 { 193 int err = vbi_init(); 194 if (!err) 195 err = mod_install(&vbi_modlinkage); 196 return (err); 197 } 198 #endif 199 200 int 201 vbi_init(void) 192 202 { 193 203 int err; … … 266 276 return EINVAL; 267 277 } 268 269 err = mod_install(&vbi_modlinkage);270 if (err != 0)271 return (err);272 273 278 return (0); 274 279 } 275 280 281 #if 0 276 282 int 277 283 _fini(void) … … 289 295 return (mod_info(&vbi_modlinkage, modinfop)); 290 296 } 297 #endif 298 291 299 292 300 static ddi_dma_attr_t base_attr = { -
trunk/src/VBox/Runtime/r0drv/solaris/vbi/memobj-r0drv-solaris.c
r24247 r24386 33 33 * Header Files * 34 34 *******************************************************************************/ 35 #include " the-solaris-kernel.h"35 #include "../the-solaris-kernel.h" 36 36 #include "internal/iprt.h" 37 37 #include <iprt/memobj.h> -
trunk/src/VBox/Runtime/r0drv/solaris/vbi/mp-r0drv-solaris.c
r22347 r24386 33 33 * Header Files * 34 34 *******************************************************************************/ 35 #include " the-solaris-kernel.h"35 #include "../the-solaris-kernel.h" 36 36 #include "internal/iprt.h" 37 37 #include <iprt/mp.h> 38 #include <iprt/cpuset.h> 38 39 39 40 #include <iprt/asm.h> 40 41 #include <iprt/err.h> 41 #include "internal-r0drv-solaris.h"42 42 #include "r0drv/mp-r0drv.h" 43 43 -
trunk/src/VBox/Runtime/r0drv/solaris/vbi/mpnotification-r0drv-solaris.c
r22439 r24386 32 32 * Header Files * 33 33 *******************************************************************************/ 34 #include " the-solaris-kernel.h"34 #include "../the-solaris-kernel.h" 35 35 #include "internal/iprt.h" 36 36 37 37 #include <iprt/err.h> 38 38 #include <iprt/mp.h> 39 #include <iprt/cpuset.h> 39 40 #include "r0drv/mp-r0drv.h" 40 #include "internal-r0drv-solaris.h"41 41 42 42 -
trunk/src/VBox/Runtime/r0drv/solaris/vbi/process-r0drv-solaris.c
r22073 r24386 33 33 * Header Files * 34 34 *******************************************************************************/ 35 #include " the-solaris-kernel.h"35 #include "../the-solaris-kernel.h" 36 36 #include "internal/iprt.h" 37 37 #include <iprt/process.h> -
trunk/src/VBox/Runtime/r0drv/solaris/vbi/thread-r0drv-solaris.c
r23505 r24386 33 33 * Header Files * 34 34 *******************************************************************************/ 35 #include " the-solaris-kernel.h"35 #include "../the-solaris-kernel.h" 36 36 #include "internal/iprt.h" 37 37 #include <iprt/thread.h> -
trunk/src/VBox/Runtime/r0drv/solaris/vbi/thread2-r0drv-solaris.c
r22073 r24386 33 33 * Header Files * 34 34 *******************************************************************************/ 35 #include " the-solaris-kernel.h"35 #include "../the-solaris-kernel.h" 36 36 #include "internal/iprt.h" 37 37 #include <iprt/thread.h> -
trunk/src/VBox/Runtime/r0drv/solaris/vbi/time-r0drv-solaris.c
r22073 r24386 34 34 *******************************************************************************/ 35 35 #define RTTIME_INCL_TIMESPEC 36 #include " the-solaris-kernel.h"36 #include "../the-solaris-kernel.h" 37 37 #include "internal/iprt.h" 38 38 #include <iprt/time.h> -
trunk/src/VBox/Runtime/r0drv/solaris/vbi/timer-r0drv-solaris.c
r22073 r24386 33 33 * Header Files * 34 34 *******************************************************************************/ 35 #include " the-solaris-kernel.h"35 #include "../the-solaris-kernel.h" 36 36 #include "internal/iprt.h" 37 37 #include <iprt/timer.h>
Note:
See TracChangeset
for help on using the changeset viewer.