2 /*******************************************************************
5 bth_inface.h - inline fce for data queue operation + list of fce
8 Copyright (C) 2006 by Petr Kovacik petr_kovacik@gmail.com
10 *******************************************************************/
12 #ifndef _ID_BTH_INFACE_H_
13 #define _ID_BTH_INFACE_H_
15 #define BTH_INFACE_CHANAL (1)
16 #define BTH_INFACE_BUF_LEN (70)
19 uint8_t *buf_beg; //start of adress structur
20 uint8_t *buf_end; //end of adress structur - beg+sizeof(struct)
21 uint8_t *ip; //actual position at queue
22 uint8_t *op; //position first unread char of queue
25 typedef struct bth_inface_info {
27 bth_inface_que_t bth_inface_que_in;
28 bth_inface_que_t bth_inface_que_out;
30 uint8_t bth_inface_buff_in[BTH_INFACE_BUF_LEN];
31 uint8_t bth_inface_buff_out[BTH_INFACE_BUF_LEN];
35 static inline int bth_inface_que_put(bth_inface_que_t *q, int c)
40 if(p==q->buf_end) p=q->buf_beg;
41 if(p==q->op) return -1;
46 /* get character from queue, if empty return -1 */
47 static inline int bth_inface_que_get(bth_inface_que_t *q)
52 if(p==q->ip) return -1;
54 if(p==q->buf_end) p=q->buf_beg;
59 bth_inface_info_t bth_inface_chan_array[BTH_INFACE_CHANAL];
61 int bth_inface_setup(int chan);
62 int bth_inface_sendch(int c, int chan);
63 int bth_inface_recch(int chan);
64 int bth_inface_sendstr(const char *s, int chan);
66 //int bth_inface_que_out_free(int chan);
67 //int bth_inface_que_in_ready(int chan);
68 //int bth_inface_setup(int chan);
70 int bth_inface_r_isr(int chan, int val);
71 int bth_inface_t_isr(int chan);
72 /* HACK: Include machine specific definitions */
74 #endif /* _ID_BTH_INFACE_H_ */