# ===- GPU HeaderFile Class for --export-decls version --------*- python -*--==# # # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. # See https://llvm.org/LICENSE.txt for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception # # ==-------------------------------------------------------------------------==# from header import HeaderFile class GpuHeaderFile(HeaderFile): def __str__(self): content = [] content.append( f"//===-- C standard declarations for {self.name} ------------------------------===//" ) content.append("//") content.append( "// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions." ) content.append("// See https://llvm.org/LICENSE.txt for license information.") content.append("// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception") content.append("//") content.append( "//===----------------------------------------------------------------------===//\n" ) header_guard = f"__LLVM_LIBC_DECLARATIONS_{self.name.upper()[:-2]}_H" content.append(f"#ifndef {header_guard}") content.append(f"#define {header_guard}\n") content.append("#ifndef __LIBC_ATTRS") content.append("#define __LIBC_ATTRS") content.append("#endif\n") content.append("#ifdef __cplusplus") content.append('extern "C" {') content.append("#endif\n") for function in self.functions: content.append(f"{function} __LIBC_ATTRS;\n") for object in self.objects: content.append(f"{object} __LIBC_ATTRS;\n") content.append("#ifdef __cplusplus") content.append("}") content.append("#endif\n") content.append(f"#endif") return "\n".join(content)