17c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*
27c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project
37c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
47c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License");
57c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * you may not use this file except in compliance with the License.
67c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * You may obtain a copy of the License at
77c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
87c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *      http://www.apache.org/licenses/LICENSE-2.0
97c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Unless required by applicable law or agreed to in writing, software
117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS,
127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * See the License for the specific language governing permissions and
147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * limitations under the License.
157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/****************************************************************************************
187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @file name:          LVM_Types.h
197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*****************************************************************************************/
217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/****************************************************************************************/
237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*                                                                                      */
247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*  Header file defining the standard LifeVibes types for use in the application layer  */
257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*  interface of all LifeVibes modules                                                  */
267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*                                                                                      */
277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/****************************************************************************************/
287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef LVM_TYPES_H
307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_TYPES_H
317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus
337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern "C" {
347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus */
357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/****************************************************************************************/
387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*                                                                                      */
397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*  definitions                                                                         */
407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*                                                                                      */
417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/****************************************************************************************/
427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_NULL                0                   /* NULL pointer */
447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_TRUE                1                   /* Booleans */
467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_FALSE               0
477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_MAXINT_8            127                 /* Maximum positive integer size */
497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_MAXINT_16           32767
507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_MAXINT_32           2147483647
517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_MAXENUM             2147483647
527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_MODULEID_MASK       0xFF00              /* Mask to extract the calling module ID
547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                        from callbackId */
557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_EVENTID_MASK        0x00FF              /* Mask to extract the callback event from
567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                         callbackId */
577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Memory table*/
597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_MEMREGION_PERSISTENT_SLOW_DATA      0   /* Offset to the instance memory region */
607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_MEMREGION_PERSISTENT_FAST_DATA      1   /* Offset to the persistent data memory
617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                        region */
627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_MEMREGION_PERSISTENT_FAST_COEF      2   /* Offset to the persistent coefficient
637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                        memory region */
647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define LVM_MEMREGION_TEMPORARY_FAST            3   /* Offset to temporary memory region */
657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/****************************************************************************************/
687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*                                                                                      */
697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*  Basic types                                                                         */
707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*                                                                                      */
717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/****************************************************************************************/
727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef     char                LVM_CHAR;           /* ASCII character */
747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef     char                LVM_INT8;           /* Signed 8-bit word */
767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef     unsigned char       LVM_UINT8;          /* Unsigned 8-bit word */
777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef     short               LVM_INT16;          /* Signed 16-bit word */
797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef     unsigned short      LVM_UINT16;         /* Unsigned 16-bit word */
807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef     long                LVM_INT32;          /* Signed 32-bit word */
827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef     unsigned long       LVM_UINT32;         /* Unsigned 32-bit word */
837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/****************************************************************************************/
867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*                                                                                      */
877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*  Standard Enumerated types                                                           */
887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*                                                                                      */
897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/****************************************************************************************/
907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Operating mode */
927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_MODE_OFF    = 0,
957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_MODE_ON     = 1,
967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_MODE_DUMMY  = LVM_MAXENUM
977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} LVM_Mode_en;
987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Format */
1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_STEREO          = 0,
1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_MONOINSTEREO    = 1,
1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_MONO            = 2,
1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_SOURCE_DUMMY    = LVM_MAXENUM
1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} LVM_Format_en;
1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Word length */
1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_16_BIT      = 0,
1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_32_BIT      = 1,
1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_WORDLENGTH_DUMMY = LVM_MAXENUM
1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} LVM_WordLength_en;
1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* LVM sampling rates */
1207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
1217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_FS_8000  = 0,
1237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_FS_11025 = 1,
1247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_FS_12000 = 2,
1257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_FS_16000 = 3,
1267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_FS_22050 = 4,
1277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_FS_24000 = 5,
1287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_FS_32000 = 6,
1297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_FS_44100 = 7,
1307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_FS_48000 = 8,
1317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_FS_INVALID = LVM_MAXENUM-1,
1327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_FS_DUMMY = LVM_MAXENUM
1337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} LVM_Fs_en;
1347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Memory Types */
1377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
1387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_PERSISTENT_SLOW_DATA    = LVM_MEMREGION_PERSISTENT_SLOW_DATA,
1407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_PERSISTENT_FAST_DATA    = LVM_MEMREGION_PERSISTENT_FAST_DATA,
1417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_PERSISTENT_FAST_COEF    = LVM_MEMREGION_PERSISTENT_FAST_COEF,
1427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_TEMPORARY_FAST          = LVM_MEMREGION_TEMPORARY_FAST,
1437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_MEMORYTYPE_DUMMY        = LVM_MAXENUM
1447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} LVM_MemoryTypes_en;
1457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Memory region definition */
1487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
1497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_UINT32                  Size;                   /* Region size in bytes */
1517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    LVM_MemoryTypes_en          Type;                   /* Region type */
1527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    void                        *pBaseAddress;          /* Pointer to the region base address */
1537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} LVM_MemoryRegion_st;
1547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/****************************************************************************************/
1577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*                                                                                      */
1587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*  Standard Function Prototypes                                                        */
1597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*                                                                                      */
1607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/****************************************************************************************/
1617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef LVM_INT32 (*LVM_Callback)(void          *pCallbackData,     /* Pointer to the callback
1627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                     data structure */
1637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                  void          *pGeneralPurpose,   /* General purpose pointer
1647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                    (e.g. to a data structure
1657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                    needed in the callback) */
1667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                  LVM_INT16     GeneralPurpose );   /* General purpose variable
1677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                  (e.g. to be used as callback ID) */
1687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/****************************************************************************************/
1717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*                                                                                      */
1727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*  End of file                                                                         */
1737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*                                                                                      */
1747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/****************************************************************************************/
1757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus
1777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi}
1787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus */
1797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif  /* LVM_TYPES_H */
181