本文整理汇总了C++中LogFlowFuncLeaveRC函数的典型用法代码示例。如果您正苦于以下问题:C++ LogFlowFuncLeaveRC函数的具体用法?C++ LogFlowFuncLeaveRC怎么用?C++ LogFlowFuncLeaveRC使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了LogFlowFuncLeaveRC函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: LogFlowFunc
int UIDnDMimeData::setData(const QString &mimeType)
{
LogFlowFunc(("mimeType=%s, dataType=%s\n",
mimeType.toAscii().constData(), m_vaData.typeName()));
int rc = VINF_SUCCESS;
switch (m_vaData.type())
{
case QVariant::String: /* Plain text. */
{
QMimeData::setText(m_vaData.toString());
break;
}
case QVariant::ByteArray: /* Raw byte data. */
{
QMimeData::setData(mimeType, m_vaData.toByteArray());
break;
}
case QVariant::StringList: /* URI. */
{
QList<QVariant> lstData = m_vaData.toList();
QList<QUrl> lstURL;
for (int i = 0; i < lstData.size(); i++)
{
QFileInfo fileInfo(lstData.at(i).toString());
#ifdef DEBUG
LogFlowFunc(("\tURL: %s (fExists=%RTbool, fIsDir=%RTbool, cb=%RU64)\n",
fileInfo.absoluteFilePath().constData(), fileInfo.exists(),
fileInfo.isDir(), fileInfo.size()));
#endif
lstURL << QUrl::fromLocalFile(fileInfo.absoluteFilePath());
}
LogFlowFunc(("Number of URLs: %d\n", lstURL.size()));
if (RT_SUCCESS(rc))
QMimeData::setUrls(lstURL);
break;
}
default:
rc = VERR_NOT_SUPPORTED;
break;
}
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:zBMNForks,项目名称:virtualbox-org-svn-vbox-trunk,代码行数:50,代码来源:UIDnDMIMEData.cpp
示例2: LogFlowFunc
int VBoxNetBaseService::waitForIntNetEvent(int cMillis)
{
INTNETIFWAITREQ WaitReq;
LogFlowFunc(("ENTER:cMillis: %d\n", cMillis));
WaitReq.Hdr.u32Magic = SUPVMMR0REQHDR_MAGIC;
WaitReq.Hdr.cbReq = sizeof(WaitReq);
WaitReq.pSession = m->m_pSession;
WaitReq.hIf = m->m_hIf;
WaitReq.cMillies = cMillis;
int rc = SUPR3CallVMMR0Ex(NIL_RTR0PTR, NIL_VMCPUID, VMMR0_DO_INTNET_IF_WAIT, 0, &WaitReq.Hdr);
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:svn2github,项目名称:virtualbox,代码行数:14,代码来源:VBoxNetBaseService.cpp
示例3: AssertPtrReturn
int DnDURIList::AppendURIPath(const char *pszURI, uint32_t fFlags)
{
AssertPtrReturn(pszURI, VERR_INVALID_POINTER);
/** @todo Check for string termination? */
#ifdef DEBUG_andy
LogFlowFunc(("pszPath=%s, fFlags=0x%x\n", pszURI, fFlags));
#endif
int rc = VINF_SUCCESS;
/* Query the path component of a file URI. If this hasn't a
* file scheme NULL is returned. */
char *pszSrcPath = RTUriFilePath(pszURI);
if (pszSrcPath)
{
/* Add the path to our internal file list (recursive in
* the case of a directory). */
size_t cbPathLen = RTPathStripTrailingSlash(pszSrcPath);
if (cbPathLen)
{
char *pszFileName = RTPathFilename(pszSrcPath);
if (pszFileName)
{
Assert(pszFileName >= pszSrcPath);
size_t cchDstBase = (fFlags & DNDURILIST_FLAGS_ABSOLUTE_PATHS)
? 0 /* Use start of path as root. */
: pszFileName - pszSrcPath;
char *pszDstPath = &pszSrcPath[cchDstBase];
m_lstRoot.append(pszDstPath);
LogFlowFunc(("pszFilePath=%s, pszFileName=%s, pszRoot=%s\n",
pszSrcPath, pszFileName, pszDstPath));
rc = appendPathRecursive(pszSrcPath, pszSrcPath, pszSrcPath, cchDstBase, fFlags);
}
else
rc = VERR_PATH_NOT_FOUND;
}
else
rc = VERR_INVALID_PARAMETER;
RTStrFree(pszSrcPath);
}
else
rc = VERR_INVALID_PARAMETER;
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:svn2github,项目名称:virtualbox,代码行数:49,代码来源:DnDURIList.cpp
示例4: DECLCALLBACK
DECLCALLBACK(int) VBoxClipboardStop(void *pInstance)
{
AssertPtrReturn(pInstance, VERR_INVALID_POINTER);
LogFunc(("Stopping pInstance=%p\n", pInstance));
PVBOXCLIPBOARDCONTEXT pCtx = (PVBOXCLIPBOARDCONTEXT)pInstance;
AssertPtr(pCtx);
VbglR3ClipboardDisconnect(pCtx->u32ClientID);
pCtx->u32ClientID = 0;
LogFlowFuncLeaveRC(VINF_SUCCESS);
return VINF_SUCCESS;
}
开发者ID:svn2github,项目名称:virtualbox,代码行数:15,代码来源:VBoxClipboard.cpp
示例5: LogFlowFuncEnter
int GuestCtrlCallback::Init(eVBoxGuestCtrlCallbackType enmType)
{
LogFlowFuncEnter();
AssertReturn(enmType > VBOXGUESTCTRLCALLBACKTYPE_UNKNOWN, VERR_INVALID_PARAMETER);
Assert((pvData == NULL) && !cbData);
switch (enmType)
{
case VBOXGUESTCTRLCALLBACKTYPE_EXEC_START:
{
pvData = (PCALLBACKDATAEXECSTATUS)RTMemAlloc(sizeof(CALLBACKDATAEXECSTATUS));
AssertPtrReturn(pvData, VERR_NO_MEMORY);
RT_BZERO(pvData, sizeof(CALLBACKDATAEXECSTATUS));
cbData = sizeof(CALLBACKDATAEXECSTATUS);
break;
}
case VBOXGUESTCTRLCALLBACKTYPE_EXEC_OUTPUT:
{
pvData = (PCALLBACKDATAEXECOUT)RTMemAlloc(sizeof(CALLBACKDATAEXECOUT));
AssertPtrReturn(pvData, VERR_NO_MEMORY);
RT_BZERO(pvData, sizeof(CALLBACKDATAEXECOUT));
cbData = sizeof(CALLBACKDATAEXECOUT);
break;
}
case VBOXGUESTCTRLCALLBACKTYPE_EXEC_INPUT_STATUS:
{
PCALLBACKDATAEXECINSTATUS pData = (PCALLBACKDATAEXECINSTATUS)RTMemAlloc(sizeof(CALLBACKDATAEXECINSTATUS));
AssertPtrReturn(pData, VERR_NO_MEMORY);
RT_BZERO(pData, sizeof(CALLBACKDATAEXECINSTATUS));
cbData = sizeof(CALLBACKDATAEXECINSTATUS);
break;
}
default:
AssertMsgFailed(("Unknown callback type specified (%d)\n", enmType));
break;
}
int rc = GuestCtrlEvent::Init();
if (RT_SUCCESS(rc))
mType = enmType;
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:greg100795,项目名称:virtualbox,代码行数:48,代码来源:GuestCtrlPrivate.cpp
示例6: AppendNativePath
int DnDURIList::AppendNativePathsFromList(const RTCList<RTCString> &lstNativePaths,
uint32_t fFlags)
{
int rc = VINF_SUCCESS;
for (size_t i = 0; i < lstNativePaths.size(); i++)
{
const RTCString &strPath = lstNativePaths.at(i);
rc = AppendNativePath(strPath.c_str(), fFlags);
if (RT_FAILURE(rc))
break;
}
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:mcenirm,项目名称:vbox,代码行数:16,代码来源:DnDURIList.cpp
示例7: LogFlowThisFunc
int GuestFile::i_seekAt(int64_t iOffset, GUEST_FILE_SEEKTYPE eSeekType,
uint32_t uTimeoutMS, uint64_t *puOffset)
{
LogFlowThisFunc(("iOffset=%RI64, uTimeoutMS=%RU32\n",
iOffset, uTimeoutMS));
AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
int vrc;
GuestWaitEvent *pEvent = NULL;
GuestEventTypes eventTypes;
try
{
eventTypes.push_back(VBoxEventType_OnGuestFileStateChanged);
eventTypes.push_back(VBoxEventType_OnGuestFileOffsetChanged);
vrc = registerWaitEvent(eventTypes, &pEvent);
}
catch (std::bad_alloc)
{
vrc = VERR_NO_MEMORY;
}
if (RT_FAILURE(vrc))
return vrc;
/* Prepare HGCM call. */
VBOXHGCMSVCPARM paParms[4];
int i = 0;
paParms[i++].setUInt32(pEvent->ContextID());
paParms[i++].setUInt32(mData.mID /* File handle */);
paParms[i++].setUInt32(eSeekType /* Seek method */);
/** @todo uint64_t vs. int64_t! */
paParms[i++].setUInt64((uint64_t)iOffset /* Offset (in bytes) to start reading */);
alock.release(); /* Drop write lock before sending. */
vrc = sendCommand(HOST_FILE_SEEK, i, paParms);
if (RT_SUCCESS(vrc))
vrc = i_waitForOffsetChange(pEvent, uTimeoutMS, puOffset);
unregisterWaitEvent(pEvent);
LogFlowFuncLeaveRC(vrc);
return vrc;
}
开发者ID:svn2github,项目名称:virtualbox,代码行数:47,代码来源:GuestFileImpl.cpp
示例8: DECLCALLBACK
DECLCALLBACK(int) VBoxSeamlessInit(const PVBOXSERVICEENV pEnv, void **ppInstance)
{
LogFlowFuncEnter();
PVBOXSEAMLESSCONTEXT pCtx = &g_Ctx; /* Only one instance at the moment. */
AssertPtr(pCtx);
pCtx->pEnv = pEnv;
pCtx->hModHook = NIL_RTLDRMOD;
OSVERSIONINFO OSinfo;
OSinfo.dwOSVersionInfoSize = sizeof (OSinfo);
GetVersionEx (&OSinfo);
int rc;
/* We have to jump out here when using NT4, otherwise it complains about
a missing API function "UnhookWinEvent" used by the dynamically loaded VBoxHook.dll below */
if (OSinfo.dwMajorVersion <= 4) /* Windows NT 4.0 or older */
{
Log(("VBoxTray: VBoxSeamlessInit: Windows NT 4.0 or older not supported!\n"));
rc = VERR_NOT_SUPPORTED;
}
else
{
/* Will fail if SetWinEventHook is not present (version < NT4 SP6 apparently) */
rc = RTLdrLoadAppPriv(VBOXHOOK_DLL_NAME, &pCtx->hModHook);
if (RT_SUCCESS(rc))
{
*(PFNRT *)&pCtx->pfnVBoxHookInstallWindowTracker = RTLdrGetFunction(pCtx->hModHook, "VBoxHookInstallWindowTracker");
*(PFNRT *)&pCtx->pfnVBoxHookRemoveWindowTracker = RTLdrGetFunction(pCtx->hModHook, "VBoxHookRemoveWindowTracker");
/* rc should contain success status */
AssertRC(rc); /** @todo r=andy Makes no sense here!? */
VBoxSeamlessSetSupported(TRUE);
*ppInstance = pCtx;
}
else
LogFlowFunc(("Unable to load %s, rc=%Rrc\n", VBOXHOOK_DLL_NAME, rc));
}
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:bhanug,项目名称:virtualbox,代码行数:46,代码来源:VBoxSeamless.cpp
示例9: ReturnComNotImplemented
STDMETHODIMP GuestFile::Seek(LONG64 aOffset, FileSeekType_T aType)
{
#ifndef VBOX_WITH_GUEST_CONTROL
ReturnComNotImplemented();
#else
LogFlowThisFuncEnter();
AutoCaller autoCaller(this);
if (FAILED(autoCaller.rc())) return autoCaller.rc();
HRESULT hr = S_OK;
GUEST_FILE_SEEKTYPE eSeekType;
switch (aType)
{
case FileSeekType_Set:
eSeekType = GUEST_FILE_SEEKTYPE_BEGIN;
break;
case FileSeekType_Current:
eSeekType = GUEST_FILE_SEEKTYPE_CURRENT;
break;
default:
return setError(E_INVALIDARG, tr("Invalid seek type specified"));
break; /* Never reached. */
}
int vrc = seekAt(aOffset, eSeekType,
30 * 1000 /* 30s timeout */, NULL /* puOffset */);
if (RT_FAILURE(vrc))
{
switch (vrc)
{
default:
hr = setError(VBOX_E_IPRT_ERROR,
tr("Seeking file \"%s\" (to offset %RI64) failed: %Rrc"),
mData.mOpenInfo.mFileName.c_str(), aOffset, vrc);
break;
}
}
LogFlowFuncLeaveRC(vrc);
return hr;
#endif /* VBOX_WITH_GUEST_CONTROL */
}
开发者ID:bayasist,项目名称:vbox,代码行数:46,代码来源:GuestFileImpl.cpp
示例10: LogFlowThisFuncEnter
HRESULT GuestFile::seek(LONG64 aOffset, FileSeekOrigin_T aWhence, LONG64 *aNewOffset)
{
LogFlowThisFuncEnter();
HRESULT hr = S_OK;
GUEST_FILE_SEEKTYPE eSeekType;
switch (aWhence)
{
case FileSeekOrigin_Begin:
eSeekType = GUEST_FILE_SEEKTYPE_BEGIN;
break;
case FileSeekOrigin_Current:
eSeekType = GUEST_FILE_SEEKTYPE_CURRENT;
break;
case FileSeekOrigin_End:
eSeekType = GUEST_FILE_SEEKTYPE_END;
break;
default:
return setError(E_INVALIDARG, tr("Invalid seek type specified"));
break; /* Never reached. */
}
uint64_t uNewOffset;
int vrc = i_seekAt(aOffset, eSeekType,
30 * 1000 /* 30s timeout */, &uNewOffset);
if (RT_SUCCESS(vrc))
*aNewOffset = RT_MIN(uNewOffset, (uint64_t)INT64_MAX);
else
{
switch (vrc)
{
default:
hr = setError(VBOX_E_IPRT_ERROR,
tr("Seeking file \"%s\" (to offset %RI64) failed: %Rrc"),
mData.mOpenInfo.mFileName.c_str(), aOffset, vrc);
break;
}
}
LogFlowFuncLeaveRC(vrc);
return hr;
}
开发者ID:svn2github,项目名称:virtualbox,代码行数:46,代码来源:GuestFileImpl.cpp
示例11: DECLINLINE
/**
* This function evaluate file name.
* @param pu8Payload
* @param cbPayload
* @param cbFileName
* @return VINF_SUCCESS -
* VERR_INVALID_PARAMETER -
*/
DECLINLINE(int) tftpSecurityFilenameCheck(PNATState pData, PCTFTPSESSION pcTftpSession)
{
size_t cbSessionFilename = 0;
int rc = VINF_SUCCESS;
AssertPtrReturn(pcTftpSession, VERR_INVALID_PARAMETER);
cbSessionFilename = RTStrNLen((const char *)pcTftpSession->pszFilename, TFTP_FILENAME_MAX);
if ( !RTStrNCmp((const char*)pcTftpSession->pszFilename, "../", 3)
|| (pcTftpSession->pszFilename[cbSessionFilename - 1] == '/')
|| RTStrStr((const char *)pcTftpSession->pszFilename, "/../"))
rc = VERR_FILE_NOT_FOUND;
/* only allow exported prefixes */
if ( RT_SUCCESS(rc)
&& !tftp_prefix)
rc = VERR_INTERNAL_ERROR;
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:ryenus,项目名称:vbox,代码行数:26,代码来源:tftp.c
示例12: AssertPtrReturn
/** @todo GuestDnDResponse *pResp needs to go. */
int GuestDnDBase::waitForEvent(GuestDnDCallbackEvent *pEvent, GuestDnDResponse *pResp, RTMSINTERVAL msTimeout)
{
AssertPtrReturn(pEvent, VERR_INVALID_POINTER);
AssertPtrReturn(pResp, VERR_INVALID_POINTER);
int rc;
LogFlowFunc(("msTimeout=%RU32\n", msTimeout));
uint64_t tsStart = RTTimeMilliTS();
do
{
/*
* Wait until our desired callback triggered the
* wait event. As we don't want to block if the guest does not
* respond, do busy waiting here.
*/
rc = pEvent->Wait(500 /* ms */);
if (RT_SUCCESS(rc))
{
rc = pEvent->Result();
LogFlowFunc(("Callback done, result is %Rrc\n", rc));
break;
}
else if (rc == VERR_TIMEOUT) /* Continue waiting. */
rc = VINF_SUCCESS;
if ( msTimeout != RT_INDEFINITE_WAIT
&& RTTimeMilliTS() - tsStart > msTimeout)
{
rc = VERR_TIMEOUT;
LogRel2(("DnD: Error: Guest did not respond within time\n"));
}
else if (pResp->isProgressCanceled()) /** @todo GuestDnDResponse *pResp needs to go. */
{
LogRel2(("DnD: Operation was canceled by user\n"));
rc = VERR_CANCELLED;
}
} while (RT_SUCCESS(rc));
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:miguelinux,项目名称:vbox,代码行数:45,代码来源:GuestDnDPrivate.cpp
示例13: DECLCALLBACK
DECLCALLBACK(int) VBoxClipboardInit(const PVBOXSERVICEENV pEnv, void **ppInstance)
{
LogFlowFuncEnter();
PVBOXCLIPBOARDCONTEXT pCtx = &g_Ctx; /* Only one instance for now. */
AssertPtr(pCtx);
if (pCtx->pEnv)
{
/* Clipboard was already initialized. 2 or more instances are not supported. */
return VERR_NOT_SUPPORTED;
}
if (VbglR3AutoLogonIsRemoteSession())
{
/* Do not use clipboard for remote sessions. */
LogRel(("Clipboard: Clipboard has been disabled for a remote session\n"));
return VERR_NOT_SUPPORTED;
}
RT_BZERO(pCtx, sizeof(VBOXCLIPBOARDCONTEXT));
pCtx->pEnv = pEnv;
/* Check that new Clipboard API is available */
VBoxClipboardWinCheckAndInitNewAPI(&pCtx->Win.newAPI);
int rc = VbglR3ClipboardConnect(&pCtx->u32ClientID);
if (RT_SUCCESS(rc))
{
rc = vboxClipboardCreateWindow(pCtx);
if (RT_SUCCESS(rc))
{
*ppInstance = pCtx;
}
else
{
VbglR3ClipboardDisconnect(pCtx->u32ClientID);
}
}
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:mdaniel,项目名称:virtualbox-org-svn-vbox-trunk,代码行数:44,代码来源:VBoxClipboard.cpp
示例14: LogFlowThisFunc
int GuestDirectory::parseData(GuestProcessStreamBlock &streamBlock)
{
LogFlowThisFunc(("cbStream=%RU32\n", mData.mStream.GetSize()));
AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
int rc;
do
{
/* Try parsing the data to see if the current block is complete. */
rc = mData.mStream.ParseBlock(streamBlock);
if (streamBlock.GetCount())
break;
} while (RT_SUCCESS(rc));
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:gvsurenderreddy,项目名称:VirtualBox-OSE,代码行数:19,代码来源:GuestDirectoryImpl.cpp
示例15: ComSafeArrayOut
STDMETHODIMP GuestFile::ReadAt(LONG64 aOffset, ULONG aToRead, ULONG aTimeoutMS, ComSafeArrayOut(BYTE, aData))
{
#ifndef VBOX_WITH_GUEST_CONTROL
ReturnComNotImplemented();
#else
if (aToRead == 0)
return setError(E_INVALIDARG, tr("The size to read is zero"));
CheckComArgOutSafeArrayPointerValid(aData);
AutoCaller autoCaller(this);
if (FAILED(autoCaller.rc())) return autoCaller.rc();
com::SafeArray<BYTE> data((size_t)aToRead);
Assert(data.size() >= aToRead);
HRESULT hr = S_OK;
size_t cbRead;
int vrc = readDataAt(aOffset, aToRead, aTimeoutMS,
data.raw(), aToRead, &cbRead);
if (RT_SUCCESS(vrc))
{
if (data.size() != cbRead)
data.resize(cbRead);
data.detachTo(ComSafeArrayOutArg(aData));
}
else
{
switch (vrc)
{
default:
hr = setError(VBOX_E_IPRT_ERROR,
tr("Reading from file \"%s\" (at offset %RU64) failed: %Rrc"),
mData.mOpenInfo.mFileName.c_str(), aOffset, vrc);
break;
}
}
LogFlowFuncLeaveRC(vrc);
return hr;
#endif /* VBOX_WITH_GUEST_CONTROL */
}
开发者ID:bayasist,项目名称:vbox,代码行数:42,代码来源:GuestFileImpl.cpp
示例16: retrieveData
int UIDnDHandler::retrieveData( Qt::DropAction dropAction,
const QString &strMIMEType,
QVariant::Type vaType,
QVariant &vaData)
{
QVector<uint8_t> vecData;
int rc = retrieveData(dropAction, strMIMEType, vecData);
if (RT_SUCCESS(rc))
{
/* If no/an invalid variant is set, try to guess the variant type.
* This can happen on OS X. */
if (vaType == QVariant::Invalid)
vaType = UIDnDMIMEData::getVariantType(strMIMEType);
rc = UIDnDMIMEData::getDataAsVariant(vecData, strMIMEType, vaType, vaData);
}
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:jeppeter,项目名称:vbox,代码行数:20,代码来源:UIDnDHandler.cpp
示例17: LogFlowThisFuncEnter
int GuestCtrlEvent::Cancel(void)
{
LogFlowThisFuncEnter();
int rc = VINF_SUCCESS;
if (!ASMAtomicReadBool(&fCompleted))
{
if (!ASMAtomicReadBool(&fCanceled))
{
ASMAtomicXchgBool(&fCanceled, true);
LogFlowThisFunc(("Cancelling ...\n"));
rc = hEventSem != NIL_RTSEMEVENT
? RTSemEventSignal(hEventSem) : VINF_SUCCESS;
}
}
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:greg100795,项目名称:virtualbox,代码行数:20,代码来源:GuestCtrlPrivate.cpp
示例18: NOREF
int UIDnDHandler::dragStop(ulong screenID)
{
int rc;
#ifdef VBOX_WITH_DRAG_AND_DROP_GH
NOREF(screenID);
reset();
rc = VINF_SUCCESS;
#else /* !VBOX_WITH_DRAG_AND_DROP_GH */
NOREF(screenID);
rc = VERR_NOT_SUPPORTED;
#endif /* VBOX_WITH_DRAG_AND_DROP_GH */
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:jeppeter,项目名称:vbox,代码行数:21,代码来源:UIDnDHandler.cpp
示例19: slirpTftpInput
int slirpTftpInput(PNATState pData, struct mbuf *pMbuf)
{
PTFTPIPHDR pTftpIpHeader = NULL;
AssertPtr(pData);
AssertPtr(pMbuf);
pTftpIpHeader = mtod(pMbuf, PTFTPIPHDR);
switch(RT_N2H_U16(pTftpIpHeader->u16TftpOpType))
{
case TFTP_RRQ:
tftpProcessRRQ(pData, pTftpIpHeader, m_length(pMbuf, NULL));
break;
case TFTP_ACK:
tftpProcessACK(pData, pTftpIpHeader);
break;
default:;
}
LogFlowFuncLeaveRC(VINF_SUCCESS);
return VINF_SUCCESS;
}
开发者ID:ryenus,项目名称:vbox,代码行数:21,代码来源:tftp.c
示例20: IntNetRingAllocateFrame
/* S/G API */
int VBoxNetBaseService::sendBufferOnWire(PCINTNETSEG paSegs, size_t cSegs, size_t cbFrame)
{
/* Allocate frame */
PINTNETHDR pHdr = NULL;
uint8_t *pbFrame = NULL;
int rc = IntNetRingAllocateFrame(&m->m_pIfBuf->Send, (uint32_t)cbFrame, &pHdr, (void **)&pbFrame);
AssertRCReturn(rc, rc);
/* Now we fill pvFrame with S/G above */
size_t offFrame = 0;
for (size_t idxSeg = 0; idxSeg < cSegs; ++idxSeg)
{
memcpy(&pbFrame[offFrame], paSegs[idxSeg].pv, paSegs[idxSeg].cb);
offFrame += paSegs[idxSeg].cb;
}
/* Commit */
IntNetRingCommitFrameEx(&m->m_pIfBuf->Send, pHdr, cbFrame);
LogFlowFuncLeaveRC(rc);
return rc;
}
开发者ID:svn2github,项目名称:virtualbox,代码行数:23,代码来源:VBoxNetBaseService.cpp
注:本文中的LogFlowFuncLeaveRC函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论