diff options
Diffstat (limited to 'src/vfs/inc/ant_rx_chardev.h')
-rw-r--r-- | src/vfs/inc/ant_rx_chardev.h | 194 |
1 files changed, 98 insertions, 96 deletions
diff --git a/src/vfs/inc/ant_rx_chardev.h b/src/vfs/inc/ant_rx_chardev.h index 526070c..a3481b0 100644 --- a/src/vfs/inc/ant_rx_chardev.h +++ b/src/vfs/inc/ant_rx_chardev.h @@ -1,96 +1,98 @@ -/* - * ANT Stack - * - * Copyright 2011 Dynastream Innovations - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/*******************************************************************************\ -* -* FILE NAME: ant_rx_chardev.h -* -* BRIEF: -* This file defines the receive thread function, the ant_rx_thread_info_t -* type for storing the -configuration- <state> of the receive thread, the -* ant_channel_info_t type for storing a channel's (transport path) -* configuration, and an enumeration of all ANT channels (transport paths). -* -* -\*******************************************************************************/ - -#ifndef __ANT_RX_NATIVE_H -#define __ANT_RX_NATIVE_H - -#include "ant_native.h" -#include "ant_driver_defines.h" - -/* same as HCI_MAX_EVENT_SIZE from hci.h, but hci.h is not included for vfs */ -#define ANT_HCI_MAX_MSG_SIZE 260 - -#define ANT_MSG_SIZE_OFFSET ((ANT_U8)0) -#define ANT_MSG_ID_OFFSET ((ANT_U8)1) -#define ANT_MSG_DATA_OFFSET ((ANT_U8)2) - -/* This struct defines the info passed to an rx thread */ -typedef struct { - /* Device path */ - const char *pcDevicePath; - /* File descriptor to read from */ - int iFd; - /* Callback to call with ANT packet */ - ANTNativeANTEventCb fnRxCallback; - /* Flow control response if channel supports it */ - ANT_U8 ucFlowControlResp; - /* Handle to flow control condition */ - pthread_cond_t *pstFlowControlCond; - /* Handle to flow control mutex */ - pthread_mutex_t *pstFlowControlLock; -#ifdef ANT_FLOW_RESEND - /* Length of message to resend on request from chip */ - ANT_U8 ucResendMessageLength; - /* The message to resend on request from chip */ - ANT_U8 *pucResendMessage; -#endif // ANT_FLOW_RESEND -} ant_channel_info_t; - -typedef enum { -#ifdef ANT_DEVICE_NAME // Single transport path - SINGLE_CHANNEL, -#else // Separate data/command paths - DATA_CHANNEL, - COMMAND_CHANNEL, -#endif // Separate data/command paths - NUM_ANT_CHANNELS -} ant_channel_type; - -typedef struct { - /* Thread handle */ - pthread_t stRxThread; - /* Exit condition */ - ANT_U8 ucRunThread; - /* Set state as resetting override */ - ANT_U8 ucChipResetting; - /* Handle to state change lock for crash cleanup */ - pthread_mutex_t *pstEnabledStatusLock; - /* ANT channels */ - ant_channel_info_t astChannels[NUM_ANT_CHANNELS]; -} ant_rx_thread_info_t; - -extern ANTNativeANTStateCb g_fnStateCallback; // TODO State callback should be inside ant_rx_thread_info_t. - -/* This is the rx thread function. It loops reading ANT packets until told to - * exit */ -void *fnRxThread(void *ant_rx_thread_info); - -#endif /* ifndef __ANT_RX_NATIVE_H */ - +/*
+ * ANT Stack
+ *
+ * Copyright 2011 Dynastream Innovations
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*******************************************************************************\
+*
+* FILE NAME: ant_rx_chardev.h
+*
+* BRIEF:
+* This file defines the receive thread function, the ant_rx_thread_info_t
+* type for storing the -configuration- <state> of the receive thread, the
+* ant_channel_info_t type for storing a channel's (transport path)
+* configuration, and an enumeration of all ANT channels (transport paths).
+*
+*
+\*******************************************************************************/
+
+#ifndef __ANT_RX_NATIVE_H
+#define __ANT_RX_NATIVE_H
+
+#include "ant_native.h"
+#include "ant_hci_defines.h"
+
+/* same as HCI_MAX_EVENT_SIZE from hci.h, but hci.h is not included for vfs */
+#define ANT_HCI_MAX_MSG_SIZE 260
+
+#define ANT_MSG_SIZE_OFFSET ((ANT_U8)0)
+#define ANT_MSG_ID_OFFSET ((ANT_U8)1)
+#define ANT_MSG_DATA_OFFSET ((ANT_U8)2)
+
+/* This struct defines the info passed to an rx thread */
+typedef struct {
+ /* Device path */
+ const char *pcDevicePath;
+ /* File descriptor to read from */
+ int iFd;
+ /* Callback to call with ANT packet */
+ ANTNativeANTEventCb fnRxCallback;
+ /* Flow control response if channel supports it */
+ ANT_U8 ucFlowControlResp;
+ /* Handle to flow control condition */
+ pthread_cond_t *pstFlowControlCond;
+ /* Handle to flow control mutex */
+ pthread_mutex_t *pstFlowControlLock;
+#ifdef ANT_FLOW_RESEND
+ /* Length of message to resend on request from chip */
+ ANT_U8 ucResendMessageLength;
+ /* The message to resend on request from chip */
+ ANT_U8 *pucResendMessage;
+#endif // ANT_FLOW_RESEND
+} ant_channel_info_t;
+
+typedef enum {
+#ifdef ANT_DEVICE_NAME // Single transport path
+ SINGLE_CHANNEL,
+#else // Separate data/command paths
+ DATA_CHANNEL,
+ COMMAND_CHANNEL,
+#endif // Separate data/command paths
+ NUM_ANT_CHANNELS
+} ant_channel_type;
+
+typedef struct {
+ /* Thread handle */
+ pthread_t stRxThread;
+ /* Exit condition */
+ ANT_U8 ucRunThread;
+ /* Set state as resetting override */
+ ANT_U8 ucChipResetting;
+ /* Handle to state change lock for crash cleanup */
+ pthread_mutex_t *pstEnabledStatusLock;
+ /* ANT channels */
+ ant_channel_info_t astChannels[NUM_ANT_CHANNELS];
+ /* Event file descriptor used to interrupt the poll() loop in the rx thread. */
+ int iRxShutdownEventFd;
+} ant_rx_thread_info_t;
+
+extern ANTNativeANTStateCb g_fnStateCallback; // TODO State callback should be inside ant_rx_thread_info_t.
+
+/* This is the rx thread function. It loops reading ANT packets until told to
+ * exit */
+void *fnRxThread(void *ant_rx_thread_info);
+
+#endif /* ifndef __ANT_RX_NATIVE_H */
+
|