util.h 3.42 KB
/**    
    @file     util.h
    @date     2009/1/15 ~
    @author   오재경 freefrug@falinux.com  FALinux.Co.,Ltd.
    @brief    단순한 유틸리티 함수들을 모아놓았다.
    
    @modify   
    @todo    
    @bug     
    @remark  
    @warning 
*/
//----------------------------------------------------------------------------


#ifndef _UTIL_HEADER_
#define _UTIL_HEADER_

#define EMBEDDED_LINUX

#ifdef MS_WIN32
    #undef EMBEDDED_LINUX
#endif


typedef long long msec_t;

/// @{
/// @brief  util.h 에서 제공하는 매크로 리스트
#define	   ALIGN_SIZE( v, as )		(((v+(as-1))/as)*as)

/// @}

#ifdef __cplusplus 
extern "C" { 
#endif 	

/// @{
/// @brief  util.h 에서 제공하는 함수 리스트

#ifdef EMBEDDED_LINUX

// 파일 관련
extern int    find_dev_major( char *driver_name );               /// 드라이버 이름으로 드라이버의 메이져번호를 얻는다.
extern int	  dev_open( char *fname, unsigned char major, unsigned char minor ); /// 디바이스 드라이버 노드파일을 연다.
extern int    exist_file( char *fname );                         /// 파일이나 디렉토리가 존재하는지 확인한다.
extern int    get_file_size( char *fname );                      /// 파일의 크기를 얻는다
extern int    tftp_download_file( char *ip, char *fname );       /// tftp shell 유틸리티를 사용하여 파일을 다운로드받는다.
extern int    tftp_upload_file  ( char *ip, char *fname );       /// tftp shell 유틸리티를 사용하여 파일을 업로드한다

// 시간 관련
extern unsigned long get_cur_usec(void);                         /// 현재의 usec 시간틱을 얻어온다.
extern void	         format_date_text( char *fmt, char *text );  /// 날짜와 시간을 문자열 형태로 돌려준다.
extern int           set_sys_time( int yyyy, int MM, int dd, int hh, int mm, int ss ); /// 시스템 시간을 설정한다.

// 문자열 관련
extern void   trimstr( char *line );                             /// 문자열에서 앞뒤의 특수문자와 공백문자를 제거한다.
extern int    item_value_parse( const char *line, char delim, char *item, char *val ); /// 문자열에서 특정 문자를 분리자로 사용하여 분리한다
extern void   bin_to_hex( char *hex, char *bin, int bcnt );      /// 바이너리 데이타를 헥사 문자열로 변환한다.

// 기타
extern int    log_printf( const char *log_file, const char *fmt, ...  );        /// 로그정보를 파일에 써 넣는다.
extern int	  is_rect_region( int x, int y, int sx, int sy, int wdt, int hgt ); /// 좌표가 사각영역안에 있는지 검사
extern int    get_myip( char *ip );                                             /// 자기 IP를 얻는다.
extern int    ping( char *host, int count );                     /// ping 명령을 수행하여 성공한 회수를 돌려준다.
extern int	  get_irq_count( int irq );                          /// 인터럽트 발생 횟수를 돌려준다
extern int	  get_mcu( void );                                   /// mcu 번호를 찾는다.

extern char   getchar_without_enter( void );					 /// 키보드 입력을 엔터없이 한문자씩 즉시 받는다.
extern void   print_buffer( char *buf, int count );              /// 버퍼를 헥사로 보여준다.
extern unsigned int strtosize( char *str );                      /// 문자열을 숫자로 변환한다. 숫자뒤의 단위까지 판단한다.
extern unsigned short checksum(void* buf, int len);				 /// 버퍼의 값을 16비트로 더하여 돌려준다.
extern void   msleep( int msec );								 /// msec 단위로 기다린다.

/// @}

#endif

extern msec_t        get_cur_msec(void);                         /// 현재의 msec 시간틱을 얻어온다.
extern unsigned long get_cur_sec(void);                          /// 현재의 sec 시간틱을 얻어온다.

#ifdef __cplusplus 
}
#endif 


#endif //