1 /* 2 * SPDX-FileCopyrightText: Copyright (c) 2010-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. 3 * SPDX-License-Identifier: MIT 4 * 5 * Permission is hereby granted, free of charge, to any person obtaining a 6 * copy of this software and associated documentation files (the "Software"), 7 * to deal in the Software without restriction, including without limitation 8 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 * and/or sell copies of the Software, and to permit persons to whom the 10 * Software is furnished to do so, subject to the following conditions: 11 * 12 * The above copyright notice and this permission notice shall be included in 13 * all copies or substantial portions of the Software. 14 * 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 21 * DEALINGS IN THE SOFTWARE. 22 */ 23 24 /* 25 * Class definition for allocating a contiguous or discontiguous Multicast FLA. 26 */ 27 28 #pragma once 29 30 #include <nvtypes.h> 31 32 // 33 // This file was generated with FINN, an NVIDIA coding tool. 34 // Source file: class/cl00fd.finn 35 // 36 37 #include "cl00e0.h" 38 39 40 41 #define NV_MEMORY_MULTICAST_FABRIC (0xfdU) /* finn: Evaluated from "NV00FD_ALLOCATION_PARAMETERS_MESSAGE_ID" */ 42 43 /* 44 * expPacket [IN] 45 * Export object (see cl00e0.h) identifier from which memory will be imported. 46 * 47 * index [IN] 48 * Index of the export object to which the memory object is attached. 49 */ 50 51 52 /* 53 * alignment [IN] 54 * Alignment for the allocation. 55 * Should be at least the requested page size. 56 * 57 * allocSize [IN] 58 * Size of the Multicast FLA VA. 59 * 60 * pageSize [IN] 61 * Requested page size. Can be any of the NV_MEMORY_MULTICAST_FABRIC_PAGE_SIZE_* 62 * 63 * allocFlags [IN] 64 * Should be one of NV_MEMORY_MULTICAST_FABRIC_ALLOC_FLAGS_* 65 * 66 * numGpus [IN] 67 * Number of unique GPUs to be attached. 68 * 69 * pOsEvent [IN] 70 * Optional OS event handle created with NvRmAllocOsEvent(). 71 */ 72 73 #define NV_MEMORY_MULTICAST_FABRIC_PAGE_SIZE_512M 0x20000000 74 75 /* 76 * This flag must be passed if the object is created using export packet. Note 77 * when this flag is provided, the input params: alignment, allocSize, 78 * numGpus, pageSize won't be honored. 79 */ 80 #define NV_MEMORY_MULTICAST_FABRIC_ALLOC_FLAGS_USE_EXPORT_PACKET 0x00000001 81 82 83 84 #define NV00FD_ALLOCATION_PARAMETERS_MESSAGE_ID (0x00fdU) 85 86 typedef struct NV00FD_ALLOCATION_PARAMETERS { 87 NV_EXPORT_MEM_PACKET expPacket; 88 NvU16 index; 89 90 91 NV_DECLARE_ALIGNED(NvU64 alignment, 8); 92 NV_DECLARE_ALIGNED(NvU64 allocSize, 8); 93 NvU32 pageSize; 94 NvU32 allocFlags; 95 NvU32 numGpus; 96 NV_DECLARE_ALIGNED(NvP64 pOsEvent, 8); 97 } NV00FD_ALLOCATION_PARAMETERS; 98 99