void dev_send_to_app(struct app_uart_data_ind *param) { uint8_t *buf_20; int16_t len = param->len; int16_t send_len = 0; uint8_t packet_len = get_bit_num(app_qpps_env->char_status)*20; #ifdef CATCH_LOG QPRINTF("\r\n@@@len %d\r\n@@@data\r\n",len); for(uint8_t j = 0; j<len; j++) QPRINTF("%c",param->data[j]); QPRINTF("\r\n"); #endif if(app_qpps_env->char_status) { for(uint8_t i =0; send_len < len; i++) { if (len > packet_len) //Split data into package when len longger than 20 { if (len - send_len > packet_len) { buf_20 = (uint8_t*)ke_msg_alloc(0, 0, 0, packet_len); if(buf_20 != NULL) { memcpy(buf_20,param->data+send_len,packet_len); send_len+=packet_len; } } else { buf_20 = (uint8_t *)ke_msg_alloc(0,0,0,len-send_len); if (buf_20 != NULL) { memcpy(buf_20,param->data+send_len,len-send_len); send_len = len; } } } else //not longger ther 20 send data directely { buf_20 = (uint8_t *)ke_msg_alloc(0,0,0,len); if (buf_20 != NULL) { memcpy(buf_20,param->data,len); send_len = len; } //app_qpps_data_send(app_qpps_env->conhdl,0,len,param->data); } //push the package to kernel queue. app_push(ke_param2msg(buf_20)); } } }
/* Push the state of our input, returning a pointer to saved info that can be restored with input_file_pop (). */ char *input_file_push () { register struct saved_file *saved; saved = (struct saved_file *)xmalloc (sizeof *saved); saved->f_in = f_in; saved->file_name = file_name; saved->preprocess = preprocess; if (preprocess) saved->app_save = app_push (); input_file_begin (); /* Initialize for new file */ return (char *)saved; }
char * input_file_push (void) { struct saved_file *saved; saved = XNEW (struct saved_file); saved->f_in = f_in; saved->file_name = file_name; saved->preprocess = preprocess; if (preprocess) saved->app_save = app_push (); /* Initialize for new file. */ input_file_begin (); return (char *) saved; }