fabind.h 2.16 KB
/**    
    @file     fabind.h
    @date     2008/10/08
    @author   오재경 freefrug@falinux.com  FALinux.Co.,Ltd.
    @brief    fa-bind 드라이버를 사용하기 위한 API 를 구현한다..
              
    
    @todo     
    @bug     
    @remark  
    @warning 
*/
//----------------------------------------------------------------------------
#ifndef _FABIND_H_
#define _FABIND_H_

#include <fa-bind-ioctl.h>

typedef enum { MSG_HOWTO_NORMAL   = SR_TYPE_NORMAL, 
	           MSG_HOWTO_EXPRESS  = SR_TYPE_EXPRESS,  
	           MSG_HOWTO_EMERENCY = SR_TYPE_EMERENCY } msg_howto_t;


#define   FABIND_LAST_RECV_PORT     0x7fff0000


#endif // _FABIND_H_


#ifdef __cplusplus 
extern "C" { 
#endif 	

/// @{
/// @brief  fabind 객체 함수 리스트 
extern poll_obj_t  *fabind_open( int port, int group, int recv_queue_count );          /// fabind 드라이버 열고 객체를 초기화한다.
extern void         fabind_close( poll_obj_t *obj );                                   /// fabind 객체를 해제한다.
extern poll_obj_t  *fabind_get_byport( int port );                                     /// fabind 객체를 포트번호로 찾는다.
extern int          fabind_write( poll_obj_t *obj, int port, char *buf, int len );     /// fabind 를 통해 데이타를 전송한다.
extern int          fabind_read( poll_obj_t *obj, char *buf, int len, int *need_ack ); /// fabind 를 통해 데이타를 읽는다.
extern int          fabind_write_and_response( poll_obj_t *obj, int port, char *tx_buf, char *rx_buf, int tx_cnt, int rx_cnt ); /// fabind 를 통해 데이타를 전송한 후 응답을 받는다.
extern int          fabind_write_group( poll_obj_t *obj, int grp_port, char *buf, int len ); ///  fabind 를 통해 그룹단위로 데이타를 전송한다.
extern int          fabind_get_recv_port( poll_obj_t *obj );                           /// fabind 를 통해 들어온 포트번호를 얻는다.

extern int          fabind_write_timeout( poll_obj_t *obj, int port, char *buf, int len, int timeout_sec ); /// fabind 를 통해 데이타를 시간을 감시하며 전송한다.
/// @}

#ifdef __cplusplus 
}
#endif