| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Support for Intel Camera Imaging ISP subsystem. |
| * Copyright (c) 2015, Intel Corporation. |
| * |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms and conditions of the GNU General Public License, |
| * version 2, as published by the Free Software Foundation. |
| * |
| * This program is distributed in the hope it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
| * more details. |
| */ |
| |
| #ifndef _HRT_HIVE_TYPES_H |
| #define _HRT_HIVE_TYPES_H |
| |
| #include "version.h" |
| #include "defs.h" |
| |
| #ifndef HRTCAT3 |
| #define _HRTCAT3(m, n, o) m##n##o |
| #define HRTCAT3(m, n, o) _HRTCAT3(m, n, o) |
| #endif |
| |
| #ifndef HRTCAT4 |
| #define _HRTCAT4(m, n, o, p) m##n##o##p |
| #define HRTCAT4(m, n, o, p) _HRTCAT4(m, n, o, p) |
| #endif |
| |
| #ifndef HRTMIN |
| #define HRTMIN(a, b) (((a) < (b)) ? (a) : (b)) |
| #endif |
| |
| #ifndef HRTMAX |
| #define HRTMAX(a, b) (((a) > (b)) ? (a) : (b)) |
| #endif |
| |
| /* boolean data type */ |
| typedef unsigned int hive_bool; |
| #define hive_false 0 |
| #define hive_true 1 |
| |
| typedef char hive_int8; |
| typedef short hive_int16; |
| typedef int hive_int32; |
| typedef long long hive_int64; |
| |
| typedef unsigned char hive_uint8; |
| typedef unsigned short hive_uint16; |
| typedef unsigned int hive_uint32; |
| typedef unsigned long long hive_uint64; |
| |
| #define HRT_DATA_WIDTH 32 |
| #define HRT_ADDRESS_WIDTH 64 |
| #define HRT_DATA_BYTES (HRT_DATA_WIDTH / 8) |
| #define HRT_ADDRESS_BYTES (HRT_ADDRESS_WIDTH / 8) |
| #define SIZEOF_HRT_REG (HRT_DATA_WIDTH >> 3) |
| |
| typedef hive_uint32 hrt_data; |
| typedef hive_uint64 hrt_address; |
| |
| /* use 64 bit addresses in simulation, where possible */ |
| typedef hive_uint64 hive_sim_address; |
| |
| /* below is for csim, not for hrt, rename and move this elsewhere */ |
| |
| typedef unsigned int hive_uint; |
| typedef hive_uint32 hive_address; |
| typedef hive_address hive_slave_address; |
| typedef hive_address hive_mem_address; |
| |
| /* MMIO devices */ |
| typedef hive_uint hive_mmio_id; |
| typedef hive_mmio_id hive_slave_id; |
| typedef hive_mmio_id hive_port_id; |
| typedef hive_mmio_id hive_master_id; |
| typedef hive_mmio_id hive_mem_id; |
| typedef hive_mmio_id hive_dev_id; |
| typedef hive_mmio_id hive_fifo_id; |
| |
| typedef hive_uint hive_hier_id; |
| typedef hive_hier_id hive_device_id; |
| typedef hive_device_id hive_proc_id; |
| typedef hive_device_id hive_cell_id; |
| typedef hive_device_id hive_host_id; |
| typedef hive_device_id hive_bus_id; |
| typedef hive_device_id hive_bridge_id; |
| typedef hive_device_id hive_fifo_adapter_id; |
| typedef hive_device_id hive_custom_device_id; |
| |
| typedef hive_uint hive_slot_id; |
| typedef hive_uint hive_fu_id; |
| typedef hive_uint hive_reg_file_id; |
| typedef hive_uint hive_reg_id; |
| |
| /* Streaming devices */ |
| typedef hive_uint hive_outport_id; |
| typedef hive_uint hive_inport_id; |
| |
| typedef hive_uint hive_msink_id; |
| |
| /* HRT specific */ |
| typedef char *hive_program; |
| typedef char *hive_function; |
| |
| #endif /* _HRT_HIVE_TYPES_H */ |