1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Support for Intel Camera Imaging ISP subsystem.
4 * Copyright (c) 2015, Intel Corporation.
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License,
8 * version 2, as published by the Free Software Foundation.
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
16 #ifndef _HRT_HIVE_TYPES_H
17 #define _HRT_HIVE_TYPES_H
23 #define _HRTCAT3(m, n, o) m##n##o
24 #define HRTCAT3(m, n, o) _HRTCAT3(m, n, o)
28 #define _HRTCAT4(m, n, o, p) m##n##o##p
29 #define HRTCAT4(m, n, o, p) _HRTCAT4(m, n, o, p)
33 #define HRTMIN(a, b) (((a) < (b)) ? (a) : (b))
37 #define HRTMAX(a, b) (((a) > (b)) ? (a) : (b))
40 /* boolean data type */
41 typedef unsigned int hive_bool;
45 typedef char hive_int8;
46 typedef short hive_int16;
47 typedef int hive_int32;
48 typedef long long hive_int64;
50 typedef unsigned char hive_uint8;
51 typedef unsigned short hive_uint16;
52 typedef unsigned int hive_uint32;
53 typedef unsigned long long hive_uint64;
55 #define HRT_DATA_WIDTH 32
56 #define HRT_ADDRESS_WIDTH 64
57 #define HRT_DATA_BYTES (HRT_DATA_WIDTH / 8)
58 #define HRT_ADDRESS_BYTES (HRT_ADDRESS_WIDTH / 8)
59 #define SIZEOF_HRT_REG (HRT_DATA_WIDTH >> 3)
61 typedef hive_uint32 hrt_data;
62 typedef hive_uint64 hrt_address;
64 /* use 64 bit addresses in simulation, where possible */
65 typedef hive_uint64 hive_sim_address;
67 /* below is for csim, not for hrt, rename and move this elsewhere */
69 typedef unsigned int hive_uint;
70 typedef hive_uint32 hive_address;
71 typedef hive_address hive_slave_address;
72 typedef hive_address hive_mem_address;
75 typedef hive_uint hive_mmio_id;
76 typedef hive_mmio_id hive_slave_id;
77 typedef hive_mmio_id hive_port_id;
78 typedef hive_mmio_id hive_master_id;
79 typedef hive_mmio_id hive_mem_id;
80 typedef hive_mmio_id hive_dev_id;
81 typedef hive_mmio_id hive_fifo_id;
83 typedef hive_uint hive_hier_id;
84 typedef hive_hier_id hive_device_id;
85 typedef hive_device_id hive_proc_id;
86 typedef hive_device_id hive_cell_id;
87 typedef hive_device_id hive_host_id;
88 typedef hive_device_id hive_bus_id;
89 typedef hive_device_id hive_bridge_id;
90 typedef hive_device_id hive_fifo_adapter_id;
91 typedef hive_device_id hive_custom_device_id;
93 typedef hive_uint hive_slot_id;
94 typedef hive_uint hive_fu_id;
95 typedef hive_uint hive_reg_file_id;
96 typedef hive_uint hive_reg_id;
98 /* Streaming devices */
99 typedef hive_uint hive_outport_id;
100 typedef hive_uint hive_inport_id;
102 typedef hive_uint hive_msink_id;
105 typedef char *hive_program;
106 typedef char *hive_function;
108 #endif /* _HRT_HIVE_TYPES_H */