Changeset 92707 in vbox
- Timestamp:
- Dec 2, 2021 1:14:23 PM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 148606
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/GuestHost/GuestControl.h
r84816 r92707 62 62 PROC_STS_ERROR = 8 63 63 }; 64 65 /** @todo r=bird: Most defines in this file needs to be scoped a little 66 * better! For instance INPUT_FLAG_NONE is very generic. */ 67 64 68 65 /** 69 66 * Input flags, set by the host. This is needed for … … 71 68 * Note: Has to match Main's ProcessInputFlag_* flags! 72 69 */ 73 #define INPUT_FLAG_NONE 0x074 #define INPUT_FLAG_EOF RT_BIT(0)70 #define GUEST_PROC_IN_FLAG_NONE 0x0 71 #define GUEST_PROC_IN_FLAG_EOF RT_BIT(0) 75 72 76 73 /** … … 97 94 /** @} */ 98 95 99 /** @name EXECUTEPROCESSFLAG_XXX - Guest process creation flags.96 /** @name GUEST_PROC_CREATE_FLAG_XXX - Guest process creation flags. 100 97 * @note Has to match Main's ProcessCreateFlag_* flags! 101 98 * @{ 102 99 */ 103 #define EXECUTEPROCESSFLAG_NONE UINT32_C(0x0)104 #define EXECUTEPROCESSFLAG_WAIT_START RT_BIT(0)105 #define EXECUTEPROCESSFLAG_IGNORE_ORPHANED RT_BIT(1)106 #define EXECUTEPROCESSFLAG_HIDDEN RT_BIT(2)107 #define EXECUTEPROCESSFLAG_PROFILE RT_BIT(3)108 #define EXECUTEPROCESSFLAG_WAIT_STDOUT RT_BIT(4)109 #define EXECUTEPROCESSFLAG_WAIT_STDERR RT_BIT(5)110 #define EXECUTEPROCESSFLAG_EXPAND_ARGUMENTS RT_BIT(6)111 #define EXECUTEPROCESSFLAG_UNQUOTED_ARGS RT_BIT(7)112 /** @} */ 113 114 /** @name OUTPUT_HANDLE_ID_XXX - Pipe handle IDs used internally for referencing100 #define GUEST_PROC_CREATE_FLAG_NONE UINT32_C(0x0) 101 #define GUEST_PROC_CREATE_FLAG_WAIT_START RT_BIT(0) 102 #define GUEST_PROC_CREATE_FLAG_IGNORE_ORPHANED RT_BIT(1) 103 #define GUEST_PROC_CREATE_FLAG_HIDDEN RT_BIT(2) 104 #define GUEST_PROC_CREATE_FLAG_PROFILE RT_BIT(3) 105 #define GUEST_PROC_CREATE_FLAG_WAIT_STDOUT RT_BIT(4) 106 #define GUEST_PROC_CREATE_FLAG_WAIT_STDERR RT_BIT(5) 107 #define GUEST_PROC_CREATE_FLAG_EXPAND_ARGUMENTS RT_BIT(6) 108 #define GUEST_PROC_CREATE_FLAG_UNQUOTED_ARGS RT_BIT(7) 109 /** @} */ 110 111 /** @name GUEST_PROC_OUT_H_XXX - Pipe handle IDs used internally for referencing 115 112 * to a certain pipe buffer. 116 113 * @{ 117 114 */ 118 #define OUTPUT_HANDLE_ID_STDOUT_DEPRECATED 0 /**< Needed for VBox hosts < 4.1.0. */119 #define OUTPUT_HANDLE_ID_STDOUT 1120 #define OUTPUT_HANDLE_ID_STDERR 2115 #define GUEST_PROC_OUT_H_STDOUT_DEPRECATED 0 /**< Needed for VBox hosts < 4.1.0. */ 116 #define GUEST_PROC_OUT_H_STDOUT 1 117 #define GUEST_PROC_OUT_H_STDERR 2 121 118 /** @} */ 122 119 … … 135 132 /** @} */ 136 133 137 /** @name SHUTDOWN_FLAG_XXX - Guest shutdown flags.134 /** @name GUEST_SHUTDOWN_FLAG_XXX - Guest shutdown flags. 138 135 * Must match Main's GuestShutdownFlag_ definitions. 139 136 * @{ 140 137 */ 141 #define SHUTDOWN_FLAG_NONEUINT32_C(0)142 #define SHUTDOWN_FLAG_POWER_OFFRT_BIT(0)143 #define SHUTDOWN_FLAG_REBOOTRT_BIT(1)144 #define SHUTDOWN_FLAG_FORCERT_BIT(2)138 #define GUEST_SHUTDOWN_FLAG_NONE UINT32_C(0) 139 #define GUEST_SHUTDOWN_FLAG_POWER_OFF RT_BIT(0) 140 #define GUEST_SHUTDOWN_FLAG_REBOOT RT_BIT(1) 141 #define GUEST_SHUTDOWN_FLAG_FORCE RT_BIT(2) 145 142 /** @} */ 146 143 … … 150 147 * @{ 151 148 */ 152 #define GUEST PROCESS_DEFAULT_CMD_LEN _1K153 #define GUEST PROCESS_DEFAULT_ARGS_LEN _1K154 #define GUEST PROCESS_DEFAULT_ENV_LEN _1K155 #define GUEST PROCESS_DEFAULT_USER_LEN 128156 #define GUEST PROCESS_DEFAULT_PASSWORD_LEN 128157 #define GUEST PROCESS_DEFAULT_DOMAIN_LEN 256149 #define GUEST_PROC_DEF_CMD_LEN _1K 150 #define GUEST_PROC_DEF_ARGS_LEN _1K 151 #define GUEST_PROC_DEF_ENV_LEN _1K 152 #define GUEST_PROC_DEF_USER_LEN 128 153 #define GUEST_PROC_DEF_PASSWORD_LEN 128 154 #define GUEST_PROC_DEF_DOMAIN_LEN 256 158 155 /** @} */ 159 156 … … 161 158 * @{ 162 159 */ 163 #define GUEST PROCESS_MAX_CMD_LEN _1M164 #define GUEST PROCESS_MAX_ARGS_LEN _2M165 #define GUEST PROCESS_MAX_ENV_LEN _4M166 #define GUEST PROCESS_MAX_USER_LEN _64K167 #define GUEST PROCESS_MAX_PASSWORD_LEN _64K168 #define GUEST PROCESS_MAX_DOMAIN_LEN _64K160 #define GUEST_PROC_MAX_CMD_LEN _1M 161 #define GUEST_PROC_MAX_ARGS_LEN _2M 162 #define GUEST_PROC_MAX_ENV_LEN _4M 163 #define GUEST_PROC_MAX_USER_LEN _64K 164 #define GUEST_PROC_MAX_PASSWORD_LEN _64K 165 #define GUEST_PROC_MAX_DOMAIN_LEN _64K 169 166 /** @} */ 170 167 -
trunk/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp
r84850 r92707 792 792 { 793 793 return VbglR3GuestCtrlSessionStartupInfoInitEx(pStartupInfo, 794 GUEST PROCESS_DEFAULT_USER_LEN, GUESTPROCESS_DEFAULT_PASSWORD_LEN,795 GUEST PROCESS_DEFAULT_DOMAIN_LEN);794 GUEST_PROC_DEF_USER_LEN, GUEST_PROC_DEF_PASSWORD_LEN, 795 GUEST_PROC_DEF_DOMAIN_LEN); 796 796 } 797 797 … … 1143 1143 { 1144 1144 return VbglR3GuestCtrlProcStartupInfoInitEx(pStartupInfo, 1145 GUEST PROCESS_DEFAULT_CMD_LEN,1146 GUEST PROCESS_DEFAULT_USER_LEN /* Deprecated, now handled via session creation. */,1147 GUEST PROCESS_DEFAULT_PASSWORD_LEN /* Ditto. */,1148 GUEST PROCESS_DEFAULT_DOMAIN_LEN /* Ditto. */,1149 GUEST PROCESS_DEFAULT_ARGS_LEN, GUESTPROCESS_DEFAULT_ENV_LEN);1145 GUEST_PROC_DEF_CMD_LEN, 1146 GUEST_PROC_DEF_USER_LEN /* Deprecated, now handled via session creation. */, 1147 GUEST_PROC_DEF_PASSWORD_LEN /* Ditto. */, 1148 GUEST_PROC_DEF_DOMAIN_LEN /* Ditto. */, 1149 GUEST_PROC_DEF_ARGS_LEN, GUEST_PROC_DEF_ENV_LEN); 1150 1150 } 1151 1151 … … 1319 1319 1320 1320 /* We can't tell which parameter doesn't fit, so we have to resize all. */ 1321 GROW_STR(Cmd , GUEST PROCESS_MAX_CMD_LEN);1322 GROW_STR(Args, GUEST PROCESS_MAX_ARGS_LEN);1323 GROW_STR(Env, GUEST PROCESS_MAX_ENV_LEN);1321 GROW_STR(Cmd , GUEST_PROC_MAX_CMD_LEN); 1322 GROW_STR(Args, GUEST_PROC_MAX_ARGS_LEN); 1323 GROW_STR(Env, GUEST_PROC_MAX_ENV_LEN); 1324 1324 1325 1325 #undef GROW_STR -
trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlProcess.cpp
r92690 r92707 1049 1049 AssertPtrReturn(pszArgv0, VERR_INVALID_POINTER); 1050 1050 AssertPtrReturn(ppapszArgv, VERR_INVALID_POINTER); 1051 AssertReturn(!(fFlags & EXECUTEPROCESSFLAG_EXPAND_ARGUMENTS), VERR_INVALID_FLAGS); /** @todo implement me */1051 AssertReturn(!(fFlags & GUEST_PROC_CREATE_FLAG_EXPAND_ARGUMENTS), VERR_INVALID_FLAGS); /** @todo implement me */ 1052 1052 1053 1053 #ifndef VBOXSERVICE_ARG1_UTF8_ARGV … … 1085 1085 ignored on all other hosts. */ 1086 1086 #ifdef RT_OS_WINDOWS 1087 if ( (fFlags & EXECUTEPROCESSFLAG_UNQUOTED_ARGS)1087 if ( (fFlags & GUEST_PROC_CREATE_FLAG_UNQUOTED_ARGS) 1088 1088 && strpbrk(pszArgv0, " \t\n\r") 1089 1089 && pszArgv0[0] == '"') … … 1123 1123 { 1124 1124 #if 0 /* Arguments expansion -- untested. */ 1125 if (fFlags & EXECUTEPROCESSFLAG_EXPAND_ARGUMENTS)1125 if (fFlags & GUEST_PROC_CREATE_FLAG_EXPAND_ARGUMENTS) 1126 1126 { 1127 1127 /** @todo r=bird: If you want this, we need a generic implementation, preferably in RTEnv or somewhere like that. The marking … … 1401 1401 if (fFlags) 1402 1402 { 1403 if (fFlags & EXECUTEPROCESSFLAG_HIDDEN)1403 if (fFlags & GUEST_PROC_CREATE_FLAG_HIDDEN) 1404 1404 fProcCreateFlags |= RTPROC_FLAGS_HIDDEN; 1405 if (fFlags & EXECUTEPROCESSFLAG_PROFILE)1405 if (fFlags & GUEST_PROC_CREATE_FLAG_PROFILE) 1406 1406 fProcCreateFlags |= RTPROC_FLAGS_PROFILE; 1407 if (fFlags & EXECUTEPROCESSFLAG_UNQUOTED_ARGS)1407 if (fFlags & GUEST_PROC_CREATE_FLAG_UNQUOTED_ARGS) 1408 1408 fProcCreateFlags |= RTPROC_FLAGS_UNQUOTED_ARGS; 1409 1409 } … … 1573 1573 uint32_t const cbEnv = pProcess->pStartupInfo->cbEnv; 1574 1574 if (RT_SUCCESS(rc)) 1575 AssertStmt( cbEnv <= GUEST PROCESS_MAX_ENV_LEN1575 AssertStmt( cbEnv <= GUEST_PROC_MAX_ENV_LEN 1576 1576 || pProcess->pStartupInfo->cEnvVars == 0, 1577 1577 rc = VERR_INVALID_PARAMETER); … … 1620 1620 RTHANDLE hStdOut; 1621 1621 PRTHANDLE phStdOut; 1622 rc = vgsvcGstCtrlProcessSetupPipe( (pProcess->pStartupInfo->fFlags & EXECUTEPROCESSFLAG_WAIT_STDOUT)1622 rc = vgsvcGstCtrlProcessSetupPipe( (pProcess->pStartupInfo->fFlags & GUEST_PROC_CREATE_FLAG_WAIT_STDOUT) 1623 1623 ? "|" : "/dev/null", 1624 1624 1 /*STDOUT_FILENO*/, … … 1628 1628 RTHANDLE hStdErr; 1629 1629 PRTHANDLE phStdErr; 1630 rc = vgsvcGstCtrlProcessSetupPipe( (pProcess->pStartupInfo->fFlags & EXECUTEPROCESSFLAG_WAIT_STDERR)1630 rc = vgsvcGstCtrlProcessSetupPipe( (pProcess->pStartupInfo->fFlags & GUEST_PROC_CREATE_FLAG_WAIT_STDERR) 1631 1631 ? "|" : "/dev/null", 1632 1632 2 /*STDERR_FILENO*/, … … 1984 1984 if (pvBuf) 1985 1985 { 1986 PRTPIPE phPipe = uHandle == OUTPUT_HANDLE_ID_STDOUT1986 PRTPIPE phPipe = uHandle == GUEST_PROC_OUT_H_STDOUT 1987 1987 ? &pThis->hPipeStdOutR 1988 1988 : &pThis->hPipeStdErrR; … … 1995 1995 if (RT_FAILURE(rc)) 1996 1996 { 1997 RTPollSetRemove(pThis->hPollSet, uHandle == OUTPUT_HANDLE_ID_STDERR1997 RTPollSetRemove(pThis->hPollSet, uHandle == GUEST_PROC_OUT_H_STDERR 1998 1998 ? VBOXSERVICECTRLPIPEID_STDERR : VBOXSERVICECTRLPIPEID_STDOUT); 1999 1999 RTPipeClose(*phPipe); … … 2010 2010 { 2011 2011 if ( pSession->fFlags & VBOXSERVICECTRLSESSION_FLAG_DUMPSTDOUT 2012 && ( uHandle == OUTPUT_HANDLE_ID_STDOUT2013 || uHandle == OUTPUT_HANDLE_ID_STDOUT_DEPRECATED)2012 && ( uHandle == GUEST_PROC_OUT_H_STDOUT 2013 || uHandle == GUEST_PROC_OUT_H_STDOUT_DEPRECATED) 2014 2014 ) 2015 2015 { … … 2019 2019 } 2020 2020 else if ( pSession->fFlags & VBOXSERVICECTRLSESSION_FLAG_DUMPSTDERR 2021 && uHandle == OUTPUT_HANDLE_ID_STDERR)2021 && uHandle == GUEST_PROC_OUT_H_STDERR) 2022 2022 { 2023 2023 rc = vgsvcGstCtrlProcessDbgDumpToFileF(pvBuf, cbRead, "VBoxService_Session%RU32_PID%RU32_StdErr.txt", -
trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlSession.cpp
r92674 r92707 1022 1022 1023 1023 /* Translate SHUTDOWN_FLAG_ into RTSYSTEM_SHUTDOWN_ flags. */ 1024 if (fAction & SHUTDOWN_FLAG_REBOOT)1024 if (fAction & GUEST_SHUTDOWN_FLAG_REBOOT) 1025 1025 fSystemShutdown |= RTSYSTEM_SHUTDOWN_REBOOT; 1026 1026 else /* SHUTDOWN_FLAG_POWER_OFF */ 1027 1027 fSystemShutdown |= RTSYSTEM_SHUTDOWN_POWER_OFF; 1028 1028 1029 if (fAction & SHUTDOWN_FLAG_FORCE)1029 if (fAction & GUEST_SHUTDOWN_FLAG_FORCE) 1030 1030 fSystemShutdown |= RTSYSTEM_SHUTDOWN_FORCE; 1031 1031 … … 1179 1179 if (RT_SUCCESS(rc)) 1180 1180 { 1181 if (fFlags & INPUT_FLAG_EOF)1181 if (fFlags & GUEST_PROC_IN_FLAG_EOF) 1182 1182 VGSvcVerbose(4, "Got last process input block for PID=%RU32 (%RU32 bytes) ...\n", uPID, cbInput); 1183 1183 … … 1188 1188 if (pProcess) 1189 1189 { 1190 rc = VGSvcGstCtrlProcessHandleInput(pProcess, pHostCtx, RT_BOOL(fFlags & INPUT_FLAG_EOF),1190 rc = VGSvcGstCtrlProcessHandleInput(pProcess, pHostCtx, RT_BOOL(fFlags & GUEST_PROC_IN_FLAG_EOF), 1191 1191 *ppvScratchBuf, RT_MIN(cbInput, *pcbScratchBuf)); 1192 1192 if (RT_FAILURE(rc)) -
trunk/src/VBox/Main/idl/VirtualBox.xidl
r92223 r92707 13260 13260 Guest process execution flags. 13261 13261 <note>The values are passed to the Guest Additions, so its not possible 13262 to change (move) or reuse values.here. See EXECUTEPROCESSFLAG_XXX13262 to change (move) or reuse values.here. See GUEST_PROC_CREATE_FLAG_XXX 13263 13263 in GuestControlSvc.h.</note> 13264 13264 </desc> -
trunk/src/VBox/Main/src-client/GuestProcessImpl.cpp
r91718 r92707 854 854 /* Skip reading if the process wasn't started with the appropriate 855 855 * flags. */ 856 || ( ( uHandle == OUTPUT_HANDLE_ID_STDOUT857 || uHandle == OUTPUT_HANDLE_ID_STDOUT_DEPRECATED)856 || ( ( uHandle == GUEST_PROC_OUT_H_STDOUT 857 || uHandle == GUEST_PROC_OUT_H_STDOUT_DEPRECATED) 858 858 && !(mData.mProcess.mFlags & ProcessCreateFlag_WaitForStdOut)) 859 || ( uHandle == OUTPUT_HANDLE_ID_STDERR859 || ( uHandle == GUEST_PROC_OUT_H_STDERR 860 860 && !(mData.mProcess.mFlags & ProcessCreateFlag_WaitForStdErr)) 861 861 ) … … 2036 2036 { 2037 2037 const GuestProcessStream *pStream = NULL; 2038 if (uHandle == OUTPUT_HANDLE_ID_STDOUT)2038 if (uHandle == GUEST_PROC_OUT_H_STDOUT) 2039 2039 pStream = &mStdOut; 2040 else if (uHandle == OUTPUT_HANDLE_ID_STDERR)2040 else if (uHandle == GUEST_PROC_OUT_H_STDERR) 2041 2041 pStream = &mStdErr; 2042 2042 … … 2312 2312 { 2313 2313 AssertPtr(pStrmBlkOut); 2314 vrc = getCurrentBlock( OUTPUT_HANDLE_ID_STDOUT, *pStrmBlkOut);2314 vrc = getCurrentBlock(GUEST_PROC_OUT_H_STDOUT, *pStrmBlkOut); 2315 2315 if (RT_SUCCESS(vrc)) 2316 2316 return vrc; … … 2422 2422 2423 2423 cbRead = 0; 2424 vrc = pProcess->i_readData( OUTPUT_HANDLE_ID_STDOUT, sizeof(byBuf),2424 vrc = pProcess->i_readData(GUEST_PROC_OUT_H_STDOUT, sizeof(byBuf), 2425 2425 GET_REMAINING_TIME, 2426 2426 byBuf, sizeof(byBuf), … … 2439 2439 { 2440 2440 AssertPtr(pStrmBlkOut); 2441 vrc = getCurrentBlock( OUTPUT_HANDLE_ID_STDOUT, *pStrmBlkOut);2441 vrc = getCurrentBlock(GUEST_PROC_OUT_H_STDOUT, *pStrmBlkOut); 2442 2442 2443 2443 /* When successful, break out of the loop because we're done … … 2456 2456 2457 2457 cbRead = 0; 2458 vrc = pProcess->i_readData( OUTPUT_HANDLE_ID_STDERR, sizeof(byBuf),2458 vrc = pProcess->i_readData(GUEST_PROC_OUT_H_STDERR, sizeof(byBuf), 2459 2459 GET_REMAINING_TIME, 2460 2460 byBuf, sizeof(byBuf),
Note:
See TracChangeset
for help on using the changeset viewer.