本文整理匯總了C++中CHECK_COMMAND函數的典型用法代碼示例。如果您正苦於以下問題:C++ CHECK_COMMAND函數的具體用法?C++ CHECK_COMMAND怎麽用?C++ CHECK_COMMAND使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了CHECK_COMMAND函數的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。
示例1: asm_cmd_convert
int asm_cmd_convert(const char* word, int* c)
{
*c = CHECK_COMMAND(word, PUSH)
CHECK_COMMAND(word, POP)
CHECK_COMMAND(word, ADD)
CHECK_COMMAND(word, SUB)
CHECK_COMMAND(word, MUL)
CHECK_COMMAND(word, DIV)
CHECK_COMMAND(word, SIN)
CHECK_COMMAND(word, COS)
CHECK_COMMAND(word, TAN)
CHECK_COMMAND(word, SQRT)
CHECK_COMMAND(word, POW)
CHECK_COMMAND(word, END)
CHECK_COMMAND(word, DUMP)
CHECK_COMMAND(word, ENTER)
CHECK_COMMAND(word, TAB)
CHECK_COMMAND(word, SPACE)
CHECK_COMMAND(word, OUT)
CHECK_COMMAND(word, MOV)
CHECK_COMMAND(word, SWAP)
CHECK_COMMAND(word, DUB)
CHECK_COMMAND(word, JMP)
CHECK_COMMAND(word, JBE)
CHECK_COMMAND(word, JB)
CHECK_COMMAND(word, JAE)
CHECK_COMMAND(word, JA)
CHECK_COMMAND(word, JE)
CHECK_COMMAND(word, JNE)
CHECK_COMMAND(word, FUNC)
CHECK_COMMAND(word, CALL)
CHECK_COMMAND(word, RET)
CHECK_COMMAND(word, IN)
CHECK_COMMAND(word, LN)
CHECK_COMMAND(word, ASIN)
CHECK_COMMAND(word, FAC)
CHECK_COMMAND(word, DEF)
CMD_NONE;
if (*c == CMD_NONE) return ASM_BAD_COMMAND_TOKEN;
return ASM_OK;
}
示例2: auth_dovecot_server
int
auth_dovecot_server(auth_instance * ablock, uschar * data)
{
auth_dovecot_options_block *ob =
(auth_dovecot_options_block *) ablock->options_block;
struct sockaddr_un sa;
uschar buffer[DOVECOT_AUTH_MAXLINELEN];
uschar *args[DOVECOT_AUTH_MAXFIELDCOUNT];
uschar *auth_command;
uschar *auth_extra_data = US"";
uschar *p;
int nargs, tmp;
int crequid = 1, cont = 1, fd = -1, ret = DEFER;
BOOL found = FALSE, have_mech_line = FALSE;
HDEBUG(D_auth) debug_printf("dovecot authentication\n");
if (!data)
{
ret = FAIL;
goto out;
}
memset(&sa, 0, sizeof(sa));
sa.sun_family = AF_UNIX;
/* This was the original code here: it is nonsense because strncpy()
does not return an integer. I have converted this to use the function
that formats and checks length. PH */
/*
if (strncpy(sa.sun_path, ob->server_socket, sizeof(sa.sun_path)) < 0) {
}
*/
if (!string_format(US sa.sun_path, sizeof(sa.sun_path), "%s",
ob->server_socket))
{
auth_defer_msg = US"authentication socket path too long";
return DEFER;
}
auth_defer_msg = US"authentication socket connection error";
if ((fd = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
return DEFER;
if (connect(fd, (struct sockaddr *) &sa, sizeof(sa)) < 0)
goto out;
auth_defer_msg = US"authentication socket protocol error";
socket_buffer_left = 0; /* Global, used to read more than a line but return by line */
while (cont)
{
if (dc_gets(buffer, sizeof(buffer), fd) == NULL)
OUT("authentication socket read error or premature eof");
p = buffer + Ustrlen(buffer) - 1;
if (*p != '\n')
OUT("authentication socket protocol line too long");
*p = '\0';
HDEBUG(D_auth) debug_printf("received: %s\n", buffer);
nargs = strcut(buffer, args, sizeof(args) / sizeof(args[0]));
/* HDEBUG(D_auth) debug_strcut(args, nargs, sizeof(args) / sizeof(args[0])); */
/* Code below rewritten by Kirill Miazine ([email protected]). Only check commands that
Exim will need. Original code also failed if Dovecot server sent unknown
command. E.g. COOKIE in version 1.1 of the protocol would cause troubles. */
/* pdp: note that CUID is a per-connection identifier sent by the server,
which increments at server discretion.
By contrast, the "id" field of the protocol is a connection-specific request
identifier, which needs to be unique per request from the client and is not
connected to the CUID value, so we ignore CUID from server. It's purely for
diagnostics. */
if (Ustrcmp(args[0], US"VERSION") == 0)
{
CHECK_COMMAND("VERSION", 2, 2);
if (Uatoi(args[1]) != VERSION_MAJOR)
OUT("authentication socket protocol version mismatch");
}
else if (Ustrcmp(args[0], US"MECH") == 0)
{
CHECK_COMMAND("MECH", 1, INT_MAX);
have_mech_line = TRUE;
if (strcmpic(US args[1], ablock->public_name) == 0)
found = TRUE;
}
else if (Ustrcmp(args[0], US"SPID") == 0)
{
/* Unfortunately the auth protocol handshake wasn't designed well
to differentiate between auth-client/userdb/master. auth-userdb
and auth-master send VERSION + SPID lines only and nothing
afterwards, while auth-client sends VERSION + MECH + SPID +
CUID + more. The simplest way that we can determine if we've
connected to the correct socket is to see if MECH line exists or
not (alternatively we'd have to have a small timeout after SPID
//.........這裏部分代碼省略.........
示例3: _RGXClientCCBDumpCommands
static IMG_VOID _RGXClientCCBDumpCommands(RGX_CLIENT_CCB *psClientCCB,
IMG_UINT32 ui32Offset,
IMG_UINT32 ui32ByteCount)
{
#if defined(SUPPORT_DUMP_CLIENT_CCB_COMMANDS)
IMG_UINT8 *pui8Ptr = psClientCCB->pui8ClientCCB + ui32Offset;
IMG_UINT32 ui32ConsumeSize = ui32ByteCount;
while (ui32ConsumeSize)
{
RGXFWIF_CCB_CMD_HEADER *psHeader = (RGXFWIF_CCB_CMD_HEADER *) pui8Ptr;
IMG_BOOL bFenceUpdate = IMG_FALSE;
PVR_DPF((SUPPORT_DUMP_CLIENT_CCB_COMMANDS_DBG_LEVEL, "@offset 0x%08x", pui8Ptr - psClientCCB->pui8ClientCCB));
switch(psHeader->eCmdType)
{
CHECK_COMMAND(TA, IMG_FALSE);
CHECK_COMMAND(3D, IMG_FALSE);
CHECK_COMMAND(CDM, IMG_FALSE);
CHECK_COMMAND(TQ_3D, IMG_FALSE);
CHECK_COMMAND(TQ_2D, IMG_FALSE);
CHECK_COMMAND(3D_PR, IMG_FALSE);
CHECK_COMMAND(NULL, IMG_FALSE);
CHECK_COMMAND(SHG, IMG_FALSE);
CHECK_COMMAND(RTU, IMG_FALSE);
CHECK_COMMAND(RTU_FC, IMG_FALSE);
CHECK_COMMAND(PRE_TIMESTAMP, IMG_FALSE);
CHECK_COMMAND(POST_TIMESTAMP, IMG_FALSE);
CHECK_COMMAND(FENCE, IMG_TRUE);
CHECK_COMMAND(UPDATE, IMG_TRUE);
CHECK_COMMAND(RMW_UPDATE, IMG_TRUE);
CHECK_COMMAND(FENCE_PR, IMG_TRUE);
CHECK_COMMAND(PADDING, IMG_FALSE);
default:
PVR_DPF((SUPPORT_DUMP_CLIENT_CCB_COMMANDS_DBG_LEVEL, "Unknown command!"));
break;
}
pui8Ptr += sizeof(*psHeader);
if (bFenceUpdate)
{
IMG_UINT32 j;
RGXFWIF_UFO *psUFOPtr = (RGXFWIF_UFO *) pui8Ptr;
for (j=0;j<psHeader->ui32CmdSize/sizeof(RGXFWIF_UFO);j++)
{
PVR_DPF((SUPPORT_DUMP_CLIENT_CCB_COMMANDS_DBG_LEVEL, "Addr = 0x%08x, value = 0x%08x",
psUFOPtr[j].puiAddrUFO.ui32Addr, psUFOPtr[j].ui32Value));
}
}
else
{
IMG_UINT32 *pui32Ptr = (IMG_UINT32 *) pui8Ptr;
IMG_UINT32 ui32Remain = psHeader->ui32CmdSize/sizeof(IMG_UINT32);
while(ui32Remain)
{
if (ui32Remain >= 4)
{
PVR_DPF((SUPPORT_DUMP_CLIENT_CCB_COMMANDS_DBG_LEVEL, "0x%08x 0x%08x 0x%08x 0x%08x",
pui32Ptr[0], pui32Ptr[1], pui32Ptr[2], pui32Ptr[3]));
pui32Ptr += 4;
ui32Remain -= 4;
}
if (ui32Remain == 3)
{
PVR_DPF((SUPPORT_DUMP_CLIENT_CCB_COMMANDS_DBG_LEVEL, "0x%08x 0x%08x 0x%08x",
pui32Ptr[0], pui32Ptr[1], pui32Ptr[2]));
pui32Ptr += 3;
ui32Remain -= 3;
}
if (ui32Remain == 2)
{
PVR_DPF((SUPPORT_DUMP_CLIENT_CCB_COMMANDS_DBG_LEVEL, "0x%08x 0x%08x",
pui32Ptr[0], pui32Ptr[1]));
pui32Ptr += 2;
ui32Remain -= 2;
}
if (ui32Remain == 1)
{
PVR_DPF((SUPPORT_DUMP_CLIENT_CCB_COMMANDS_DBG_LEVEL, "0x%08x",
pui32Ptr[0]));
pui32Ptr += 1;
ui32Remain -= 1;
}
}
}
pui8Ptr += psHeader->ui32CmdSize;
ui32ConsumeSize -= sizeof(*psHeader) + psHeader->ui32CmdSize;
}
#else
PVR_UNREFERENCED_PARAMETER(psClientCCB);
PVR_UNREFERENCED_PARAMETER(ui32Offset);
PVR_UNREFERENCED_PARAMETER(ui32ByteCount);
#endif
}