- Timestamp:
- Feb 13, 2024 10:45:22 AM (12 months ago)
- Location:
- trunk/src
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/Support/Makefile.kmk
r103306 r103331 194 194 $(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE,) \ 195 195 $(if $(VBOX_WITH_DRIVERLESS_NEM_FALLBACK),VBOX_WITH_DRIVERLESS_NEM_FALLBACK,) \ 196 $(if $(VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC),VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC,) \197 196 VBOX_PERMIT_MORE \ 198 197 VBOX_PERMIT_EVEN_MORE … … 242 241 $(if $(VBOX_WITHOUT_DEBUGGER_CHECKS),VBOX_WITHOUT_DEBUGGER_CHECKS,) \ 243 242 $(if $(VBOX_PERMIT_VISUAL_STUDIO_PROFILING),VBOX_PERMIT_VISUAL_STUDIO_PROFILING,) \ 244 $(if $(VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC),VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC,) \245 243 VBOX_PERMIT_MORE \ 246 244 VBOX_PERMIT_EVEN_MORE -
trunk/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp
r103305 r103331 184 184 { kSupIFT_Dll, kSupID_AppSharedLib, false, "VBoxC" SUPLIB_DLL_SUFF }, 185 185 #else 186 # ifdef VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC187 186 { kSupIFT_Dll, kSupID_AppPrivArch, false, "VBoxXPCOMIPCD" SUPLIB_DLL_SUFF }, 188 # else189 { kSupIFT_Exe, kSupID_AppPrivArch, false, "VBoxXPCOMIPCD" SUPLIB_EXE_SUFF },190 # endif191 187 { kSupIFT_Dll, kSupID_AppSharedLib, false, "VBoxXPCOM" SUPLIB_DLL_SUFF }, 192 188 { kSupIFT_Dll, kSupID_AppPrivArchComp, false, "VBoxXPCOMIPCC" SUPLIB_DLL_SUFF }, -
trunk/src/VBox/Installer/darwin/Makefile.kmk
r103304 r103331 411 411 MacOS/VBoxManage \ 412 412 MacOS/VBoxSVC \ 413 $(if $(VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC),,MacOS/VBoxXPCOMIPCD) \414 413 MacOS/VBoxNetAdpCtl \ 415 414 MacOS/VBoxExtPackHelperApp \ … … 440 439 MacOS/VBoxXPCOM.dylib \ 441 440 MacOS/VBoxXPCOMC.dylib \ 442 $(if $(VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC),MacOS/VBoxXPCOMIPCD.dylib,)\441 MacOS/VBoxXPCOMIPCD.dylib \ 443 442 MacOS/components/VBoxC.dylib \ 444 443 MacOS/components/VBoxSVCM.dylib \ -
trunk/src/VBox/Installer/freebsd/Makefile.kmk
r103303 r103331 108 108 VBoxXPCOM.so \ 109 109 VBoxXPCOMC.so \ 110 $(if $(VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC),VBoxXPCOMICPD.so,VBoxXPCOMICPD)\110 VBoxXPCOMICPD.so \ 111 111 components/VBoxXPCOMIPCC.so \ 112 112 components/VBoxSVCM.so \ -
trunk/src/VBox/Installer/linux/Makefile.kmk
r103304 r103331 181 181 VBoxXPCOM.so \ 182 182 VBoxXPCOMC.so \ 183 $(if $(VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC),VBoxXPCOMIPCD.so,VBoxXPCOMIPCD)\183 VBoxXPCOMIPCD.so \ 184 184 components/VBoxXPCOMIPCC.so \ 185 185 components/VBoxSVCM.so \ -
trunk/src/VBox/Installer/solaris/Makefile.kmk
r103304 r103331 327 327 $(if $(VBOX_WITH_EXTPACK),VBoxExtPackHelperApp,) \ 328 328 VBoxSVC \ 329 $(if $(VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC),,VBoxXPCOMIPCD) \330 329 $(if $(VBOX_WITH_DTRACE),VBoxDTrace,) \ 331 330 $(if $(VBOX_WITH_HOST_SHIPPING_AUDIO_TEST),VBoxAudioTest,) … … 348 347 VBoxXPCOM.so \ 349 348 VBoxXPCOMC.so \ 350 $(if $(VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC),VBoxXPCOMIPCD.so,)\349 VBoxXPCOMIPCD.so \ 351 350 $(if $(VBOX_WITH_SHARED_FOLDERS),VBoxSharedFolders.so,) \ 352 351 $(if $(VBOX_WITH_SHARED_CLIPBOARD),VBoxSharedClipboard.so,) \ -
trunk/src/VBox/Main/Makefile.kmk
r103301 r103331 547 547 $(if $(VBOX_WITH_IEM_NATIVE_RECOMPILER),VBOX_WITH_IEM_NATIVE_RECOMPILER,) \ 548 548 $(if $(VBOX_WITH_DRIVERLESS_FORCED),VBOX_WITH_DRIVERLESS_FORCED,) \ 549 $(if $(VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC),VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC,)550 549 551 550 ifdef VBOX_WITH_USB … … 581 580 $(PATH_STAGE_LIB)/VBoxAPIWrap$(VBOX_SUFF_LIB) \ 582 581 $(PATH_STAGE_LIB)/SSMStandalone$(VBOX_SUFF_LIB) \ 583 $( if $(VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC),$(LIB_VBOXXPCOMIPCD),) \582 $(LIB_VBOXXPCOMIPCD) \ 584 583 $(LIB_DDU) 585 584 -
trunk/src/VBox/Main/src-server/xpcom/server.cpp
r103300 r103331 51 51 #include <iprt/pipe.h> 52 52 #include <iprt/process.h> 53 #include <iprt/thread.h> 53 54 #include <iprt/timer.h> 54 55 #include <iprt/env.h> … … 112 113 NS_DECL_CI_INTERFACE_GETTER(VirtualBoxWrap) 113 114 115 /* Living in VBoxXPCOMIPCD. */ 116 DECL_IMPORT_NOTHROW(int) RTCALL VBoxXpcomIpcdCreate(PRTTHREAD phThrdIpcd); 117 DECL_IMPORT_NOTHROW(int) RTCALL VBoxXpcomIpcdDestroy(RTTHREAD hThrdIpcd); 118 114 119 //////////////////////////////////////////////////////////////////////////////// 115 120 … … 664 669 } 665 670 666 #ifdef VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC 667 668 #include <iprt/thread.h> 669 670 DECL_IMPORT_NOTHROW(int) RTCALL VBoxXpcomIpcdCreate(PRTTHREAD phThrdIpcd); 671 DECL_IMPORT_NOTHROW(int) RTCALL VBoxXpcomIpcdDestroy(RTTHREAD hThrdIpcd); 672 #endif 671 673 672 674 673 int main(int argc, char **argv) … … 832 831 }; 833 832 834 #ifdef VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC 833 /* Spawn the IPC message I/O thread. */ 835 834 RTTHREAD hThrdIpcd = NIL_RTTHREAD; 836 835 vrc = VBoxXpcomIpcdCreate(&hThrdIpcd); 837 836 if (RT_FAILURE(vrc)) 838 837 return RTMsgErrorExit(RTEXITCODE_FAILURE, "failed to create IPC daemon thread -> %Rrc", vrc); 839 #endif840 838 841 839 do /* goto avoidance only */ … … 1018 1016 RTMsgError("Failed to shutdown XPCOM! (rc=%Rhrc)", rc); 1019 1017 1020 #ifdef VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC1021 1018 vrc = VBoxXpcomIpcdDestroy(hThrdIpcd); 1022 1019 AssertRC(vrc); 1023 #endif1024 1020 1025 1021 RTPrintf("XPCOM server has shutdown.\n"); -
trunk/src/libs/xpcom18a4/Makefile.kmk
r103307 r103331 105 105 VBOX_XPCOM_DLLS := \ 106 106 VBoxXPCOM \ 107 VBoxXPCOMIPCC 108 ifdef VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC 109 VBOX_XPCOM_DLLS += \ 110 VBoxXPCOMIPCD 111 endif 107 VBoxXPCOMIPCC \ 108 VBoxXPCOMIPCD 112 109 113 110 DLLS += $(VBOX_XPCOM_DLLS) … … 139 136 tstPrimitiveTest 140 137 endif # VBOX_WITH_TESTCASES 141 ifndef VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC142 PROGRAMS += VBoxXPCOMIPCD143 endif144 138 145 139 endif # !VBOX_ONLY_SDK && (!defined(VBOX_ONLY_EXTPACKS) || !defined(VBOX_ONLY_EXTPACKS_USE_IMPLIBS)) … … 763 757 TEMPLATE_XPComIpcDll_DEFS = \ 764 758 $(TEMPLATE_XPComDll_DEFS) \ 765 BUILD_DCONNECT=1 \ 766 $(if $(VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC),VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC,) 767 768 ifdef VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC 769 ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING 770 TEMPLATE_XPComIpcDll_DEFS += IPC_DAEMON_APP_NAME="VBoxSVC$(SUFF_EXE)" 771 else 772 TEMPLATE_XPComIpcDll_DEFS += IPC_DAEMON_APP_NAME=\"VBoxSVC$(SUFF_EXE)\" 773 endif 759 BUILD_DCONNECT=1 760 761 ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING 762 TEMPLATE_XPComIpcDll_DEFS += IPC_DAEMON_APP_NAME="VBoxSVC$(SUFF_EXE)" 774 763 else 775 ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING 776 TEMPLATE_XPComIpcDll_DEFS += IPC_DAEMON_APP_NAME="VBoxXPCOMIPCD$(SUFF_EXE)" 777 else 778 TEMPLATE_XPComIpcDll_DEFS += IPC_DAEMON_APP_NAME=\"VBoxXPCOMIPCD$(SUFF_EXE)\" 779 endif 764 TEMPLATE_XPComIpcDll_DEFS += IPC_DAEMON_APP_NAME=\"VBoxSVC$(SUFF_EXE)\" 780 765 endif 781 766 ifdef IPC_LOGGING … … 857 842 # DCONNECT daemon executable 858 843 # 859 ifdef VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC 860 VBoxXPCOMIPCD_TEMPLATE = XPComIpcDll 861 VBoxXPCOMIPCD_SOURCES = \ 862 ipc/ipcd/daemon/src/ipcd.cpp \ 863 ipc/ipcd/daemon/src/ipcClient.cpp \ 864 ipc/ipcd/daemon/src/ipcCommandModule.cpp \ 865 ipc/ipcd/daemon/src/ipcdUnix.cpp 866 VBoxXPCOMIPCD_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxXPCOMIPCD.dylib 867 VBoxXPCOMIPCD_LIBS = \ 868 $(VBox-xpcom-ipcshared_1_TARGET) \ 869 $(VBoxXPCOM_1_TARGET) \ 870 $(TEMPLATE_XPComDll_LIBS) 871 else 872 VBoxXPCOMIPCD_TEMPLATE = XPComIpcExe 873 VBoxXPCOMIPCD_SOURCES = \ 874 ipc/ipcd/daemon/src/ipcd.cpp \ 875 ipc/ipcd/daemon/src/ipcClient.cpp \ 876 ipc/ipcd/daemon/src/ipcCommandModule.cpp \ 877 ipc/ipcd/daemon/src/ipcdUnix.cpp 878 endif 844 VBoxXPCOMIPCD_TEMPLATE = XPComIpcDll 845 VBoxXPCOMIPCD_SOURCES = \ 846 ipc/ipcd/daemon/src/ipcd.cpp \ 847 ipc/ipcd/daemon/src/ipcClient.cpp \ 848 ipc/ipcd/daemon/src/ipcCommandModule.cpp \ 849 ipc/ipcd/daemon/src/ipcdUnix.cpp 850 VBoxXPCOMIPCD_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxXPCOMIPCD.dylib 851 VBoxXPCOMIPCD_LIBS = \ 852 $(VBox-xpcom-ipcshared_1_TARGET) \ 853 $(VBoxXPCOM_1_TARGET) \ 854 $(TEMPLATE_XPComDll_LIBS) 879 855 880 856 -
trunk/src/libs/xpcom18a4/ipc/ipcd/client/src/ipcdclient.cpp
r103300 r103331 1243 1243 char szPipeInheritFd[32]; RT_ZERO(szPipeInheritFd); 1244 1244 const char *const s_apszArgs[] = { (char *const) path, 1245 #ifdef VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC1246 1245 "--auto-shutdown", 1247 #endif1248 1246 "--inherit-startup-pipe", 1249 1247 &szPipeInheritFd[0], NULL }; -
trunk/src/libs/xpcom18a4/ipc/ipcd/daemon/src/ipcClient.cpp
r102062 r103331 145 145 // PR_POLL_WRITE - to wait for the client socket to become writable 146 146 // 147 int147 uint32_t 148 148 ipcClient::Process(uint32_t inFlags) 149 149 { … … 155 155 156 156 // expect to wait for more data 157 int outFlags = RTPOLL_EVT_READ;157 uint32_t outFlags = RTPOLL_EVT_READ; 158 158 159 159 if (inFlags & RTPOLL_EVT_READ) { -
trunk/src/libs/xpcom18a4/ipc/ipcd/daemon/src/ipcClient.h
r103055 r103331 98 98 // the socket is non-blocking. 99 99 // 100 int Process(uint32_t pollFlags);100 uint32_t Process(uint32_t pollFlags); 101 101 102 102 // -
trunk/src/libs/xpcom18a4/ipc/ipcd/daemon/src/ipcdPrivate.h
r103300 r103331 48 48 // XXX may want to make this more dynamic 49 49 // 50 #ifdef VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC 51 # define IPC_MAX_CLIENTS 100 52 #else 53 # define IPC_MAX_CLIENTS 10000 54 #endif 50 #define IPC_MAX_CLIENTS 100 55 51 56 52 /** List of connected IPC clients. */ -
trunk/src/libs/xpcom18a4/ipc/ipcd/daemon/src/ipcdUnix.cpp
r103300 r103331 44 44 #include <iprt/socket.h> 45 45 #include <iprt/string.h> 46 #ifdef VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC 47 # include <iprt/thread.h> 48 #endif 46 #include <iprt/thread.h> 49 47 #include <VBox/log.h> 50 48 … … 87 85 88 86 RTPOLLSET hPollSet; 89 90 #ifdef VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC 91 RTTHREAD hThread; 92 #endif 87 RTTHREAD hThread; 93 88 } IPCDSTATE; 94 89 typedef IPCDSTATE *PIPCDSTATE; … … 549 544 550 545 551 //-----------------------------------------------------------------------------552 #ifndef VBOX_WITH_XPCOMIPCD_IN_VBOX_SVC553 int main(int argc, char **argv)554 {555 /* Set up the runtime without loading the support driver. */556 int vrc = RTR3InitExe(argc, &argv, 0);557 if (RT_FAILURE(vrc))558 return RTMsgInitFailure(vrc);559 560 /*561 * Parse the command line.562 */563 static RTGETOPTDEF const s_aOptions[] =564 {565 { "--inherit-startup-pipe", 'f', RTGETOPT_REQ_UINT32 },566 { "--socket-path", 'p', RTGETOPT_REQ_STRING },567 };568 569 RTGETOPTSTATE State;570 vrc = RTGetOptInit(&State, argc, argv, &s_aOptions[0], RT_ELEMENTS(s_aOptions), 1, RTGETOPTINIT_FLAGS_OPTS_FIRST);571 if (RT_FAILURE(vrc))572 return RTMsgErrorExit(RTEXITCODE_FAILURE, "RTGetOptInit failed: %Rrc", vrc);573 574 uint32_t uStartupPipeFd = UINT32_MAX;575 const char *pszSocketPath = NULL;576 RTGETOPTUNION ValueUnion;577 int chOpt;578 while ((chOpt = RTGetOpt(&State, &ValueUnion)) != 0)579 {580 switch (chOpt)581 {582 case 'f':583 uStartupPipeFd = ValueUnion.u32;584 break;585 case 'p':586 pszSocketPath = ValueUnion.psz;587 break;588 default:589 return RTGetOptPrintError(chOpt, &ValueUnion);590 }591 }592 593 //594 // ignore SIGINT so <ctrl-c> from terminal only kills the client595 // which spawned this daemon.596 //597 signal(SIGINT, SIG_IGN);598 // XXX block others? check cartman599 600 // ensure strict file permissions601 umask(0077);602 603 LogFlowFunc(("daemon started...\n"));604 605 //XXX uncomment these lines to test slow starting daemon606 //IPC_Sleep(2);607 608 IPCDSTATE IpcdState;609 vrc = ipcdInit(&IpcdState, pszSocketPath);610 if (vrc == VERR_ALREADY_EXISTS)611 {612 IPC_NotifyParent(uStartupPipeFd);613 return 0;614 }615 616 if (RT_SUCCESS(vrc))617 {618 IPC_NotifyParent(uStartupPipeFd);619 PollLoop(&IpcdState);620 }621 622 ipcdTerm(&IpcdState);623 return 0;624 }625 626 #else627 628 546 static DECLCALLBACK(int) ipcdThread(RTTHREAD hThreadSelf, void *pvUser) 629 547 { … … 676 594 return vrcThrd; 677 595 } 678 #endif
Note:
See TracChangeset
for help on using the changeset viewer.