コード例 #1
0
ファイル: cgi_cs_sys_status.c プロジェクト: Undrizzle/yolanda
cgi_status cgi_cs_fec_set(cgi_handler_param_t *p)
{
    cs_callback_context_t     context;
    cs_uint8 fec_mode;

  if(epon_request_onu_fec_get(context,ONU_DEVICEID_FOR_API,ONU_LLIDPORT_FOR_API,&fec_mode) != CS_E_OK)
  {
    cs_printf("get fec status error\n");
    return CS_E_ERROR;
  }

  if(fec_mode == 1)
  {
    fec_mode = 0;
  }
  else
  {
    fec_mode = 1;
  }

  if(epon_request_onu_fec_set(context,ONU_DEVICEID_FOR_API,ONU_LLIDPORT_FOR_API,fec_mode) != CS_E_OK)
  {
    cs_printf("set fec status error\n");
    return CS_E_ERROR;
  }

  cgi_send_int(p,CGI_OK);
  return CS_E_OK;
}
コード例 #2
0
ファイル: log.c プロジェクト: Undrizzle/yolanda
void cs_buf_print_mem(cs_uint32 level , cs_uint32 module_id , cs_int8 *pbuf , cs_int32 len)
{
    cs_uint32 time = (cs_uint32)cs_current_time();

    cs_printf("\r\n==============================================================================");
    cs_printf("\r\n%08x: module=%s , level=%d",time,cs_sys_mod_desc_get(module_id),level);
    cs_buf_print(pbuf, len);
}
コード例 #3
0
ファイル: startup_cfg.c プロジェクト: Undrizzle/yolanda
static void startup_cfg_help()
{
    cs_printf("scfg show         - dump all startup configuration\n");
    cs_printf("scfg show h       - dump all startup configuration in hex-mode\n");
    cs_printf("scfg reset        - set all configuration to default value\n");
    cs_printf("scfg set <T> <V>  - set specific field value(T:type, V:value)\n");
    cs_printf("scfg clear <type> - clear specific field\n");
}
コード例 #4
0
ファイル: kernel.c プロジェクト: treelite/micos
int _main(uint32_t memory_size) {
    init(memory_size);
    cs_printf("Welcome to MicOS\n");
    // Paging test
    int *n = (int *)0x800003FF;
    *n = 1;
    cs_printf("This variable is %u, come from %h\n", *n, n);
    return 0;
}
コード例 #5
0
ファイル: log.c プロジェクト: Undrizzle/yolanda
cs_int32 cs_sys_log_init()
{
#if 0
    struct stat file_stat;
    DIR *pDir = NULL;

    pDir = opendir("/log");
    if(pDir == NULL)
    {
        if(mkdir("/log", 0) != 0)
        {
            cs_printf("\r\n Open log directory failed.");
            return 0;
        }
    }

    sys_log_ctrl.log_fp = (void *)fopen(sys_log_file,"r+");
    if(sys_log_ctrl.log_fp == NULL)
    {
        sys_log_ctrl.log_fp = (void *)fopen(sys_log_file,"w+");
    }
    fstat(fileno((FILE *)sys_log_ctrl.log_fp), &file_stat);

    if(file_stat.st_size >= MAX_LOG_FILE_SIZE)
    {
        fseek((FILE *)sys_log_ctrl.log_fp , 0 , SEEK_SET);
        fp_cursor = 0;
    }
    else
    {
        fseek((FILE *)sys_log_ctrl.log_fp , 0 , SEEK_END);
        fp_cursor = file_stat.st_size;
    }

    return 0;
#else
    cs_uint32 part_index = flash_part_id_to_part_index(IROS_FLASH_PARTITION_LOG_ID);
    pSysLog = (cs_sys_log_t *)malloc(sizeof(cs_sys_log_t));
    if(pSysLog == NULL)
    {
        cs_printf("Allocate sys log memory failed.\n");
        return 0;
    }
    memcpy(pSysLog , flash_dev.info.super_block.part_tab[part_index].part_loc , sizeof(cs_sys_log_t));
    if(pSysLog->log_magic != 0x12345678)
    {
        memset(pSysLog , 0 , sizeof(cs_sys_log_t));
        pSysLog->log_magic = 0x12345678;
        pSysLog->log_cursor = 0;
    }
    cs_mutex_init(&sys_log_mutex, "syslogmutex", 0);
    cs_circle_timer_add(CS_LOG_WRITE_INTERVAL*1000, cs_sys_log_timer_notify, NULL);
    return 0;
#endif
}
コード例 #6
0
ファイル: app_ip_mgnt.c プロジェクト: Undrizzle/yolanda
cs_status app_ipintf_inband_enable()
{
    cs_status ret = CS_E_OK;
	int ret_w;
    ret_w = get_userdata_from_flash((unsigned char *)&g_slow_path_ip_cfg, GWD_PRODUCT_CFG_OFFSET_W, sizeof(g_slow_path_ip_cfg));
	if(ret_w)
		{
			cs_printf("get ipdate fail..\n");
		}
    if(APP_IPINTF_INBNAD_MGNT == ipintf_info.inband) {
        APP_IPINTF_LOG(IROS_LOG_LEVEL_INF,"No need set to INBAND \n");
        return CS_E_OK;
    }

	#if 0

	#else
	cs_uint32	device_ip;
	cs_uint32	device_mask;
	cs_uint32	device_gateway;
	cs_uint16	device_vlan;

	ret = ip_info_get_from_global(&device_ip, &device_mask, &device_gateway, &device_vlan);
	if(CS_E_OK != ret)
	{
		cs_printf("ip_info_get_from_global fail\n");
	}
	else
	{
	#if 0
		cs_printf("ip_info_get_from_global success\n");
	#endif
	}
	#endif

	#if 0
    ret = app_ipintf_ip_config_set(g_slow_path_ip_cfg.inband_ip,g_slow_path_ip_cfg.inband_ip_mask,0);
    #else
//	ret = app_ipintf_ip_config_set(device_ip,device_mask, device_gateway);
	#endif

    if(ret != CS_E_OK) {
        return ret;
    }
	#if 1
    ret = app_ipintf_set_wan_cfg(APP_IPINTF_INBNAD_MGNT, 0,device_vlan, 0, 0);
    #else
	ret = app_ipintf_set_wan_cfg(APP_IPINTF_OUTBNAD_MGNT, 0,device_vlan, 0, 0);
	#endif
    APP_IPINTF_LOG(IROS_LOG_LEVEL_INF,"Set to INBAND \n");
    return ret;
}
コード例 #7
0
ファイル: img_upgrade.c プロジェクト: Undrizzle/yolanda
void img_upgrade_show()
{
    cs_printf("status:---------(%d)\n", g_img_upgrade_cb.status);
    cs_printf("cabllback:-------(%p)\n", g_img_upgrade_cb.callback);
    cs_printf("max size:--------(%d)\n", g_img_upgrade_cb.size);
    cs_printf("curr size:--------(%d)\n", g_img_upgrade_cb.curr_len);
    cs_printf("total size:--------(%d)\n", g_img_upgrade_cb.total_len);
    cs_printf("next seq:--------(%d)\n", g_img_upgrade_cb.next_seq);
    cs_printf("conf policy-------(%d)\n", g_img_upgrade_cb.direct_confirm);
    cs_printf("watch dog-------(%d)\n", g_img_upgrade_cb.watchdog_enable);
    cs_printf("name:-----------(%s)\n", g_img_upgrade_cb.name);
    cs_printf("buff addr:--------(%p)\n", g_img_upgrade_cb.buf);
}
コード例 #8
0
ファイル: startup_cfg.c プロジェクト: Undrizzle/yolanda
static int startup_config_write_to_flash(void *addr , int len)
{
#ifdef HAVE_SCFG_PROTECTION
    unsigned int part_index = IROS_FLASH_PARTITION_INDEX_ANY;
#endif
    char *startup_cfg_addr = NULL;
    int written_len = 0;

    if(!scfg_autosave_flag)
        return 0;

#ifdef HAVE_SCFG_PROTECTION
    part_index = flash_part_id_to_part_index(SCFG_PARTION);
    if(active_part_index == part_index)
        active_part_index = flash_part_id_to_part_index(SCFG_PARTION1);
    else
        active_part_index = part_index;
#endif
    if(active_part_index == IROS_FLASH_PARTITION_INDEX_ANY)
    {
        if(scfg_warning_flag == 0)
            cs_printf("write startup-cfg error!\n");
        return -1;
    }
    startup_cfg_addr = flash_dev.info.super_block.part_tab[active_part_index].part_loc;
    if (flash_part_write_init(active_part_index, startup_cfg_addr)) { /* prepare to write flash */
        startup_cfg_encrypt((char *)addr+sizeof(tlv_header_t), len-sizeof(tlv_header_t));
        written_len = flash_write(startup_cfg_addr, (char *)addr, len);
        flash_part_write_done(active_part_index);
        flash_write_verify(startup_cfg_addr, (char *)addr, len);
        if(written_len != len)
        {
            startup_cfg_decrypt((char *)addr+sizeof(tlv_header_t), len-sizeof(tlv_header_t));
            if(scfg_warning_flag == 0)
                cs_printf("write startup-config error\n");
            return -1;
        }
        startup_cfg_decrypt((char *)addr+sizeof(tlv_header_t), len-sizeof(tlv_header_t));
        if(scfg_warning_flag == 0)
            cs_printf("write startup-cfg successfully\n");
        return 0;
    }
    else
    {
        if(scfg_warning_flag == 0)
            cs_printf("write startup-cfg error\n");
    }

    return -1;
}
コード例 #9
0
ファイル: app_ip_util.c プロジェクト: Undrizzle/yolanda
void app_ipintf_mac_table_dump(cs_uint32 port)
{
    cs_uint32 i = 0;
    cs_printf("ARP table:\n");
    for(i=0; i<IPINTF_MAC_ENTRY_MAX; i++){
        if(MACTBL[i].used) {
            cs_printf("index = %2d: used %d,hit %d, vlanid %4d, dpid %d,"
                "ESA = %02X %02X %02X %02X %02X %02X\n",i,
                MACTBL[i].used,MACTBL[i].hit, MACTBL[i].vlanid, MACTBL[i].dpid,
                MACTBL[i].mac[0],MACTBL[i].mac[1],MACTBL[i].mac[2],
                MACTBL[i].mac[3],MACTBL[i].mac[4],MACTBL[i].mac[5]);
        }
    }
}
コード例 #10
0
ファイル: image.c プロジェクト: Undrizzle/yolanda
/* Invalid standby blob XIP crc to 0xFFFFFFFF for Bug 23377 */
cs_uint32 standby_blob_crc_invalidate(void)
{
    blob_info_desc_t *active_blob_info;
    blob_info_desc_t *standby_blob_info;
    unsigned int act_blob_idex,sty_blob_idex;
    cs_callback_context_t		context;
    void *temp_ptr=NULL;

    act_blob_idex = current_blob_desc.blob_idx;
    active_blob_info = blob_info_tab[act_blob_idex];
    
    /* if current active blob is not commited invalid standby blob crc */
    if(active_blob_info->is_not_confirmed){

        /* Disable watchdog enabled by loader for Bug 28609 */
        cs_plat_wdt_disable(context,0,0);
        
        /* used to back up first block data*/
        temp_ptr=iros_malloc(IROS_MID_SYS, flash_dev.info.super_block.block_size);
        if(NULL == temp_ptr){
            cs_printf("Invalidate standby blob xip crc failed for no memory\n");
            return CS_ERROR;
        }

        sty_blob_idex = 0x1 &(act_blob_idex + 1);
        /* back up standby data */      
        memcpy(temp_ptr,blob_info_tab[sty_blob_idex],flash_dev.info.super_block.block_size);
        standby_blob_info = (blob_info_desc_t *)temp_ptr;
        standby_blob_info->xip_crc32 = 0xffffffff;

        /* prepare to write flash with erase */
        if (flash_part_write_init(blob_part_tab[sty_blob_idex], 
                                    (char*)blob_info_tab[sty_blob_idex])) { 
            flash_write((char *)blob_info_tab[sty_blob_idex], 
                         (char *)temp_ptr, flash_dev.info.super_block.block_size);
            cs_printf("Standby blob xip crc invalidated \n");

            flash_part_write_done(blob_part_tab[sty_blob_idex]);
        } 
        else {
           // cs_printf("Standby blob invalidate failed \n");
            iros_free(temp_ptr);
            return CS_ERROR;
        }
        iros_free(temp_ptr);
    }
    
    return CS_OK;  
}
コード例 #11
0
ファイル: log.c プロジェクト: Undrizzle/yolanda
void cs_sys_log_timer_proc(void *data)
{
    cs_uint32 part_index = flash_part_id_to_part_index(IROS_FLASH_PARTITION_LOG_ID);
    char *log_addr = NULL;
    int written_len = 0;

    if(log_is_changed == 0)   /*sys log is changed*/
        return;

    cs_mutex_lock(sys_log_mutex);

    log_addr = flash_dev.info.super_block.part_tab[part_index].part_loc;
    flash_part_write_init(part_index, log_addr);
    written_len = flash_write(log_addr, (char *)pSysLog, sizeof(cs_sys_log_t));
    flash_part_write_done(part_index);
    sys_log_write = 0;
    log_is_changed = 0;
    if(written_len != sizeof(cs_sys_log_t))
    {
        cs_printf("write log error\n");
        cs_mutex_unlock(sys_log_mutex);
        return;
    }

    cs_mutex_unlock(sys_log_mutex);
    return;
}
コード例 #12
0
ファイル: ssp.c プロジェクト: Undrizzle/yolanda
cs_status ssp_oper_trigger_done(void)
{
  AHB_SSP_CTRL_t ctrl;
  cs_uint32 cnt = SSP_POLL_TIME;

  /* start the control to receive the data.
    * poll until it finishes */
  CS_REG_READ(IROS_AHB_SSP_CTRL, ctrl.wrd);
  ctrl.bf.sspstart = 1;
  CS_REG_WRITE(IROS_AHB_SSP_CTRL, ctrl.wrd);

  do {
        CS_REG_READ(IROS_AHB_SSP_CTRL, ctrl.wrd);
        if (ctrl.bf.sspdone) {
            break;
        }
   } while (cnt--);

  if (cnt <= 0) {
        /* unable to receive completely before count runs out */
        cs_printf("couldn't complete receiving data\n");
        return CS_E_TIMEOUT;
  }

  /* write sspdone back to register to clear off */
  CS_REG_READ(IROS_AHB_SSP_CTRL, ctrl.wrd);
  ctrl.bf.sspdone = 1;
  CS_REG_WRITE(IROS_AHB_SSP_CTRL, ctrl.wrd);

  return CS_E_OK;

}
コード例 #13
0
ファイル: app_oam_cs.c プロジェクト: Undrizzle/yolanda
void handle_cs_oams(
    cs_uint32 port,
    cs_uint8 *frame,
    cs_uint32 len)
{
    cs_oam_pdu_hdr_t  * oam_pdu = (cs_oam_pdu_hdr_t*)frame;

    switch(oam_pdu->opcode)
    {
    case CS_OAM_OPCODE_HELLO:
#ifdef HAVE_ONU_HELLO
        onu_hello_proc(oam_pdu->data, (cs_int32)(len - sizeof(cs_oam_pdu_hdr_t)), g_oam_port);
#endif
        break;

    case CS_OAM_OPCODE_EVENT:
#ifdef HAVE_ONU_EVENT
        onu_event_proc(oam_pdu->data, (cs_int32)(len - sizeof(cs_oam_pdu_hdr_t)), g_oam_port);
#endif
        break;

    default:
        cs_printf("Not support opcode %d\n", oam_pdu->opcode);
        return;
    }

}
コード例 #14
0
ファイル: cgi_cs_qos.c プロジェクト: Undrizzle/yolanda
cgi_status cgi_cs_qos_quen_map_get(cgi_handler_param_t * p)
{
  cs_callback_context_t qos_context;
  cs_pri_cos_map_t quen_map;
  cs_uint8 index;
  cs_int8 buff[CGI_MAX_BUFF_LEN];
  cs_int8 tmpBuff[CGI_MAX_BUFF_LEN];

  memset(buff, 0, sizeof(buff));
  sprintf(buff, "%s", "{quen_map:\"");

  if(epon_request_onu_dot1p_map_get(qos_context,QOS_DEVICE_ID,LLID_PORTID,&quen_map) != CS_E_OK)
  {
    cs_printf("get dot1p map error\n");
    return CS_E_ERROR;
  }
  for(index=0;index<8;index++)
  {
    memset(tmpBuff, 0, sizeof(tmpBuff));
    sprintf(tmpBuff, "%d", quen_map.cos[index]);
    strcat(buff, tmpBuff);
  }

  strcat(buff,"\" }");

  CGI_DEBUG("send buf = %s \n",buff);

  cgi_send_str(p, buff,strlen(buff));
  return CS_E_OK;
}
コード例 #15
0
ファイル: startup_cfg.c プロジェクト: Undrizzle/yolanda
static void startup_config_clear(int type)
{
    int field_idx = -1;
    cfg_field_t *pField = NULL;
    unsigned char c_v = 0;
    unsigned short s_v = 0;
    unsigned int i_v = 0;
    unsigned char buf[64];
    tlv_header_t *pHeader = NULL;
    cs_uint8 active_cnt = 9;
    tlv_instance_t *pInst = (tlv_instance_t *)gStartupInst;

    field_idx = startup_config_field_idx_get(type);
    if(field_idx == -1)
    {
        cs_printf("Invalid type.\n");
        return;
    }

    pHeader = (tlv_header_t *)pInst->base_address;
#ifdef HAVE_SCFG_PROTECTION
    active_cnt = pHeader->active;
    if(active_cnt == SCFG_MAX_CNT)
        active_cnt = 0;
    else
        active_cnt++;
#else
    active_cnt = SCFG_MAX_CNT;
#endif
    tlv_write_active(gStartupInst , active_cnt);

    pField = &glb_field[field_idx];
    switch(pField->value_type)
    {
    case FIELD_TYPE_CHAR:
        c_v = (unsigned char)pField->dflt_val;
        tlv_write_char(gStartupInst, type , c_v);
        break;
    case FIELD_TYPE_SHORT:
        s_v = (unsigned short)pField->dflt_val;
        tlv_write_short(gStartupInst, type , s_v);
        break;
    case FIELD_TYPE_INT:
        i_v = (unsigned int)pField->dflt_val;
        tlv_write_int(gStartupInst, type , i_v);
        break;
    case FIELD_TYPE_BUFF:
        tlv_write_buffer(gStartupInst, type, pField->value_max_len, pField->value_max_len, pField->dflt_buf);
        break;
    case FIELD_TYPE_STRING:
        memset(buf , 0, sizeof(buf));
        tlv_write_buffer(gStartupInst, type, pField->value_max_len, pField->value_max_len, buf);
        break;
    default:
        break;
    }

    return;
}
コード例 #16
0
ファイル: sdl_show_cmd.c プロジェクト: Undrizzle/yolanda
void __show_uni_status(cs_port_id_t            portid)
{
    cs_callback_context_t   context;
    cs_status               status = 0;
    cs_sdl_port_link_status_t    link_status;
    cs_sdl_port_ether_speed_t    speed;
    cs_sdl_port_ether_duplex_t   duplex;
    cs_sdl_port_autoneg_status_t auto_neg;

    //portid = CS_UNI_PORT_ID1;
    if(portid == CS_UPLINK_PORT || portid == CS_DOWNLINK_PORT){
        return;
    }
    status = epon_request_onu_port_link_status_get(context, 0, 0, portid, &link_status);
    if(status != CS_E_OK){
        cs_printf("epon_request_onu_port_link_status_get failed \n");    
        return;       
    }

    status = epon_request_onu_port_speed_get(context, 0, 0, portid, &speed);
    if(status != CS_E_OK){
        cs_printf("epon_request_onu_port_speed_get failed \n");    
        return;       
    }

    status = epon_request_onu_port_duplex_get(context, 0, 0, portid, &duplex);
    if(status != CS_E_OK){
        cs_printf("epon_request_onu_port_duplex_get failed \n");    
        return;       
    }

    status = epon_request_onu_port_auto_neg_get(context, 0, 0, portid, &auto_neg);
    if(status != CS_E_OK){
        cs_printf("epon_request_onu_port_auto_neg_get failed \n");    
        return;       
    }

    cs_printf("----------------------------------\n");
    cs_printf("Link           is %s!\n", (link_status == SDL_PORT_ADMIN_UP) ? "UP" : "DOWN");
    cs_printf("Actual speed   is %s!\n", actualspeed2string[speed]);
    cs_printf("Actual duplex  is %s\n", actualduplex2string[duplex]);
    cs_printf("Auto neg       is %s\n", autoneg2string[auto_neg]);
    cs_printf("----------------------------------\n");
    
}
コード例 #17
0
ファイル: log.c プロジェクト: Undrizzle/yolanda
void cs_sys_log_dump()
{
#if 0
    FILE *fp = NULL;
    cs_int8 str[2*CS_LOG_SIZE];
    cs_uint32 count_str = 0;

    fp = fopen(sys_log_file , "r");
    if(fp == NULL)
        return;

    memset(str , 0 , sizeof(str));
    while(fgets(str, sizeof(str), fp) != NULL)
    {
        cs_printf("%s",str);
        count_str++;
        if(count_str >= 30)
        {
            cs_thread_delay(10);
            count_str = 0;
        }
        memset(str , 0 , sizeof(str));
    }
    fclose(fp);
    return;
#else
    char str[MAX_SYS_LOG_LEN+1];
    int i;
    int cursor = 0;

    cs_mutex_lock(sys_log_mutex);
    for(i = 0 ; i < MAX_SYS_LOG_NUM ; i++)
    {
        cursor = (pSysLog->log_cursor + i)%MAX_SYS_LOG_NUM;
        if(pSysLog->log_buf[cursor][0] == '\0')
            continue;

        memset(str , 0 , MAX_SYS_LOG_LEN+1);
        memcpy(str , pSysLog->log_buf[cursor] , MAX_SYS_LOG_LEN);
        cs_printf("%s",str);
    }
    cs_mutex_unlock(sys_log_mutex);
    return;
#endif
}
コード例 #18
0
ファイル: log.c プロジェクト: Undrizzle/yolanda
void cs_buffer_dump(cs_int8 *comment , cs_int8 *buf , cs_int32 len)
{
#ifdef HAVE_LOG_THREAD
    cs_log_t *log;
    cs_int32 comment_len=0;
    cs_int32 buf_len = 0;

    log = (cs_log_t *)cs_mem_malloc(sys_log_ctrl.mempool_id);
    if(log == NULL)
        return;
    memset(log , 0 , sizeof(cs_log_t));
    log->log_level = -1;
    log->module_id = -1;
    log->time = cs_current_time();
    log->log_type = CS_LOG_HEX_TYPE;

    comment_len = (strlen(comment) >= CS_LOG_COMMENT_LEN)?CS_LOG_COMMENT_LEN-1:strlen(comment);
    buf_len = (len >= CS_LOG_SIZE-CS_LOG_COMMENT_LEN-4)?CS_LOG_SIZE-CS_LOG_COMMENT_LEN-4-1:len;
    log->a.b.len = buf_len;
    memcpy(log->a.b.comment , comment , comment_len);
    memcpy(log->a.b.buf , buf , buf_len);

    if(CS_E_OSAL_OK != cs_queue_put(sys_log_ctrl.log_queue_id, (void *)&log, sizeof(cs_uint32) , CS_OSAL_NO_WAIT , 0))
    {
        cs_mem_free((cs_uint8 *)log);
        return;
    }
#else
    int i;
    cs_printf("\n\n#%s ",comment);
    for(i = 0 ; i < len ; i++)
    {
        if(i%16 == 0)
        {
            cs_printf("\n");
            cs_printf("%06x  ", i);
        }

        cs_printf("%02x ",buf[i]);
    }
#endif

    return;
}
コード例 #19
0
ファイル: startup_cfg.c プロジェクト: Undrizzle/yolanda
sal_cmd_result_t startup_cfg_cmd_enc(int argc, char **argv)
{
    unsigned char flag = 0;
    tlv_header_t *pHeader = NULL;
    cs_uint8 active_cnt = 9;
    tlv_instance_t *pInst = (tlv_instance_t *)gStartupInst;

    if(argc != 3)
    {
        cs_printf("scfg enc enable  - Enable startup config encryption.\n");
        cs_printf("scfg enc disable - Disable startup config encryption.\n");
        return SAL_CMD_OK;
    }

    pHeader = (tlv_header_t *)pInst->base_address;
#ifdef HAVE_SCFG_PROTECTION
    active_cnt = pHeader->active;
    if(active_cnt == SCFG_MAX_CNT)
        active_cnt = 0;
    else
        active_cnt++;
#else
    active_cnt = SCFG_MAX_CNT;
#endif
    tlv_write_active(gStartupInst , active_cnt);

    if(!strcmp(argv[2],"enable"))
    {
        startup_cfg_enc_enable(1);
        tlv_read_flag(gStartupInst, &flag);
        flag = flag|TLV_CFG_ENC_FLAG;
        tlv_write_flag(gStartupInst, flag);
    }

    if(!strcmp(argv[2],"disable"))
    {
        startup_cfg_enc_enable(0);
        tlv_read_flag(gStartupInst, &flag);
        flag = flag&(~TLV_CFG_ENC_FLAG);
        tlv_write_flag(gStartupInst, flag);
    }

    return SAL_CMD_OK;
}
コード例 #20
0
ファイル: image.c プロジェクト: Undrizzle/yolanda
/* This function will exchange active blob and standby blob */
cs_uint32 iros_image_commit(void)
{
    blob_info_desc_t *active_blob_info;
    blob_info_desc_t *standby_blob_info;
    unsigned int act_blob_idex,sty_blob_idex;
    void *temp_ptr=NULL;

    /* used to back up first block data*/
    temp_ptr=iros_malloc(IROS_MID_SYS, flash_dev.info.super_block.block_size);
    if(NULL == temp_ptr){
        cs_printf("commit failed no memory\n");
        return CS_ERROR;
    }

    act_blob_idex = active_blob_get();
    active_blob_info = blob_info_tab[act_blob_idex];
    sty_blob_idex = 0x1 &(act_blob_idex + 1);
    /* back up standby data */
    memcpy(temp_ptr, blob_info_tab[sty_blob_idex], flash_dev.info.super_block.block_size);
    standby_blob_info = (blob_info_desc_t *)temp_ptr;
    standby_blob_info->is_not_confirmed = 0;
    standby_blob_info->xip_crc32 = 0xffffffff;
    if(standby_blob_info->upgrade_stamp < active_blob_info->upgrade_stamp)
        standby_blob_info->upgrade_stamp = active_blob_info->upgrade_stamp + 1;

    /* prepare to write flash without erase */
    if (flash_part_write_init(blob_part_tab[sty_blob_idex], 
                               (char*)blob_info_tab[sty_blob_idex])) { 
        flash_write((char *)blob_info_tab[sty_blob_idex], 
            (char *)temp_ptr, flash_dev.info.super_block.block_size);
        cs_printf("Cur blob committed..\n");

        flash_part_write_done(blob_part_tab[sty_blob_idex]);
    } 
    else {
        cs_printf("Cur blob commit failed..\n");
        iros_free(temp_ptr);
        return CS_ERROR;
    }

    iros_free(temp_ptr);
    return CS_OK;
    
}
コード例 #21
0
ファイル: cgi_cs_qos.c プロジェクト: Undrizzle/yolanda
cgi_status cgi_cs_qos_quen_cnt_get(cgi_handler_param_t * p)
{
    cs_int8 buff[CGI_MAX_BUFF_LEN];
    cs_int8 tmpBuff[CGI_MAX_BUFF_LEN];
    cs_callback_context_t     context;
    cs_uint8 que;
    cs_uint16 size;
    cs_uint8 us[8];
    cs_uint8 ds[8];

    for(que=0;que < 8;que++ )
    {
        if(epon_request_onu_que_size_get(context,0,0,0x01,que,&size) != CS_E_OK)
        {
          cs_printf("get qos max quen count error\n");
          return CS_E_ERROR;
        } else {
          us[que] = size;
        }
    }
    for(que=0;que<8;que++)
    {
        if(epon_request_onu_que_size_get(context,0,0,0x00,que,&size) != CS_E_OK)
        {
          cs_printf("get qos max quen count error\n");
          return CS_E_ERROR;
        } else {
          ds[que] = size;
        }
    }

    memset(buff, 0, sizeof(buff));
    sprintf(buff, "%s", "{");
    memset(tmpBuff, 0, sizeof(tmpBuff));
    sprintf(tmpBuff, "us_qCnt0:%d, us_qCnt1:%d, us_qCnt2:%d, us_qCnt3:%d, us_qCnt4:%d, us_qCnt5:%d, us_qCnt6:%d, us_qCnt7:%d, ds_qCnt0:%d, ds_qCnt1:%d, ds_qCnt2:%d, ds_qCnt3:%d, ds_qCnt4:%d, ds_qCnt5:%d, ds_qCnt6:%d, ds_qCnt7:%d",
        us[0],us[1],us[2],us[3],us[4],us[5],us[6],us[7],ds[0],ds[1],ds[2],ds[3],ds[4],ds[5],ds[6],ds[7]);
    strcat(buff, tmpBuff);
    strcat(buff," }");

    CGI_DEBUG("send buf = %s \n",buff);

    cgi_send_str(p, buff,strlen(buff));
    return CS_E_OK;
}
コード例 #22
0
ファイル: log.c プロジェクト: Undrizzle/yolanda
void cs_buf_print(cs_int8 *pbuf , cs_int32 len)
{
    cs_int32 i , j=0 ,k;
    cs_int8 strbuf[16];
    cs_int32 remain_len=0;

    cs_printf("\r\n==============================================================================");
    for(i = 0 ; i < len ; i++) {
        if(i%16 == 0) {
            j = 0;
            cs_printf("\r\n%08x: ",(cs_uint32)pbuf+i);
            memset(strbuf , 0 , sizeof(strbuf));
            remain_len = len - i;
        }
        strbuf[i%16] =  *((cs_int8 *)(pbuf+i));
        cs_printf("%02x ",*((cs_int8 *)(pbuf+i)));

        if(++j == 8)
            cs_printf(" ");

        if(remain_len == j && (remain_len%16) != 0)
        {
            if(j < 8) cs_printf(" ");
            for( ; j < 16 ; j++)
            {
                cs_printf("   ");
            }
        }

        if(j == 16)
        {
            remain_len = 0;
            cs_printf("; ");
            for(k = 0 ; k < 16 ; k++)
            {
                if(strbuf[k] >= ' ' && strbuf[k]<='~')
                    cs_printf("%c",strbuf[k]);
                else
                    cs_printf(".",strbuf[k]);
            }
        }
    }

    printf("\r\n\n");
    return;
}
コード例 #23
0
ファイル: startup_cfg.c プロジェクト: Undrizzle/yolanda
static void startup_config_dump_hex()
{
    int i;
    tlv_header_t *pHeader = NULL;
    tlv_instance_t *pInst = (tlv_instance_t *)gStartupInst;
    int total_len = 0;
    unsigned char *pbuf = NULL;

    pHeader = (tlv_header_t *)pInst->base_address;
    pbuf = (unsigned char *)pHeader;
    total_len = sizeof(tlv_header_t)+ntohl(pHeader->cfg_len);

    for(i = 0 ; i < total_len ; i++)
    {
        if(i%16 == 0)
            cs_printf("\n");
        cs_printf("%02x ",pbuf[i]);
    }
    cs_printf("\n");

    return;
}
コード例 #24
0
ファイル: log.c プロジェクト: Undrizzle/yolanda
void iros_log_level_proc(int level, int modid)
{
    int i = 0;

    if(level == -1)
    {
        for(i = 0; i < CS_MAX_MODULE_NUMBER; i++)
        {
            cs_printf("mod %02d: logging print level %1d\n", i, sys_log_ctrl.mod_info[i].print_level);
        }
        return;
    }

    if(modid == -1)
    {
        if(level >= 0 && level <= 7)
        {
            for (i = 0; i < CS_MAX_MODULE_NUMBER; i++)
            {
                sys_log_ctrl.mod_info[i].print_level = level;
            }
        }
        else
        {
            cs_printf("invalid logging print level %1d\n", level);
        }
        return;
    }

    if(modid < 0 || modid >= CS_MAX_MODULE_NUMBER || level < 0 || level > 7)
    {
        cs_printf("invalid mod id and level: %d %d\n", modid, level);
        return;
    }

    sys_log_ctrl.mod_info[modid].print_level = level;
    return;
}
コード例 #25
0
ファイル: oam_pty.c プロジェクト: Undrizzle/yolanda
int gw_comm_onu_msg_send(unsigned char GwOpcode, unsigned int SendSerNo, unsigned char *pSentData,const unsigned short SendDataSize, unsigned char  *pSessionIdfield)
{
	int ret = 0;
	if(0 == CommOnuMsgSend(GwOpcode, SendSerNo, pSentData, SendDataSize, pSessionIdfield))
	{
		ret = 0;
	}
	else
	{
		cs_printf("CommOnuMsgSend err!\n");
		ret = -1;
	}
	return ret;
}
コード例 #26
0
ファイル: log.c プロジェクト: Undrizzle/yolanda
void cs_sys_log_clr()
{
    int i;
    char fn[32];
    cs_mutex_lock(sys_log_mutex);
    if(sys_log_ctrl.log_fp != NULL)
    {
        fclose((FILE *)sys_log_ctrl.log_fp);
        cs_printf("Close current file\n");
        sys_log_ctrl.log_fp = NULL;
    }
    for(i = 0 ; i < MAX_LOG_FILE_NUM ; i++)
    {
        memset(fn,0,sizeof(fn));
        sprintf(fn,"/log/log%d.txt",i);
        remove(fn);
        cs_printf("Remove file %s\n",fn);
    }
    current_file = 0;
    fp_cursor = 0;
    cs_mutex_unlock(sys_log_mutex);
    return;
}
コード例 #27
0
ファイル: log.c プロジェクト: Undrizzle/yolanda
void cs_log_show(cs_log_t *log)
{
    cs_int8 buf[2*CS_LOG_SIZE];
    cs_int32 i;

    memset(buf , 0 , sizeof(buf));
    if(log->log_type == CS_LOG_MSG_TYPE)
    {
        for(i = 0 ; i < strlen(log->a.log_buf) ; i++)
        {
            if(log->a.log_buf[i] != '\r' && log->a.log_buf[i] != '\n')
                break;
            buf[i] = log->a.log_buf[i];
        }

        sprintf(buf+i , "[%08x:%s:%d] ",log->time,cs_sys_mod_desc_get(log->module_id) ,log->log_level);
        memcpy(buf+strlen(buf) , log->a.log_buf+i , strlen(log->a.log_buf)-i);
        cs_printf("%s",buf);
        return;
    }

    if(log->log_type == CS_LOG_HEX_TYPE)
    {
        cs_printf("\n\n#%s ",log->a.b.comment);
        for(i = 0 ; i < log->a.b.len ; i++)
        {
            if(i%16 == 0)
            {
                cs_printf("\n");
                cs_printf("%06x  ", i);
            }

            cs_printf("%02x ",log->a.b.buf[i]);
        }
        return;
    }
}
コード例 #28
0
ファイル: log.c プロジェクト: Undrizzle/yolanda
void cs_sys_log_dump()
{
    FILE *fp = NULL;
    cs_int8 str[2*CS_LOG_SIZE];
    cs_uint32 count_str = 0;
    int i;
    char fn[32];

    cs_mutex_lock(sys_log_mutex);
    for(i = 0 ; i < MAX_LOG_FILE_NUM ; i++)
    {
        memset(fn,0,sizeof(fn));
        sprintf(fn,"/log/log%d.txt",i);
        fp = fopen(fn , "r");
        if(fp == NULL)
            continue;

        cs_printf("==== %s ====\n",fn);
        memset(str , 0 , sizeof(str));
        while(fgets(str, sizeof(str), fp) != NULL)
        {
            cs_printf("%s",str);
            count_str++;
            if(count_str >= 30)
            {
                cs_thread_delay(10);
                count_str = 0;
            }
            memset(str , 0 , sizeof(str));
        }
        fclose(fp);
    }
    cs_mutex_unlock(sys_log_mutex);

    return;
}
コード例 #29
0
ファイル: telnetd.c プロジェクト: Undrizzle/yolanda
void telnetd_init()
{
    cs_uint32 telnet_thread_id;
    cs_uint32 ret;

    cs_uint32 telnet_wr_th_id;

    memset(&g_console, 0, sizeof(g_console));
    cs_semaphore_init(&g_console.rd_avail, "cosonle_rd_avail", 0, 0);
    cs_mutex_init(&g_console.lock, "console_lock", 0);

    g_console.full = 0;
    g_console.empty = 1;

    ret = cs_thread_create(&telnet_wr_th_id,
                           "telnet wrt",
                           (const void *)telnetd_wrt_thread_entry, (void *)0,
                           TELNETD_THREAD_STACKSIZE/2,
                           TELNETD_THREAD_PRIORITY+1,
                           0);

    ret = cs_thread_create(&telnet_thread_id,
                           TELENTD_THREAD_NAME,
                           (const void *)telnetd_thread_entry, (void *)0,
                           TELNETD_THREAD_STACKSIZE,
                           TELNETD_THREAD_PRIORITY,
                           0);
    if (ret != CS_E_OK)
    {
        cs_printf("telnetd thread failed to create\n");
    }
    else
    {
        cs_printf("telnetd thread created\n");
    }
}
コード例 #30
0
ファイル: game.c プロジェクト: he110world/libmeh_working
void c_testdraw()
{
	gbuf_color=rt_alloc(RT_4B, 0);
	gbuf_normal=rt_alloc(RT_4B, 0);
	gbuf_depth=rt_alloc(RT_DEPTH, 0);	

	cs_printf("color=%i, normal=%i, depth=%i\n", gbuf_color,gbuf_normal,gbuf_depth);

	float dx,dy=0,dz;
	dx=cvar_getf("strafespeed", NULL);
	dy=cvar_getf("verticalspeed", NULL);
	dz=cvar_getf("forwardspeed", NULL);
	float du=cvar_getf("spinspeed", NULL);
	cam3_movetg("testcam3", dx,dy,dz);
	cam3_update("testcam3", du, 1.0/60.0);
	cam3_use("testcam3");

	float modelview[16];
	glGetFloatv(GL_MODELVIEW_MATRIX, modelview);
	glGetFloatv(GL_PROJECTION_MATRIX, projection);
	invmat4(invproj, projection);
	invmat4(invmodelview, modelview);

	glEnable(GL_DEPTH_TEST);
	rnd_clearall();

	test_initgbuf();

	glDisable(GL_DEPTH_TEST);

//	test_motionblur();

//	test_dof2();
//	test_gaussianblur();

	color_tex[0]=gbuf_color;
	depth_tex[0]=gbuf_depth;
	filter_use("test.fil");

	vfs_use(-1);

	memcpy(prevmodelview, modelview, 16*sizeof(float));

	rt_free(gbuf_color);
	rt_free(gbuf_normal);
	rt_free(gbuf_depth);

}