Esempio n. 1
0
int kal_log(int log_level,
            const char *file,
            int32 line,
            const char *fmt,
            ...)
{
   va_list ap;

    if (log_level < KAL_LL_FATAL)
        log_level = KAL_LL_FATAL;
    else if (log_level > KAL_LL_DEBUG)
        log_level = KAL_LL_DEBUG;

    if (log_level < KAL_LL_INFO)
        kal_printf("%s %s:%d: ", ll2str[log_level], file, line);

    va_start(ap, fmt);
    vprintf(fmt, ap);
    va_end(ap);

    if (log_level < KAL_LL_INFO)
        kal_printf("\n");

    return 0;
}
Esempio n. 2
0
static kal_int32 xml_generate_flash_text(kal_int8 hd, kal_char *text, kal_uint32 textlen)
{
    kal_uint32 length, len;
    kal_int32 ret;
    FS_HANDLE fhandle = -1;
    xml_generator_struct *p = NULL;


/* first to get xml text length */
    if(textlen == 0)/* text is in file */
    {
        fhandle = FS_Open((WCHAR*)text, FS_READ_ONLY);
        if (fhandle < 0)
        {
            return XG_E_FAIL;
        }
        ret = FS_GetFileSize(fhandle, &length);
	if (ret == FS_FILE_NOT_FOUND)
	{
	    return XG_E_FILE_NOT_FOUND;
	}
        if (ret < 0)
        {
            FS_Close(fhandle);
            return XG_E_FAIL;
        }       
    }
    else /* text is in buffer */
    {
        length = textlen;
    }

    p = &(xg_array[hd]);

        
/* then write xml text to dest */
    if(p->buf != NULL)     /* write xml text to buffer */    
    {
        /* verify if over-buffer */
        if(p->curlen+length > p->buflen)
        {
            if(fhandle != -1)
            {
                FS_Close(fhandle);
            }
            ASSERT(0);
            kal_printf("buffer to save will be overflow!!!!\r\n");
            return XG_E_OVER_BUFFER;            
        }
        if (textlen != 0) /* text is in buffer, write xml text from buffer to buffer */
        {
            memcpy(p->buf+p->curlen, text, textlen);
            len = textlen;
            ret = 0;
        }
        else /* text is in file, write xml text from file to buffer */
        {
            ret = xml_generate_write_filetobuf(p->buf+p->curlen, fhandle, &len);
            FS_Close(fhandle);
        }
    }
    else /* write xml text to file */
    {
        
        if (textlen != 0) /* text is in buffer, write xml text from buffer to file */
        {
            
              ret = FS_Write(p->file, text, textlen, &len);
              if(ret == FS_DISK_FULL)
        {
        	return XG_E_LACK_DISK;
        }
           
            
        }
        else    /* text is in file, write xml text from file to file */
        {
            ret = xml_generate_write_filetofile(p->file, fhandle, &len);
            FS_Close(fhandle);     
        }
    }
    if (ret < 0)
    {
        return ret;
    }  
    else
    {
        
        p->curlen += len;
        return len; 
    }      
}