Пример #1
0
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
0
/* #[<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
0
/* #[<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
0
/* #[<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
0
/* #[<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
0
/* #[<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);
}
/*
 *  シリアルポートからの送信可能コールバック(受け口関数)
 */
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
0
/* #[<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
0
/* #[<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);
}
/*
 *  シリアルポートのクローズ(受け口関数)
 */
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
0
/*
 * 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{
     /* エラー処理コードをここに記述 */
  }
}
/*
 *  シリアルポートからの文字列受信(受け口関数)
 */
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
0
/* #[<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
0
/*
 * 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 );
}
/*
 * 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();
}
Пример #16
0
/* #[<ENTRY_FUNC>]# eParamsSEND_func10
 * name:         eParamsSEND_func10
 * global_name:  tCellCheckParam_eParamsSEND_func10
 * oneway:       
 * #[/ENTRY_FUNC>]# */
void
eParamsSEND_func10(CELLIDX idx, char_t** str_array, int32_t len)
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}

	/* ここに処理本体を記述します */

}
Пример #17
0
/* #[<ENTRY_FUNC>]# eParamsIN_func10
 * name:         eParamsIN_func10
 * global_name:  tCellCheckParam_eParamsIN_func10
 * oneway:       
 * #[/ENTRY_FUNC>]# */
void
eParamsIN_func10(CELLIDX idx, const int16_t* wstr)
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}

	/* ここに処理本体を記述します */

}
Пример #18
0
/* #[<ENTRY_FUNC>]# eParamsOUT_func31
 * name:         eParamsOUT_func31
 * global_name:  tCellCheckParam_eParamsOUT_func31
 * oneway:       
 * #[/ENTRY_FUNC>]# */
void
eParamsOUT_func31(CELLIDX idx, int8_t*** str, int32_t sz)
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}

	/* ここに処理本体を記述します */

}
Пример #19
0
/* #[<ENTRY_FUNC>]# eParamsOUT_func42
 * name:         eParamsOUT_func42
 * global_name:  tCellCheckParam_eParamsOUT_func42
 * oneway:       
 * #[/ENTRY_FUNC>]# */
void
eParamsOUT_func42(CELLIDX idx, int64_t(* array2D)[4][4])
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}

	/* ここに処理本体を記述します */

}
Пример #20
0
/* #[<ENTRY_FUNC>]# eParamsRECEIVE_func11
 * name:         eParamsRECEIVE_func11
 * global_name:  tCellCheckParam_eParamsRECEIVE_func11
 * oneway:       
 * #[/ENTRY_FUNC>]# */
void
eParamsRECEIVE_func11(CELLIDX idx, struct complex_number ** dat)
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}

	/* ここに処理本体を記述します */

}
Пример #21
0
/* #[<ENTRY_FUNC>]# eParamsRECEIVE_func20
 * name:         eParamsRECEIVE_func20
 * global_name:  tCellCheckParam_eParamsRECEIVE_func20
 * oneway:       
 * #[/ENTRY_FUNC>]# */
void
eParamsRECEIVE_func20(CELLIDX idx, int32_t** array, int32_t* sz)
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}

	/* ここに処理本体を記述します */

}
Пример #22
0
/* #[<ENTRY_FUNC>]# eiBody_main
 * name:         eiBody_main
 * global_name:  tCyclicTaskActivator_eiBody_main
 * oneway:       false
 * #[</ENTRY_FUNC>]# */
void
eiBody_main(CELLIDX idx)
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	} /* end if VALID_IDX(idx) */

	/* ここに処理本体を記述します #_TEFB_# */

}
Пример #23
0
/* #[<ENTRY_FUNC>]# eParamsIN_func22
 * name:         eParamsIN_func22
 * global_name:  tCellCheckParam_eParamsIN_func22
 * oneway:       
 * #[/ENTRY_FUNC>]# */
void
eParamsIN_func22(CELLIDX idx, const int32_t array[4])
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}

	/* ここに処理本体を記述します */

}
Пример #24
0
/* #[<ENTRY_FUNC>]# eParamsSEND_funcA0
 * name:         eParamsSEND_funcA0
 * global_name:  tCellCheckParam_eParamsSEND_funcA0
 * oneway:       
 * #[/ENTRY_FUNC>]# */
void
eParamsSEND_funcA0(CELLIDX idx, int8_t* buf, int32_t len)
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}

	/* ここに処理本体を記述します */

}
/* #[<ENTRY_FUNC>]# eEnt_func
 * name:         eEnt_func
 * global_name:  tSingleCellOptimizeCallee_eEnt_func
 * oneway:       
 * #[/ENTRY_FUNC>]# */
void
eEnt_func(CELLIDX idx)
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}

	/* ここに処理本体を記述します */
	printf( "tSingleCellOptimizeCallee: eEnt_func: called\n" );
}
Пример #26
0
/* #[<ENTRY_FUNC>]# eParamsRECEIVE_func40
 * name:         eParamsRECEIVE_func40
 * global_name:  tCellCheckParam_eParamsRECEIVE_func40
 * oneway:       
 * #[/ENTRY_FUNC>]# */
void
eParamsRECEIVE_func40(CELLIDX idx, char_t*** str)
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}

	/* ここに処理本体を記述します */

}
/* #[<ENTRY_FUNC>]# eEnt_func2
 * name:         eEnt_func2
 * global_name:  tSingleCellOptimizeCallee_eEnt_func2
 * oneway:       
 * #[/ENTRY_FUNC>]# */
int32_t
eEnt_func2(CELLIDX idx, int32_t arg)
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}

	/* ここに処理本体を記述します */
	printf( "tSkeltonUselessOptimizeCallee: eEnt_func2: called\n" );
	return 30;
}
Пример #28
0
/* #[<ENTRY_FUNC>]# eEnt_func2
 * name:         eEnt_func2
 * global_name:  tRelay_eEnt_func2
 * oneway:       false
 * #[</ENTRY_FUNC>]# */
ER
eEnt_func2(CELLIDX idx, int8_t* buf, int32_t sz)
{
	ER		ercd = E_OK;
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		return(E_ID);
	}

	/* ここに処理本体を記述します #_TEFB_# */

	return(ercd);
}
Пример #29
0
/* #[<ENTRY_FUNC>]# eEnt_shutdown
 * name:         eEnt_shutdown
 * global_name:  tSimpleServer_eEnt_shutdown
 * oneway:       true
 * #[</ENTRY_FUNC>]# */
void
eEnt_shutdown(CELLIDX idx)
{
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		/* エラー処理コードをここに記述します */
	}

	/* ここに処理本体を記述します */
	syslog( LOG_INFO, "shutdown tSimpleServer" );
	eEnt_func21_a_printStatistics();
	exit(0);
}
Пример #30
0
/* #[<ENTRY_FUNC>]# eEnt_func
 * name:         eEnt_func
 * global_name:  tCt1_eEnt_func
 * oneway:       
 * #[/ENTRY_FUNC>]# */
ER
eEnt_func(CELLIDX idx, int32_t* a)
{
	ER		ercd = E_OK;
	CELLCB	*p_cellcb;
	if (VALID_IDX(idx)) {
		p_cellcb = GET_CELLCB(idx);
	}
	else {
		return(E_ID);
	}

	/* ここに処理本体を記述します */

	return(ercd);
}