Spdk/lib/env_dpdk/env_internal.h
paul luse a6dbe3721e update Intel copyright notices
per Intel policy to include file commit date using git cmd
below.  The policy does not apply to non-Intel (C) notices.

git log --follow -C90% --format=%ad --date default <file> | tail -1

and then pull just the 4 digit year from the result.

Intel copyrights were not added to files where Intel either had
no contribution ot the contribution lacked substance (ie license
header updates, formatting changes, etc).  Contribution date used
"--follow -C95%" to get the most accurate date.

Note that several files in this patch didn't end the license/(c)
block with a blank comment line so these were added as the vast
majority of files do have this last blank line.  Simply there for
consistency.

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: Id5b7ce4f658fe87132f14139ead58d6e285c04d4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15192
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Community-CI: Mellanox Build Bot
2022-11-10 08:28:53 +00:00

56 lines
1.5 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright (C) 2016 Intel Corporation.
* All rights reserved.
*/
#ifndef SPDK_ENV_INTERNAL_H
#define SPDK_ENV_INTERNAL_H
#include "spdk/stdinc.h"
#include "spdk/env.h"
#include <rte_config.h>
#include <rte_version.h>
#include <rte_eal.h>
#if RTE_VERSION < RTE_VERSION_NUM(19, 11, 0, 0)
#error RTE_VERSION is too old! Minimum 19.11 is required.
#endif
/* x86-64 and ARM userspace virtual addresses use only the low 48 bits [0..47],
* which is enough to cover 256 TB.
*/
#define SHIFT_256TB 48 /* (1 << 48) == 256 TB */
#define MASK_256TB ((1ULL << SHIFT_256TB) - 1)
#define SHIFT_1GB 30 /* (1 << 30) == 1 GB */
#define MASK_1GB ((1ULL << SHIFT_1GB) - 1)
int pci_env_init(void);
void pci_env_reinit(void);
void pci_env_fini(void);
int mem_map_init(bool legacy_mem);
int vtophys_init(void);
int vtophys_iommu_map_dma_bar(uint64_t vaddr, uint64_t iova, uint64_t size);
int vtophys_iommu_unmap_dma_bar(uint64_t vaddr);
struct rte_pci_device;
/**
* Report a DMA-capable PCI device to the vtophys translation code.
* Increases the refcount of active DMA-capable devices managed by SPDK.
* This must be called after a `rte_pci_device` is created.
*/
void vtophys_pci_device_added(struct rte_pci_device *pci_device);
/**
* Report the removal of a DMA-capable PCI device to the vtophys translation code.
* Decreases the refcount of active DMA-capable devices managed by SPDK.
* This must be called before a `rte_pci_device` is destroyed.
*/
void vtophys_pci_device_removed(struct rte_pci_device *pci_device);
#endif