--- /dev/null
+/*******************************************************************\r
+ bluetooth library\r
+\r
+ l2cap.c - any inline fce for bth library and list of fce calling\r
+ from event complete\r
+\r
+ Copyright (C) 2006 by Petr Kovacik petr_kovacik@gmail.com\r
+\r
+ *******************************************************************/\r
+\r
+#ifndef INLINE_FCE_H\r
+#define INLINE_FCE_H\r
+ #include <string.h>\r
+\r
+/**/\r
+/*Search the list ba1 of the size num for bdadres ba2, if it is found, it's index is returned*/\r
+\r
+static inline int bth_seach_bdaddr(bdaddr_t *ba1, const bdaddr_t *ba2, int num)\r
+{\r
+ int i;\r
+ for(i=0; i<num; i++)\r
+ { if(memcmp(ba1,ba2+i,sizeof(bdaddr_t))==0){\r
+ return(i);\r
+ };\r
+ };\r
+ return(-1);\r
+};\r
+\r
+\r
+\r
+\r
+#ifdef BTH_LX\r
+\r
+\r
+static inline uint16_t __cpu_to_le16(uint16_t value)\r
+{\r
+ uint16_t pomoc=0;\r
+ pomoc=(value<<8)&0xff00;\r
+ value=(value>>8)&0x00ff;\r
+ return(value|pomoc);\r
+};\r
+\r
+static inline uint16_t __cpu_to_be16(uint16_t value)\r
+{\r
+ uint16_t pomoc=0;\r
+ pomoc=(value<<8)&0xff00;\r
+ value=(value>>8)&0x00ff;\r
+ return(value|pomoc);\r
+};\r
+\r
+static inline void store_le16(void *address, uint16_t value) //for u16 big endian\r
+{\r
+ uint16_t be;\r
+ be = __cpu_to_le16(value);\r
+// be = htobs(value);\r
+ memcpy(address, &be, sizeof(uint16_t));\r
+}\r
+\r
+static inline void store_be16(void *address, uint16_t value) //for u16 big endian\r
+ {\r
+ uint16_t be;\r
+ be = __cpu_to_be16(value);\r
+ memcpy(address, &be, sizeof(uint16_t));\r
+ }\r
+\r
+ \r
+ static inline void __bthtomc16(void *address, void *value)\r
+ {\r
+ memcpy(address, value+1, 1);\r
+ memcpy((uint8_t*)address+1, (uint8_t*)value, 1);\r
+ };\r
+\r
+\r
+#else\r
+static inline uint16_t __cpu_to_le16(uint16_t value)\r
+{\r
+ uint16_t pomoc=0;\r
+ return(value|pomoc);\r
+};\r
+\r
+\r
+static inline uint16_t __cpu_to_be16(uint16_t value)\r
+{\r
+ uint16_t pomoc=0;\r
+ pomoc=(value<<8)&0xff00;\r
+ value=(value>>8)&0x00ff;\r
+ return(value|pomoc);\r
+};\r
+\r
+static inline void store_le16(void *address, uint16_t value) //pro u16 s vyuzitim bigindianu\r
+{\r
+ uint16_t be;\r
+ be = __cpu_to_le16(value);\r
+// be = htobs(value);\r
+ memcpy(address, &be, sizeof(uint16_t));\r
+}\r
+\r
+static inline void store_be16(void *address, uint16_t value) //pro u16 s vyuzitim bigindianu\r
+ {\r
+ uint16_t be;\r
+ be = __cpu_to_le16(value);\r
+ memcpy(address, &be, sizeof(uint16_t));\r
+ }\r
+\r
+ static inline void __bthtomc16(void *address, void *value)\r
+ {\r
+// (uint16_t*)address=(uint16_t)*(uint16_t*)value;\r
+ memcpy(address, value, 2);\r
+// memcpy((uint8_t*)address+1, (uint8_t*)value, 1);\r
+ };\r
+\r
+\r
+#endif\r
+\r
+/********************************************************************/\r
+/********************************************************************/\r
+/********************************************************************/\r
+/********************************************************************/\r
+/********************************************************************/\r
+/********************************************************************/\r
+/********************************************************************/\r
+// ------------- COMMAND COMPLETE EVENT ---------------------------/\r
+\r
+int cmd_ev_none(uint8_t *bth_p, uint8_t size);\r
+/********************************************************************/\r
+/*********************** OGF = 0x01 ****************************/\r
+/*-------------------LINK CONTROL COMMANDS--------------------------*/\r
+/********************************************************************/\r
+int cmd_ev_01x000b(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_01x000d(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_01x000e(uint8_t *bth_p, uint8_t size);\r
+\r
+/********************************************************************/\r
+/*********************** OGF = 0x02 ****************************/\r
+/*-------------------LINK POLICY COMMANDS--------------------------*/\r
+/********************************************************************/\r
+int cmd_ev_02x0009(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_02x000C(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_02x000D(uint8_t *bth_p, uint8_t size);\r
+\r
+/********************************************************************/\r
+/*********************** OGF = 0x03 ****************************/\r
+/*--------------HOST CONTROLLER & BASEBAND COMMANDS-----------------*/\r
+/********************************************************************/\r
+int cmd_ev_03x0008(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0009(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x000d(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0011(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0012(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0014(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0015(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0017(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0019(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x001b(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x001d(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x001f(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0021(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0023(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0025(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0027(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0028(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0029(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x002b(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x002d(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x002e(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0036(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0037(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0038(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x0039(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x003b(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_03x003d(uint8_t *bth_p, uint8_t size);\r
+\r
+/********************************************************************/\r
+/*********************** OGF = 0x04 ****************************/\r
+/*-------------------INFORMATIONAL PARAMETERS-----------------------*/\r
+/********************************************************************/\r
+int cmd_ev_04x0001(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_04x0003(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_04x0005(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_04x0007(uint8_t *bth_p, uint8_t size);\r
+int cmd_ev_04x0009(uint8_t *bth_p, uint8_t size);\r
+\r
+\r
+#endif\r