cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ttm_range_manager.h (1521B)


      1/* SPDX-License-Identifier: GPL-2.0 OR MIT */
      2
      3#ifndef _TTM_RANGE_MANAGER_H_
      4#define _TTM_RANGE_MANAGER_H_
      5
      6#include <drm/ttm/ttm_resource.h>
      7#include <drm/ttm/ttm_device.h>
      8#include <drm/drm_mm.h>
      9
     10/**
     11 * struct ttm_range_mgr_node
     12 *
     13 * @base: base clase we extend
     14 * @mm_nodes: MM nodes, usually 1
     15 *
     16 * Extending the ttm_resource object to manage an address space allocation with
     17 * one or more drm_mm_nodes.
     18 */
     19struct ttm_range_mgr_node {
     20	struct ttm_resource base;
     21	struct drm_mm_node mm_nodes[];
     22};
     23
     24/**
     25 * to_ttm_range_mgr_node
     26 *
     27 * @res: the resource to upcast
     28 *
     29 * Upcast the ttm_resource object into a ttm_range_mgr_node object.
     30 */
     31static inline struct ttm_range_mgr_node *
     32to_ttm_range_mgr_node(struct ttm_resource *res)
     33{
     34	return container_of(res, struct ttm_range_mgr_node, base);
     35}
     36
     37int ttm_range_man_init_nocheck(struct ttm_device *bdev,
     38		       unsigned type, bool use_tt,
     39		       unsigned long p_size);
     40int ttm_range_man_fini_nocheck(struct ttm_device *bdev,
     41		       unsigned type);
     42static __always_inline int ttm_range_man_init(struct ttm_device *bdev,
     43		       unsigned int type, bool use_tt,
     44		       unsigned long p_size)
     45{
     46	BUILD_BUG_ON(__builtin_constant_p(type) && type >= TTM_NUM_MEM_TYPES);
     47	return ttm_range_man_init_nocheck(bdev, type, use_tt, p_size);
     48}
     49
     50static __always_inline int ttm_range_man_fini(struct ttm_device *bdev,
     51		       unsigned int type)
     52{
     53	BUILD_BUG_ON(__builtin_constant_p(type) && type >= TTM_NUM_MEM_TYPES);
     54	return ttm_range_man_fini_nocheck(bdev, type);
     55}
     56#endif