From fb4face86ad9f58ea0410c3633fda211836b7df5 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 10 Oct 2017 13:25:45 -0700 Subject: [PATCH] broadcom/vc5: Introduce v3dx_macros.h and v3dx_pack.h headers. This will be used by vc5 for prefixing functions and including the pack header in v3d-version-dependent code, following the model of anv. --- src/broadcom/.gitignore | 2 +- src/broadcom/cle/v3dx_pack.h | 42 +++++++++++++++++++++++++++++ src/broadcom/common/v3d_macros.h | 45 ++++++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 src/broadcom/cle/v3dx_pack.h create mode 100644 src/broadcom/common/v3d_macros.h diff --git a/src/broadcom/.gitignore b/src/broadcom/.gitignore index 92edd58f8c9..66ab6862cf9 100644 --- a/src/broadcom/.gitignore +++ b/src/broadcom/.gitignore @@ -1,3 +1,3 @@ cle/v3d_xml.h -cle/*_pack.h +cle/v3d_packet_v*_pack.h qpu/tests/qpu_disasm diff --git a/src/broadcom/cle/v3dx_pack.h b/src/broadcom/cle/v3dx_pack.h new file mode 100644 index 00000000000..af8ed0881f8 --- /dev/null +++ b/src/broadcom/cle/v3dx_pack.h @@ -0,0 +1,42 @@ +/* + * Copyright © 2015 Intel Corporation + * Copyright © 2015 Broadcom + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef V3DX_PACK_H +#define V3DX_PACK_H + +#ifndef V3D_VERSION +# error "The V3D_VERSION macro must be defined" +#endif + +#if (V3D_VERSION == 21) +# include "cle/v3d_packet_v21_pack.h" +#elif (V3D_VERSION == 33) +# include "cle/v3d_packet_v33_pack.h" +#elif (V3D_VERSION == 41) +# include "cle/v3d_packet_v41_pack.h" +#else +# error "Need to add a pack header include for this v3d version" +#endif + +#endif /* V3DX_PACK_H */ diff --git a/src/broadcom/common/v3d_macros.h b/src/broadcom/common/v3d_macros.h new file mode 100644 index 00000000000..6ba8e7da10e --- /dev/null +++ b/src/broadcom/common/v3d_macros.h @@ -0,0 +1,45 @@ +/* + * Copyright © 2015 Intel Corporation + * Copyright © 2015 Broadcom + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef V3DX_MACROS_H +#define V3DX_MACROS_H + +#ifndef V3D_VERSION +# error "The V3D_VERSION macro must be defined" +#endif + +#if (V3D_VERSION == 21) +# define V3DX(x) V3D21_##x +# define v3dX(x) v3d21_##x +#elif (V3D_VERSION == 33) +# define V3DX(x) V3D33_##x +# define v3dX(x) v3d33_##x +#elif (V3D_VERSION == 41) +# define V3DX(x) V3D41_##x +# define v3dX(x) v3d41_##x +#else +# error "Need to add prefixing macros for this v3d version" +#endif + +#endif /* V3DX_MACROS_H */ -- 2.30.2