151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick/******************************************************************************
24908247643e9e97852e847c00bfe7c4259279538Ray Essick *
34908247643e9e97852e847c00bfe7c4259279538Ray Essick * Copyright (C) 2018 The Android Open Source Project
44908247643e9e97852e847c00bfe7c4259279538Ray Essick *
54908247643e9e97852e847c00bfe7c4259279538Ray Essick * Licensed under the Apache License, Version 2.0 (the "License");
64908247643e9e97852e847c00bfe7c4259279538Ray Essick * you may not use this file except in compliance with the License.
74908247643e9e97852e847c00bfe7c4259279538Ray Essick * You may obtain a copy of the License at:
84908247643e9e97852e847c00bfe7c4259279538Ray Essick *
94908247643e9e97852e847c00bfe7c4259279538Ray Essick * http://www.apache.org/licenses/LICENSE-2.0
104908247643e9e97852e847c00bfe7c4259279538Ray Essick *
114908247643e9e97852e847c00bfe7c4259279538Ray Essick * Unless required by applicable law or agreed to in writing, software
124908247643e9e97852e847c00bfe7c4259279538Ray Essick * distributed under the License is distributed on an "AS IS" BASIS,
134908247643e9e97852e847c00bfe7c4259279538Ray Essick * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
144908247643e9e97852e847c00bfe7c4259279538Ray Essick * See the License for the specific language governing permissions and
154908247643e9e97852e847c00bfe7c4259279538Ray Essick * limitations under the License.
164908247643e9e97852e847c00bfe7c4259279538Ray Essick *
1751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick *****************************************************************************
184908247643e9e97852e847c00bfe7c4259279538Ray Essick * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
1951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick*/
2051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
2151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#ifndef IMPD_TYPE_DEF_H
2251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define IMPD_TYPE_DEF_H
2351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
2451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick/****************************************************************************/
254908247643e9e97852e847c00bfe7c4259279538Ray Essick/*     types               type define    prefix        examples      bytes */
2651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick/************************  ***********    ******    ****************  ***** */
27b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef char CHAR8;   /* c       CHAR8    c_name     1   */
28b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef char* pCHAR8; /* pc      pCHAR8   pc_nmae    1   */
2951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
30b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed char WORD8;   /* b       WORD8    b_name     1   */
31b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed char* pWORD8; /* pb      pWORD8   pb_nmae    1   */
3251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
33b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned char UWORD8;   /* ub      UWORD8   ub_count   1   */
34b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned char* pUWORD8; /* pub     pUWORD8  pub_count  1   */
3551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
36b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed short WORD16;      /* s       WORD16   s_count    2   */
37b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed short* pWORD16;    /* ps      pWORD16  ps_count   2   */
38b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned short UWORD16;   /* us      UWORD16  us_count   2   */
39b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned short* pUWORD16; /* pus     pUWORD16 pus_count  2   */
4051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
41b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed int WORD24;      /* k       WORD24   k_count    3   */
42b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed int* pWORD24;    /* pk      pWORD24  pk_count   3   */
43b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned int UWORD24;   /* uk      UWORD24  uk_count   3   */
44b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned int* pUWORD24; /* puk     pUWORD24 puk_count  3   */
4551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
46b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed int WORD32;      /* i       WORD32   i_count    4   */
47b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed int* pWORD32;    /* pi      pWORD32  pi_count   4   */
48b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned int UWORD32;   /* ui      UWORD32  ui_count   4   */
49b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned int* pUWORD32; /* pui     pUWORD32 pui_count  4   */
5051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
5151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#ifdef WIN32
5251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#ifndef ECLIPSE
53b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed __int64 WORD40;      /* m       WORD40   m_count        5   */
54b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed __int64* pWORD40;    /* pm      pWORD40  pm_count   5   */
55b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned __int64 UWORD40;   /* um      UWORD40  um_count   5   */
56b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned __int64* pUWORD40; /* pum     pUWORD40 pum_count  5   */
57b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuri
58b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed __int64 WORD64;      /* h       WORD64   h_count        8   */
59b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed __int64* pWORD64;    /* ph      pWORD64  ph_count   8   */
60b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned __int64 UWORD64;   /* uh      UWORD64  uh_count   8   */
61b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned __int64* pUWORD64; /* puh     pUWORD64 puh_count  8   */
6251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#else
63b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed long long WORD40;      /* m       WORD40   m_count        5   */
64b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed long long* pWORD40;    /* pm      pWORD40  pm_count   5   */
65b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned long long UWORD40;   /* um      UWORD40  um_count   5   */
66b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned long long* pUWORD40; /* pum     pUWORD40 pum_count  5   */
67b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuri
68b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed long long WORD64;      /* h       WORD64   h_count        8   */
69b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed long long* pWORD64;    /* ph      pWORD64  ph_count   8   */
70b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned long long UWORD64;   /* uh      UWORD64  uh_count   8   */
71b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned long long* pUWORD64; /* puh     pUWORD64 puh_count  8   */
7251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#endif
7351aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#else
7451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
75b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed long long WORD40;      /* m       WORD40   m_count        5   */
76b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed long long* pWORD40;    /* pm      pWORD40  pm_count   5   */
77b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned long long UWORD40;   /* um      UWORD40  um_count   5   */
78b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned long long* pUWORD40; /* pum     pUWORD40 pum_count  5   */
7951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
80b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed long long WORD64;      /* h       WORD64   h_count        8   */
81b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed long long* pWORD64;    /* ph      pWORD64  ph_count   8   */
82b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned long long UWORD64;   /* uh      UWORD64  uh_count   8   */
83b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned long long* pUWORD64; /* puh     pUWORD64 puh_count  8   */
8451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
8551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#endif
8651aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
87b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef float FLOAT32;    /* f       FLOAT32  f_count    4   */
88b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef float* pFLOAT32;  /* pf      pFLOAT32 pf_count   4   */
89b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef double FLOAT64;   /* d       UFLOAT64 d_count    8   */
90b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef double* pFlOAT64; /* pd      pFLOAT64 pd_count   8   */
9151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
92b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef void VOID;   /* v       VOID     v_flag     4   */
93b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef void* pVOID; /* pv      pVOID    pv_flag    4   */
9451aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
9551aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick/* variable size types: platform optimized implementation */
96b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed int BOOL;       /* bool    BOOL     bool_true      */
97b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned int UBOOL;    /* ubool   BOOL     ubool_true     */
98b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed int FLAG;       /* flag    FLAG     flag_false     */
99b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned int UFLAG;    /* uflag   FLAG     uflag_false    */
100b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed int LOOPIDX;    /* lp      LOOPIDX  lp_index       */
101b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned int ULOOPIDX; /* ulp     SLOOPIDX ulp_index      */
102b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef signed int WORD;       /* lp      LOOPIDX  lp_index       */
103b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef unsigned int UWORD;    /* ulp     SLOOPIDX ulp_index      */
104b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuri
105b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef LOOPIDX LOOPINDEX;   /* lp    LOOPIDX  lp_index       */
106b3226ce6f80c78946aa3190cec158fb9852272eaRamesh Katuritypedef ULOOPIDX ULOOPINDEX; /* ulp   SLOOPIDX ulp_index      */
10751aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
10851aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define SIZE_T size_t
10951aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
11051aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#define PLATFORM_INLINE __inline
11151aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick
11251aa06e124ba688ca810b25ee0b5bb66678aac14Ray Essick#endif
113