10c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* 20c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project 30c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * 40c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License"); 50c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * you may not use this file except in compliance with the License. 60c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * You may obtain a copy of the License at 70c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * 80c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * http://www.apache.org/licenses/LICENSE-2.0 90c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * 100c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * Unless required by applicable law or agreed to in writing, software 110c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS, 120c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * See the License for the specific language governing permissions and 140c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * limitations under the License. 150c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi */ 160c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 170c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/**************************************************************************************** 180c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi * @file name: LVM_Types.h 190c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 200c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi*****************************************************************************************/ 210c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 220c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/ 230c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* */ 240c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Header file defining the standard LifeVibes types for use in the application layer */ 250c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* interface of all LifeVibes modules */ 260c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* */ 270c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/ 280c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 290c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#ifndef LVM_TYPES_H 300c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_TYPES_H 310c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 320c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#ifdef __cplusplus 330c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargiextern "C" { 340c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#endif /* __cplusplus */ 350c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 360c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 370c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/ 380c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* */ 390c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* definitions */ 400c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* */ 410c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/ 420c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 430c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_NULL 0 /* NULL pointer */ 440c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 450c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_TRUE 1 /* Booleans */ 460c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_FALSE 0 470c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 480c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MAXINT_8 127 /* Maximum positive integer size */ 490c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MAXINT_16 32767 500c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MAXINT_32 2147483647 510c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MAXENUM 2147483647 520c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 530c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MODULEID_MASK 0xFF00 /* Mask to extract the calling module ID 540c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi from callbackId */ 550c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_EVENTID_MASK 0x00FF /* Mask to extract the callback event from 560c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi callbackId */ 570c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 580c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Memory table*/ 590c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MEMREGION_PERSISTENT_SLOW_DATA 0 /* Offset to the instance memory region */ 600c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MEMREGION_PERSISTENT_FAST_DATA 1 /* Offset to the persistent data memory 610c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi region */ 620c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MEMREGION_PERSISTENT_FAST_COEF 2 /* Offset to the persistent coefficient 630c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi memory region */ 640c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#define LVM_MEMREGION_TEMPORARY_FAST 3 /* Offset to temporary memory region */ 650c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 660c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 670c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/ 680c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* */ 690c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Basic types */ 700c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* */ 710c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/ 720c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 730c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef char LVM_CHAR; /* ASCII character */ 740c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 750c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef char LVM_INT8; /* Signed 8-bit word */ 760c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef unsigned char LVM_UINT8; /* Unsigned 8-bit word */ 770c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 780c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef short LVM_INT16; /* Signed 16-bit word */ 790c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef unsigned short LVM_UINT16; /* Unsigned 16-bit word */ 800c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 810c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef long LVM_INT32; /* Signed 32-bit word */ 820c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef unsigned long LVM_UINT32; /* Unsigned 32-bit word */ 830c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 840c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 850c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/ 860c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* */ 870c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Standard Enumerated types */ 880c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* */ 890c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/ 900c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 910c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Operating mode */ 920c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef enum 930c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi{ 940c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_MODE_OFF = 0, 950c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_MODE_ON = 1, 960c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_MODE_DUMMY = LVM_MAXENUM 970c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi} LVM_Mode_en; 980c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 990c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1000c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Format */ 1010c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef enum 1020c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi{ 1030c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_STEREO = 0, 1040c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_MONOINSTEREO = 1, 1050c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_MONO = 2, 1060c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_SOURCE_DUMMY = LVM_MAXENUM 1070c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi} LVM_Format_en; 1080c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1090c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1100c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Word length */ 1110c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef enum 1120c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi{ 1130c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_16_BIT = 0, 1140c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_32_BIT = 1, 1150c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_WORDLENGTH_DUMMY = LVM_MAXENUM 1160c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi} LVM_WordLength_en; 1170c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1180c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1190c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* LVM sampling rates */ 1200c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef enum 1210c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi{ 1220c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_FS_8000 = 0, 1230c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_FS_11025 = 1, 1240c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_FS_12000 = 2, 1250c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_FS_16000 = 3, 1260c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_FS_22050 = 4, 1270c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_FS_24000 = 5, 1280c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_FS_32000 = 6, 1290c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_FS_44100 = 7, 1300c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_FS_48000 = 8, 1310c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_FS_INVALID = LVM_MAXENUM-1, 1320c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_FS_DUMMY = LVM_MAXENUM 1330c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi} LVM_Fs_en; 1340c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1350c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1360c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Memory Types */ 1370c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef enum 1380c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi{ 1390c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_PERSISTENT_SLOW_DATA = LVM_MEMREGION_PERSISTENT_SLOW_DATA, 1400c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_PERSISTENT_FAST_DATA = LVM_MEMREGION_PERSISTENT_FAST_DATA, 1410c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_PERSISTENT_FAST_COEF = LVM_MEMREGION_PERSISTENT_FAST_COEF, 1420c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_TEMPORARY_FAST = LVM_MEMREGION_TEMPORARY_FAST, 1430c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_MEMORYTYPE_DUMMY = LVM_MAXENUM 1440c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi} LVM_MemoryTypes_en; 1450c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1460c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1470c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Memory region definition */ 1480c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef struct 1490c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi{ 1500c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_UINT32 Size; /* Region size in bytes */ 1510c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_MemoryTypes_en Type; /* Region type */ 1520c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi void *pBaseAddress; /* Pointer to the region base address */ 1530c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi} LVM_MemoryRegion_st; 1540c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1550c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1560c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/ 1570c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* */ 1580c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* Standard Function Prototypes */ 1590c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* */ 1600c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/ 1610c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargitypedef LVM_INT32 (*LVM_Callback)(void *pCallbackData, /* Pointer to the callback 1620c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi data structure */ 1630c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi void *pGeneralPurpose, /* General purpose pointer 1640c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi (e.g. to a data structure 1650c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi needed in the callback) */ 1660c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi LVM_INT16 GeneralPurpose ); /* General purpose variable 1670c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi (e.g. to be used as callback ID) */ 1680c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1690c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1700c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/ 1710c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* */ 1720c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* End of file */ 1730c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/* */ 1740c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi/****************************************************************************************/ 1750c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1760c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#ifdef __cplusplus 1770c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi} 1780c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#endif /* __cplusplus */ 1790c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi 1800c1c027b0a0b386482d18fac0c35f2b7385d1924Dharmaray Kundargi#endif /* LVM_TYPES_H */ 181