1 /*******************************************************************
\r
4 l2cap.c - any inline fce for bth library and list of fce calling
\r
7 Copyright (C) 2006 by Petr Kovacik petr_kovacik@gmail.com
\r
9 *******************************************************************/
\r
11 #ifndef INLINE_FCE_H
\r
12 #define INLINE_FCE_H
\r
16 /*Search the list ba1 of the size num for bdadres ba2, if it is found, it's index is returned*/
\r
18 static inline int bth_seach_bdaddr(bdaddr_t *ba1, const bdaddr_t *ba2, int num)
\r
21 for(i=0; i<num; i++)
\r
22 { if(memcmp(ba1,ba2+i,sizeof(bdaddr_t))==0){
\r
35 static inline uint16_t __cpu_to_le16(uint16_t value)
\r
38 pomoc=(value<<8)&0xff00;
\r
39 value=(value>>8)&0x00ff;
\r
40 return(value|pomoc);
\r
43 static inline uint16_t __cpu_to_be16(uint16_t value)
\r
46 pomoc=(value<<8)&0xff00;
\r
47 value=(value>>8)&0x00ff;
\r
48 return(value|pomoc);
\r
51 static inline void store_le16(void *address, uint16_t value) //for u16 big endian
\r
54 be = __cpu_to_le16(value);
\r
55 // be = htobs(value);
\r
56 memcpy(address, &be, sizeof(uint16_t));
\r
59 static inline void store_be16(void *address, uint16_t value) //for u16 big endian
\r
62 be = __cpu_to_be16(value);
\r
63 memcpy(address, &be, sizeof(uint16_t));
\r
67 static inline void __bthtomc16(void *address, void *value)
\r
69 memcpy(address, value+1, 1);
\r
70 memcpy((uint8_t*)address+1, (uint8_t*)value, 1);
\r
75 static inline uint16_t __cpu_to_le16(uint16_t value)
\r
78 return(value|pomoc);
\r
82 static inline uint16_t __cpu_to_be16(uint16_t value)
\r
85 pomoc=(value<<8)&0xff00;
\r
86 value=(value>>8)&0x00ff;
\r
87 return(value|pomoc);
\r
90 static inline void store_le16(void *address, uint16_t value) //pro u16 s vyuzitim bigindianu
\r
93 be = __cpu_to_le16(value);
\r
94 // be = htobs(value);
\r
95 memcpy(address, &be, sizeof(uint16_t));
\r
98 static inline void store_be16(void *address, uint16_t value) //pro u16 s vyuzitim bigindianu
\r
101 be = __cpu_to_le16(value);
\r
102 memcpy(address, &be, sizeof(uint16_t));
\r
105 static inline void __bthtomc16(void *address, void *value)
\r
107 // (uint16_t*)address=(uint16_t)*(uint16_t*)value;
\r
108 memcpy(address, value, 2);
\r
109 // memcpy((uint8_t*)address+1, (uint8_t*)value, 1);
\r
115 /********************************************************************/
\r
116 /********************************************************************/
\r
117 /********************************************************************/
\r
118 /********************************************************************/
\r
119 /********************************************************************/
\r
120 /********************************************************************/
\r
121 /********************************************************************/
\r
122 // ------------- COMMAND COMPLETE EVENT ---------------------------/
\r
124 int cmd_ev_none(uint8_t *bth_p, uint8_t size);
\r
125 /********************************************************************/
\r
126 /*********************** OGF = 0x01 ****************************/
\r
127 /*-------------------LINK CONTROL COMMANDS--------------------------*/
\r
128 /********************************************************************/
\r
129 int cmd_ev_01x000b(uint8_t *bth_p, uint8_t size);
\r
130 int cmd_ev_01x000d(uint8_t *bth_p, uint8_t size);
\r
131 int cmd_ev_01x000e(uint8_t *bth_p, uint8_t size);
\r
133 /********************************************************************/
\r
134 /*********************** OGF = 0x02 ****************************/
\r
135 /*-------------------LINK POLICY COMMANDS--------------------------*/
\r
136 /********************************************************************/
\r
137 int cmd_ev_02x0009(uint8_t *bth_p, uint8_t size);
\r
138 int cmd_ev_02x000C(uint8_t *bth_p, uint8_t size);
\r
139 int cmd_ev_02x000D(uint8_t *bth_p, uint8_t size);
\r
141 /********************************************************************/
\r
142 /*********************** OGF = 0x03 ****************************/
\r
143 /*--------------HOST CONTROLLER & BASEBAND COMMANDS-----------------*/
\r
144 /********************************************************************/
\r
145 int cmd_ev_03x0008(uint8_t *bth_p, uint8_t size);
\r
146 int cmd_ev_03x0009(uint8_t *bth_p, uint8_t size);
\r
147 int cmd_ev_03x000d(uint8_t *bth_p, uint8_t size);
\r
148 int cmd_ev_03x0011(uint8_t *bth_p, uint8_t size);
\r
149 int cmd_ev_03x0012(uint8_t *bth_p, uint8_t size);
\r
150 int cmd_ev_03x0014(uint8_t *bth_p, uint8_t size);
\r
151 int cmd_ev_03x0015(uint8_t *bth_p, uint8_t size);
\r
152 int cmd_ev_03x0017(uint8_t *bth_p, uint8_t size);
\r
153 int cmd_ev_03x0019(uint8_t *bth_p, uint8_t size);
\r
154 int cmd_ev_03x001b(uint8_t *bth_p, uint8_t size);
\r
155 int cmd_ev_03x001d(uint8_t *bth_p, uint8_t size);
\r
156 int cmd_ev_03x001f(uint8_t *bth_p, uint8_t size);
\r
157 int cmd_ev_03x0021(uint8_t *bth_p, uint8_t size);
\r
158 int cmd_ev_03x0023(uint8_t *bth_p, uint8_t size);
\r
159 int cmd_ev_03x0025(uint8_t *bth_p, uint8_t size);
\r
160 int cmd_ev_03x0027(uint8_t *bth_p, uint8_t size);
\r
161 int cmd_ev_03x0028(uint8_t *bth_p, uint8_t size);
\r
162 int cmd_ev_03x0029(uint8_t *bth_p, uint8_t size);
\r
163 int cmd_ev_03x002b(uint8_t *bth_p, uint8_t size);
\r
164 int cmd_ev_03x002d(uint8_t *bth_p, uint8_t size);
\r
165 int cmd_ev_03x002e(uint8_t *bth_p, uint8_t size);
\r
166 int cmd_ev_03x0036(uint8_t *bth_p, uint8_t size);
\r
167 int cmd_ev_03x0037(uint8_t *bth_p, uint8_t size);
\r
168 int cmd_ev_03x0038(uint8_t *bth_p, uint8_t size);
\r
169 int cmd_ev_03x0039(uint8_t *bth_p, uint8_t size);
\r
170 int cmd_ev_03x003b(uint8_t *bth_p, uint8_t size);
\r
171 int cmd_ev_03x003d(uint8_t *bth_p, uint8_t size);
\r
173 /********************************************************************/
\r
174 /*********************** OGF = 0x04 ****************************/
\r
175 /*-------------------INFORMATIONAL PARAMETERS-----------------------*/
\r
176 /********************************************************************/
\r
177 int cmd_ev_04x0001(uint8_t *bth_p, uint8_t size);
\r
178 int cmd_ev_04x0003(uint8_t *bth_p, uint8_t size);
\r
179 int cmd_ev_04x0005(uint8_t *bth_p, uint8_t size);
\r
180 int cmd_ev_04x0007(uint8_t *bth_p, uint8_t size);
\r
181 int cmd_ev_04x0009(uint8_t *bth_p, uint8_t size);
\r