/* * NVIDIA_COPYRIGHT_BEGIN * * Copyright (c) 2010-2020, NVIDIA CORPORATION. All rights reserved. * * NVIDIA CORPORATION and its licensors retain all intellectual property * and proprietary rights in and to this software, related documentation * and any modifications thereto. Any use, reproduction, disclosure or * distribution of this software and related documentation without an express * license agreement from NVIDIA CORPORATION is strictly prohibited. * * NVIDIA_COPYRIGHT_END */ #ifndef fatbinary_section_INCLUDED #define fatbinary_section_INCLUDED #ifdef __cplusplus extern "C" { #endif /* * These defines are for the fatbin.c runtime wrapper */ #define FATBINC_MAGIC 0x466243B1 #define FATBINC_VERSION 1 #define FATBINC_LINK_VERSION 2 typedef struct { int magic; int version; const unsigned long long* data; void *filename_or_fatbins; /* version 1: offline filename, * version 2: array of prelinked fatbins */ } __fatBinC_Wrapper_t; /* * The section that contains the fatbin control structure */ #ifdef STD_OS_Darwin /* mach-o sections limited to 15 chars, and want __ prefix else strip complains, * so use a different name */ #define FATBIN_CONTROL_SECTION_NAME "__fatbin" #define FATBIN_DATA_SECTION_NAME "__nv_fatbin" /* only need segment name for mach-o */ #define FATBIN_SEGMENT_NAME "__NV_CUDA" #else #define FATBIN_CONTROL_SECTION_NAME ".nvFatBinSegment" /* * The section that contains the fatbin data itself * (put in separate section so easy to find) */ #define FATBIN_DATA_SECTION_NAME ".nv_fatbin" #endif /* section for pre-linked relocatable fatbin data */ #define FATBIN_PRELINK_DATA_SECTION_NAME "__nv_relfatbin" #ifdef __cplusplus } #endif #endif /* fatbinary_section_INCLUDED */