19b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney/** @file
29b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael KinneyCore types used in Mrc.
39b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney
49b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael KinneyCopyright (c) 2013-2015 Intel Corporation.
59b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney
69b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael KinneyThis program and the accompanying materials
79b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneyare licensed and made available under the terms and conditions of the BSD License
89b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneywhich accompanies this distribution.  The full text of the license may be found at
99b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneyhttp://opensource.org/licenses/bsd-license.php
109b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney
119b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael KinneyTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
129b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael KinneyWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
139b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney
149b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney**/
159b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney#ifndef __MRC_CORE_TYPES_H
169b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney#define __MRC_CORE_TYPES_H
179b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney
189b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneytypedef char char_t;
199b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneytypedef unsigned char uint8_t;
209b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneytypedef short int16_t;
219b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneytypedef unsigned short uint16_t;
229b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneytypedef int int32_t;
239b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneytypedef unsigned int uint32_t;
249b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneytypedef unsigned char bool;
259b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneytypedef unsigned int size_t;
269b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney
279b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney#ifdef ASM_INC
289b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney// Unfortunately h2inc has issue with long long
299b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneytypedef struct uint64_s
309b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney{
319b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney  uint32_t lo;
329b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney  uint32_t hi;
339b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney}uint64_t;
349b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney#else
359b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneytypedef unsigned long long uint64_t;
369b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney#endif
379b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney
389b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney#ifdef SIM
399b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney// Native word length is 64bit in simulation environment
409b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneytypedef uint64_t uintn_t;
419b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney#else
429b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney// Quark is 32bit
439b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinneytypedef uint32_t uintn_t;
449b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney#endif
459b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney
469b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney#define PTR32(a)  ((volatile uint32_t*)(uintn_t)(a))
479b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney
489b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney#endif
499b6bbcdbfdf5e54c6d1ed538ea8076d0858fb164Michael Kinney
50