ahuuids.c revision 306536
1/******************************************************************************
2 *
3 * Module Name: ahuuids - Table of known ACPI-related UUIDs
4 *
5 *****************************************************************************/
6
7/*
8 * Copyright (C) 2000 - 2016, Intel Corp.
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 *    notice, this list of conditions, and the following disclaimer,
16 *    without modification.
17 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18 *    substantially similar to the "NO WARRANTY" disclaimer below
19 *    ("Disclaimer") and any redistribution must be conditioned upon
20 *    including a substantially similar Disclaimer requirement for further
21 *    binary redistribution.
22 * 3. Neither the names of the above-listed copyright holders nor the names
23 *    of any contributors may be used to endorse or promote products derived
24 *    from this software without specific prior written permission.
25 *
26 * Alternatively, this software may be distributed under the terms of the
27 * GNU General Public License ("GPL") version 2 as published by the Free
28 * Software Foundation.
29 *
30 * NO WARRANTY
31 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41 * POSSIBILITY OF SUCH DAMAGES.
42 */
43
44#include <contrib/dev/acpica/include/acpi.h>
45#include <contrib/dev/acpica/include/accommon.h>
46#include <contrib/dev/acpica/include/acuuid.h>
47
48#define _COMPONENT          ACPI_UTILITIES
49        ACPI_MODULE_NAME    ("ahuuids")
50
51
52/*
53 * Table of "known" (ACPI-related) UUIDs
54 */
55const AH_UUID  AcpiUuids[] =
56{
57    {"[Controllers]",               NULL},
58    {"GPIO Controller",             UUID_GPIO_CONTROLLER},
59    {"USB Controller",              UUID_USB_CONTROLLER},
60    {"SATA Controller",             UUID_SATA_CONTROLLER},
61
62    {"[Devices]",                   NULL},
63    {"PCI Host Bridge Device",      UUID_PCI_HOST_BRIDGE},
64    {"HID I2C Device",              UUID_I2C_DEVICE},
65    {"Power Button Device",         UUID_POWER_BUTTON},
66
67    {"[Interfaces]",                NULL},
68    {"Device Labeling Interface",   UUID_DEVICE_LABELING},
69    {"Physical Presence Interface", UUID_PHYSICAL_PRESENCE},
70
71    {"[Non-volatile DIMM and NFIT table]",       NULL},
72    {"Volatile Memory Region",      UUID_VOLATILE_MEMORY},
73    {"Persistent Memory Region",    UUID_PERSISTENT_MEMORY},
74    {"NVDIMM Control Region",       UUID_CONTROL_REGION},
75    {"NVDIMM Data Region",          UUID_DATA_REGION},
76    {"Volatile Virtual Disk",       UUID_VOLATILE_VIRTUAL_DISK},
77    {"Volatile Virtual CD",         UUID_VOLATILE_VIRTUAL_CD},
78    {"Persistent Virtual Disk",     UUID_PERSISTENT_VIRTUAL_DISK},
79    {"Persistent Virtual CD",       UUID_PERSISTENT_VIRTUAL_CD},
80
81    {"[Miscellaneous]",             NULL},
82    {"Platform-wide Capabilities",  UUID_PLATFORM_CAPABILITIES},
83    {"Dynamic Enumeration",         UUID_DYNAMIC_ENUMERATION},
84    {"Battery Thermal Limit",       UUID_BATTERY_THERMAL_LIMIT},
85    {"Thermal Extensions",          UUID_THERMAL_EXTENSIONS},
86    {"Device Properties for _DSD",  UUID_DEVICE_PROPERTIES},
87
88    {NULL, NULL}
89};
90
91
92/*******************************************************************************
93 *
94 * FUNCTION:    AcpiAhMatchUuid
95 *
96 * PARAMETERS:  Data                - Data buffer containing a UUID
97 *
98 * RETURN:      ASCII description string for the UUID if it is found.
99 *
100 * DESCRIPTION: Returns a description string for "known" UUIDs, which are
101 *              are UUIDs that are related to ACPI in some way.
102 *
103 ******************************************************************************/
104
105const char *
106AcpiAhMatchUuid (
107    UINT8                   *Data)
108{
109    const AH_UUID           *Info;
110    UINT8                   UuidBuffer[UUID_BUFFER_LENGTH];
111
112
113    /* Walk the table of known ACPI-related UUIDs */
114
115    for (Info = AcpiUuids; Info->Description; Info++)
116    {
117        /* Null string means desciption is a UUID class */
118
119        if (!Info->String)
120        {
121            continue;
122        }
123
124        AcpiUtConvertStringToUuid (Info->String, UuidBuffer);
125
126        if (!memcmp (Data, UuidBuffer, UUID_BUFFER_LENGTH))
127        {
128            return (Info->Description);
129        }
130    }
131
132    return (NULL);
133}
134