本文整理汇总了C++中VALID_IDX函数的典型用法代码示例。如果您正苦于以下问题:C++ VALID_IDX函数的具体用法?C++ VALID_IDX怎么用?C++ VALID_IDX使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了VALID_IDX函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: chunk_encode_copy
void chunk_encode_copy(chunk dst,chunk src,char esc){
chunk_len k=0;
for(chunk_len i=0;i<src.len;i++){
if (isprint((unsigned char)src.data[i])) {
if (src.data[i]==esc){
VALID_IDX(k+1,dst);
dst.data[k]=esc;
dst.data[k+1]=esc;
k+=2;
VALID_IDX(k,dst);
} else {
VALID_IDX(k,dst);
dst.data[k]=src.data[i];
k++;
}
} else {
VALID_IDX(k+2,dst);
dst.data[k]=esc;
dst.data[k+1]=HEX[(src.data[i]>>4)&(char)0x0F];
dst.data[k+2]=HEX[src.data[i]&(char)0x0F];
k+=3;
}
}
if(k<dst.len) {
dst.data[k]=0;
}
}
示例2: eEnt_func42
/* #[<ENTRY_FUNC>]# eEnt_func42
* name: eEnt_func42
* global_name: tSimpleServer_eEnt_func42
* oneway: false
* #[</ENTRY_FUNC>]# */
ER
eEnt_func42(CELLIDX idx, char_t** msg)
{
ER ercd = E_OK;
CELLCB *p_cellcb;
// static char_t *MSG[8] = { "Hallo", "this", "is", "nice", "day", "isn't", "it", "?" };
char_t *MSG[8] = { "Hallo", "this", "is", "nice", "day", "isn't", "it", "?" };
int_t i;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
return(E_ID);
}
/* ここに処理本体を記述します #_TEFB_# */
for( i = 0; i < 8; i++ )
strcpy( msg[i], MSG[i] );
for( i = 0; i < 8; i++ ){
printf( "M %d %s\n", i, MSG[i] );
printf( "m %d %08X %s\n", i, msg[i], msg[i] );
}
return(ercd);
}
示例3: eEnt_func43
/* #[<ENTRY_FUNC>]# eEnt_func43
* name: eEnt_func43
* global_name: tSimpleServer_eEnt_func43
* oneway: false
* #[</ENTRY_FUNC>]# */
ER
eEnt_func43(CELLIDX idx, STA* sta, int32_t len)
{
ER ercd = E_OK;
CELLCB *p_cellcb;
int_t i;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
return(E_ID);
}
/* ここに処理本体を記述します #_TEFB_# */
for( i = 0; i < len; i++ ){
syslog( LOG_INFO, " sta[%d].a=%d, sta[%d].b=%d", i, sta[i].a, i, sta[i].b );
}
for( i = 0; i < len; i++ ){
int32_t a, b;
a = sta[i].a;
b = sta[i].b;
sta[i].a = b;
sta[i].b = a;
}
return(ercd);
}
示例4: eEnt_func35
/* #[<ENTRY_FUNC>]# eEnt_func35
* name: eEnt_func35
* global_name: tSimpleServer_eEnt_func35
* oneway: false
* #[</ENTRY_FUNC>]# */
ER
eEnt_func35(CELLIDX idx, char_t*** msg, int32_t* len, int32_t* msglen)
{
ER ercd = E_OK;
CELLCB *p_cellcb;
static const char_t *MSG[] = { "Today", "is", "2010", "October", "10", "10-10-10" };
int32_t i;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
return(E_ID);
}
/* ここに処理本体を記述します #_TEFB_# */
printf( "&i=%08X\n", &i );
*len = sizeof MSG / sizeof( char_t * );
*msglen = 9; // MSG[i] の最大長さ
syslog( LOG_INFO, "func35: len=%d\n", *len );
eEnt_func35_msg_alloc( sizeof MSG, (void **)msg );
for( i = 0; i < *len; i++ ){
eEnt_func35_msg_alloc( strlen(MSG[i])+1, (void **)&(*msg)[i] );
strcpy((*msg)[i],MSG[i]);
}
return(ercd);
}
示例5: eEnt_func36
/* #[<ENTRY_FUNC>]# eEnt_func36
* name: eEnt_func36
* global_name: tSimpleServer_eEnt_func36
* oneway: false
* #[</ENTRY_FUNC>]# */
ER
eEnt_func36(CELLIDX idx, STA** sta, int32_t* len)
{
ER ercd = E_OK;
int_t i;
CELLCB *p_cellcb;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
return(E_ID);
}
#define N_STA (5)
/* ここに処理本体を記述します #_TEFB_# */
*len = N_STA;
eEnt_func36_sta_alloc( N_STA * sizeof(STA), (void**)sta );
for( i = 0; i < N_STA; i++ ){
(*sta)[i].a = i + 1;
(*sta)[i].b = - i - 1;
#define FUNC36_MSG "have a nice day!"
(*sta)[i].len = (*sta)[i].count = sizeof FUNC36_MSG;
eEnt_func36_sta_alloc( sizeof(FUNC36_MSG), (void**)&(*sta)[i].msg );
strcpy( (*sta)[i].msg, FUNC36_MSG );
}
return(ercd);
}
示例6: eEnt_func37
/* #[<ENTRY_FUNC>]# eEnt_func37
* name: eEnt_func37
* global_name: tSimpleServer_eEnt_func37
* oneway: false
* #[</ENTRY_FUNC>]# */
ER
eEnt_func37(CELLIDX idx, STA*** sta, int32_t* len)
{
ER ercd = E_OK;
CELLCB *p_cellcb;
int_t i;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
return(E_ID);
}
/* ここに処理本体を記述します #_TEFB_# */
#define STA_LEN 3
#define FUNC37_MSG "Welcome to TECS"
*len = STA_LEN;
eEnt_func37_sta_alloc( sizeof(STA*)*STA_LEN, (void **)sta );
for( i = 0; i < STA_LEN; i++ ){
eEnt_func37_sta_alloc( sizeof(STA), (void **)&(*sta)[i] );
(*sta)[i]->a = ( i + 1 ) * ( i + 1 );
(*sta)[i]->b = ( i + 1 ) * ( i + 1 ) * ( i + 1 );
eEnt_func37_sta_alloc( sizeof FUNC37_MSG, (void **)&(*sta)[i]->msg );
(*sta)[i]->len = (*sta)[i]->count = sizeof FUNC37_MSG;
}
return(ercd);
}
示例7: eiSIOCBR_readySend
/*
* シリアルポートからの送信可能コールバック(受け口関数)
*/
void
eiSIOCBR_readySend(CELLIDX idx)
{
CELLCB *p_cellcb;
assert(VALID_IDX(idx));
p_cellcb = GET_CELLCB(idx);
if (VAR_receiveFlowControl != '\0') {
/*
* START/STOP を送信する.
*/
(void) cSIOPort_putChar(VAR_receiveFlowControl);
VAR_receiveFlowControl = '\0';
}
else if (!VAR_sendStopped && VAR_sendCount > 0U) {
/*
* 送信バッファ中から文字を取り出して送信する.
*/
(void) cSIOPort_putChar(VAR_sendBuffer[VAR_sendReadPointer]);
INC_PTR(VAR_sendReadPointer, ATTR_sendBufferSize);
if (VAR_sendCount == ATTR_sendBufferSize) {
if (ciSendSemaphore_signal() < 0) {
VAR_errorFlag = true;
}
}
VAR_sendCount--;
}
else {
/*
* 送信すべき文字がない場合は,送信可能コールバックを禁止する.
*/
cSIOPort_disableCBR(SIOSendReady);
}
}
示例8: eDev_Receive
/* #[<ENTRY_FUNC>]# eDev_Receive
* name: eDev_Receive
* global_name: tDev_eDev_Receive
* oneway: false
* #[</ENTRY_FUNC>]# */
ER
eDev_Receive(CELLIDX idx, int8_t** buf, int32_t* len)
{
ER ercd = E_OK;
int32_t i;
CELLCB *p_cellcb;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
return(E_ID);
}
/* ここに処理本体を記述します #_TEFB_# */
{
#define LEN 100
int32_t i, len = LEN;
int8_t *buf;
cCB_Send_buf_alloc( len, (void **)&buf );
for( i = 0; i < len; i++ )
buf[ i ] = ( i + 1 ) * 2;
syslog( LOG_INFO, "tDev: eDev_Receive: calling cCB_Send(len=%d)", len );
cCB_Send( buf, len );
}
*len = 128;
eDev_Receive_buf_alloc( *len, (void **)buf );
for( i = 0; i < *len; i++ )
(*buf)[ i ] = i * i;
syslog( LOG_INFO, "tDev: eDev_Receive: Exit (*len=%d)", *len );
return(ercd);
}
示例9: eEnt_func39
/* #[<ENTRY_FUNC>]# eEnt_func39
* name: eEnt_func39
* global_name: tSimpleServer_eEnt_func39
* oneway: false
* #[</ENTRY_FUNC>]# */
ER
eEnt_func39(CELLIDX idx, STA*(** arraySt)[ArraySizeSTA])
{
ER ercd = E_OK;
CELLCB *p_cellcb;
STA sta[ArraySizeSTA] = { { 11, 121 }, { 13, 169 } };
char_t *msg[ArraySizeSTA] = { "hello!! func39-0", "hello!! func39-1" };
int i;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
return(E_ID);
}
/* ここに処理本体を記述します #_TEFB_# */
eEnt_func39_arraySt_alloc( sizeof(STA *)*ArraySizeSTA, (void **)arraySt );
for( i = 0; i < ArraySizeSTA; i++ ){
eEnt_func39_arraySt_alloc( sizeof(STA ), (void **)&(**arraySt)[i] );
(**arraySt)[i]->a = sta[i].a;
(**arraySt)[i]->b = sta[i].b;
(**arraySt)[i]->len = (**arraySt)[i]->count = strlen( msg[i] ) + 1;
eEnt_func39_arraySt_alloc( (**arraySt)[i]->len, (void **)&(**arraySt)[i]->msg );
strncpy( (**arraySt)[i]->msg, msg[i], (**arraySt)[i]->len );
}
return(ercd);
}
示例10: eSerialPort_close
/*
* シリアルポートのクローズ(受け口関数)
*/
ER
eSerialPort_close(CELLIDX idx)
{
CELLCB *p_cellcb;
ER ercd;
bool_t eflag = false;
if (sns_dpn()) { /* コンテキストのチェック */
return(E_CTX);
}
if (!VALID_IDX(idx)) {
return(E_ID); /* ポート番号のチェック */
}
p_cellcb = GET_CELLCB(idx);
SVC(dis_dsp(), gen_ercd_sys(p_cellcb));
if (!VAR_openFlag) { /* オープン済みかのチェック */
ercd = E_OBJ;
}
else {
/*
* ハードウェア依存のクローズ処理
*/
if (loc_cpu() < 0) {
eflag = true;
}
cSIOPort_close();
VAR_openFlag = false;
if (unl_cpu() < 0) {
eflag = true;
}
/*
* セマフォの初期化
*/
if (cSendSemaphore_initialize() < 0) {
eflag = true;
}
if (cReceiveSemaphore_initialize() < 0) {
eflag = true;
}
/*
* エラーコードの設定
*/
if (eflag) {
ercd = gen_ercd_sys(p_cellcb);
}
else {
ercd = E_OK;
}
}
SVC(ena_dsp(), gen_ercd_sys(p_cellcb));
error_exit:
return(ercd);
}
示例11: ka_del_sem
/*
* name: ka_del_sem
* global_name: tKernel_ka_del_sem
*/
ER ka_del_sem( tKernel_IDX idx, ID id)
{
struct tag_tKernel_CB *this;
if( VALID_IDX( idx ) ){
this = tKernel_GET_CELLCB(idx);
}else{
/* エラー処理コードをここに記述 */
}
}
示例12: eSerialPort_read
/*
* シリアルポートからの文字列受信(受け口関数)
*/
ER_UINT
eSerialPort_read(CELLIDX idx, char *buffer, uint_t length)
{
CELLCB *p_cellcb;
bool_t buffer_empty;
uint_t reacnt = 0U;
char c = '\0'; /* コンパイラの警告を抑止するために初期化する */
ER ercd, rercd;
if (sns_dpn()) { /* コンテキストのチェック */
return(E_CTX);
}
if (!VALID_IDX(idx)) { /* ポート番号のチェック */
return(E_ID);
}
p_cellcb = GET_CELLCB(idx);
if (!VAR_openFlag) { /* オープン済みかのチェック */
return(E_OBJ);
}
if (VAR_errorFlag) { /* エラー状態かのチェック */
return(E_SYS);
}
buffer_empty = true; /* ループの1回めはwai_semする */
while (reacnt < length) {
if (buffer_empty) {
SVC(rercd = cReceiveSemaphore_wait(),
gen_ercd_wait(rercd, p_cellcb));
}
SVC(rercd = serialPort_readChar(p_cellcb, &c), rercd);
*buffer++ = c;
reacnt++;
buffer_empty = (bool_t) rercd;
/*
* エコーバック処理.
*/
if ((VAR_ioControl & IOCTL_ECHO) != 0U) {
SVC(rercd = cSendSemaphore_wait(),
gen_ercd_wait(rercd, p_cellcb));
SVC(rercd = serialPort_writeChar(p_cellcb, c), rercd);
if (!((bool_t) rercd)) {
SVC(cSendSemaphore_signal(), gen_ercd_sys(p_cellcb));
}
}
}
if (!buffer_empty) {
SVC(cReceiveSemaphore_signal(), gen_ercd_sys(p_cellcb));
}
ercd = E_OK;
error_exit:
return(reacnt > 0U ? (ER_UINT) reacnt : ercd);
}
示例13: eEnt_func
/* #[<ENTRY_FUNC>]# eEnt_func
* name: eEnt_func
* global_name: tCelltype2_eEnt_func
* oneway: false
* #[</ENTRY_FUNC>]# */
void
eEnt_func(CELLIDX idx)
{
CELLCB *p_cellcb;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
/* エラー処理コードをここに記述します */
}
printf("Celltyp2 cellName %s\n",ATTR_cellName);
}
示例14: eEntry2_func2
/*
* name: eEntry2_func2
* global_name: tCell2_eEntry2_func2
*/
tecs_int32 eEntry2_func2( tCell2_IDX idx, tecs_int32 a)
{
CELLCB *p_cellcb;
if( VALID_IDX( idx ) ){
p_cellcb = tCell2_GET_CELLCB(idx);
}else{
/* エラー処理コードをここに記述 */
}
printf( "tCell2: eEntry2_func2( a=%d )\n", a );
printf( "tCell2: eEntry2_func2: calling cCall2_func2( this, a=202 )\n" );
cCall2_func2( 202 );
}
示例15: eEnt_func
/*
* name: eEnt_func
* global_name: tSingleCellOptimizeCaller_eEnt_func
* oneway:
* #[/ENTRY_FUNC>]# */
void
eEnt_func(CELLIDX idx)
{
CELLCB *p_cellcb;
if (VALID_IDX(idx)) {
p_cellcb = GET_CELLCB(idx);
}
else {
/* エラー処理コードをここに記述します */
}
/* ここに処理本体を記述します */
cCall_func();
}