1 /*
2  $License:
3    Copyright 2011 InvenSense, Inc.
4 
5  Licensed under the Apache License, Version 2.0 (the "License");
6  you may not use this file except in compliance with the License.
7  You may obtain a copy of the License at
8 
9  http://www.apache.org/licenses/LICENSE-2.0
10 
11  Unless required by applicable law or agreed to in writing, software
12  distributed under the License is distributed on an "AS IS" BASIS,
13  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  See the License for the specific language governing permissions and
15  limitations under the License.
16   $
17  */
18 #ifndef INVENSENSE_INV_FIFO_HW_H__
19 #define INVENSENSE_INV_FIFO_HW_H__
20 
21 #include "mpu.h"
22 #include "mltypes.h"
23 #include "mlinclude.h"
24 #ifdef INV_INCLUDE_LEGACY_HEADERS
25 #include "mlFIFOHW_legacy.h"
26 #endif
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32     // This is the maximum amount of FIFO data we would read in one packet
33 #define MAX_FIFO_LENGTH             (256)
34     // This is the hardware size of the FIFO
35 #define FIFO_FOOTER_SIZE            (2)
36 
37     uint_fast16_t inv_get_fifo(uint_fast16_t length, unsigned char *buffer);
38     inv_error_t inv_get_fifo_status(void);
39     inv_error_t inv_get_fifo_length(uint_fast16_t * len);
40     short inv_get_fifo_count(void);
41     inv_error_t inv_reset_fifo(void);
42     void inv_init_fifo_hardare();
43     inv_error_t inv_read_fifo(unsigned char *data, uint_fast16_t len);
44 
45 #ifdef __cplusplus
46 }
47 #endif
48 #endif                          // INVENSENSE_INV_FIFO_HW_H__
49