xref: /freebsd/sys/dev/acpica/apei_if.m (revision 9313f6b01485ad9a0b7cc59b459f5714533587c3)
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