1*9313f6b0SJohn Baldwin#- 2*9313f6b0SJohn Baldwin# SPDX-License-Identifier: BSD-2-Clause 3*9313f6b0SJohn Baldwin# 4*9313f6b0SJohn Baldwin# Copyright (c) 2025 Netflix, Inc. 5*9313f6b0SJohn Baldwin# Written by: John Baldwin <jhb@FreeBSD.org> 6*9313f6b0SJohn Baldwin# 7*9313f6b0SJohn Baldwin 8*9313f6b0SJohn Baldwin#include <sys/bus.h> 9*9313f6b0SJohn Baldwin 10*9313f6b0SJohn Baldwin#include <contrib/dev/acpica/include/acpi.h> 11*9313f6b0SJohn Baldwin 12*9313f6b0SJohn Baldwin/** 13*9313f6b0SJohn Baldwin * @defgroup APEI apei - KObj methods for ACPI platform error interface drivers 14*9313f6b0SJohn Baldwin * @brief A pair of methods to allocate/deallocate registers for APEI 15*9313f6b0SJohn Baldwin * @{ 16*9313f6b0SJohn Baldwin */ 17*9313f6b0SJohn BaldwinINTERFACE apei; 18*9313f6b0SJohn Baldwin 19*9313f6b0SJohn Baldwin/** 20*9313f6b0SJohn Baldwin * @brief Allocate a mapping for a resource. 21*9313f6b0SJohn Baldwin * 22*9313f6b0SJohn Baldwin * @param _bus parent device 23*9313f6b0SJohn Baldwin * @param _dev device requesting the mapping 24*9313f6b0SJohn Baldwin * @param _type resource type 25*9313f6b0SJohn Baldwin * @param _start start address 26*9313f6b0SJohn Baldwin * @param _count length 27*9313f6b0SJohn Baldwin * 28*9313f6b0SJohn Baldwin * @returns resource mapping on success, or @c NULL on failure 29*9313f6b0SJohn Baldwin */ 30*9313f6b0SJohn BaldwinMETHOD struct resource_map * map_register { 31*9313f6b0SJohn Baldwin device_t _bus; 32*9313f6b0SJohn Baldwin device_t _child; 33*9313f6b0SJohn Baldwin int _type; 34*9313f6b0SJohn Baldwin rman_res_t _start; 35*9313f6b0SJohn Baldwin rman_res_t _count; 36*9313f6b0SJohn Baldwin}; 37*9313f6b0SJohn Baldwin 38*9313f6b0SJohn Baldwin/** 39*9313f6b0SJohn Baldwin * @brief Deallocate a mapping for a resource. 40*9313f6b0SJohn Baldwin * 41*9313f6b0SJohn Baldwin * @param _bus parent device 42*9313f6b0SJohn Baldwin * @param _dev device releasing the mapping 43*9313f6b0SJohn Baldwin * @param _map resource map 44*9313f6b0SJohn Baldwin */ 45*9313f6b0SJohn BaldwinMETHOD int unmap_register { 46*9313f6b0SJohn Baldwin device_t _bus; 47*9313f6b0SJohn Baldwin device_t _child; 48*9313f6b0SJohn Baldwin struct resource_map *_map; 49*9313f6b0SJohn Baldwin}; 50