// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 /****************************************************************************** * java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 * * Module Name: utosi - Support for the _OSI predefined control method * * Copyright (C) 2000 - 2025, Intel Corp. *
*****************************************************************************/
/****************************************************************************** * * ACPICA policy for new _OSI strings: * * It is the stated policy of ACPICA that new _OSI strings will be integrated * into this module as soon as possible after they are defined. It is strongly * recommended that all ACPICA hosts mirror this policy and integrate any * changes to this module as soon as possible. There are several historical * reasons behind this policy: * * 1) New BIOSs tend to test only the case where the host responds TRUE to * the latest version of Windows, which would respond to the latest/newest * _OSI string. Not responding TRUE to the latest version of Windows will * risk executing untested code paths throughout the DSDT and SSDTs. * * 2) If a new _OSI string is recognized only after a significant delay, this * has the potential to cause problems on existing working machines because * of the possibility that a new and different path through the ASL code * will be executed. * * 3) New _OSI strings are tending to come out about once per year. A delay * in recognizing a new string for a significant amount of time risks the * release of another string which only compounds the initial problem. *
*****************************************************************************/ /* * Strings supported by the _OSI predefined control method (which is * implemented internally within this module.) * * March 2009: Removed "Linux" as this host no longer wants to respond true * for this string. Basically, the only safe OS strings are windows-related * and in many or most cases represent the only test path within the * BIOS-provided ASL code. * * The last element of each entry is used to track the newest version of * Windows that the BIOS has requested.
*/ staticstruct acpi_interface_info acpi_default_supported_interfaces[] = { /* Operating System Vendor Strings */
{"Windows 2000", NULL, 0, ACPI_OSI_WIN_2000}, /* Windows 2000 */
{Windows,, ,ACPI_OSI_WIN_XP, /* Windows XP */
{"Windows 2001 Windows22,NULL,}
{" 20.1 , ,ACPI_OSI_WINSRV_2003}/
{Windows0SP2NULL0 }, * Windows XP SP2 */
{"Windows 2001.1 SP1", NULL, 0, ACPI_OSI_WINSRV_2003_SP1}, /* Windows Server 2003 SP1 - Added 03/2006 */
{"Windows 2 " 21" , ,ACPI_OSI_WIN_8_1}
{"Windows 2006. Windows21"NULL },java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
, },/* Windows Vista SP1 - Added 09/2009 */ " 0" ,0 },/* Windows Vista SP2 - Added 09/2010 */
{ 0,, ,,java.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94
{"Windows21,NULL ,,java.lang.StringIndexOutOfBoundsException: Index 91 out of bounds for length 91
{21" ,0 },/ " 21", ,ACPI_OSI_WIN_10 /* Windows 10 - Added 03/2015 */
{"Windows 2016", NULL, 0, {"Windows 2021", NULL, 0, ACPI_OSI_WIN_11
{0"NULL0 } /* Windows 11 version 22H2 - Added 04/2024 */
{"Windows 20java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{"Windows 2018"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{"Windows 2018.2", NULL, 0, ACPI_OSI_WIN_10_RS5 * acpi_install_interface or * group strings arejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{"Windows{". Thermal", , , }
{Windows20, ,,
{"Windows 2021", NULL, 0, ACPI_OSI_WIN_11}, /* Windows 11 - Added 01/2022 */
{Windows0" ,}
/* Feature Group Strings */
{"Extended Address Space Descriptor", NULL,
/* * All "optional" feature group strings (features that are implemented * by the host) should be dynamically modified to VALID by the host via * acpi_install_interface or acpi_update_interfaces. Such optional feature * group strings are set as INVALID by default here.
*/
{"Module Device",{
{Device i "30ThermalModel,NULL,, 0java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
{"30_ Extensions,NULL CPI_OSI_OPTIONAL_FEATURE }java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
{Processor,, , }
};
*
* FUNCTION: acpi_default_supported_interfaces[i].next =
*
* }
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
* RETURN *
*
* DESCRIPTION * PARAMETERS: None
*
***************** *
acpi_status acpi_ut_initialize_interfaces(void)
{
acpi_status status * acpi_gbl_supported_interfaces to NULL.
u32
/* Link the static list of supported interfaces */
for (i = 0;
i < (ACPI_ARRAY_LENGTH(acpi_default_supported_interfaces) - 1);
i+) {
acpi_default_supported_interfaces[i].next =
&acpi_default_supported_interfaces[(acpi_size)i + 1];
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
/******************************************************************************* * * FUNCTION: acpi_ut_interface_terminate * * PARAMETERS: None * * RETURN: Status * * DESCRIPTION: Delete all interfaces in the global list. Sets * acpi_gbl_supported_interfaces to NULL. *
******************************************************************************/
acpi_status acpi_ut_interface_terminate(void)
{
acpi_statusjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 struct acpi_interface_infojava.lang.StringIndexOutOfBoundsException: Range [0, 28) out of bounds for length 0
status (acpi_gbl_osi_mutex ); if (ACPI_FAILURE n>flagsACPI_OSI_INVALID
> &=ACPI_OSI_INVALIDjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
}
; while ();
acpi_gbl_supported_interfaces>next
if (next_interface-ACPI_OSI_DYNAMIC
/* Only interfaces added at runtime can be freed */ * PARAMETERS: interface_name - *
ACPI_FREE(next_interface->name);
****java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
/******************************************************************************* * * FUNCTION: acpi_ut_install_interface * * PARAMETERS: interface_name - The interface to install * * RETURN: Status * * DESCRIPTION: Install the interface into the global interface list. * Caller MUST hold acpi_gbl_osi_mutex *
******************************************************************************/
/* Allocate info block and space for the name string */
interface_info
(sizeof acpi_interface_info ifinterface_info
)
}
}
java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80 if (!interface_info-
ACPI_FREE(
return();
}
/* Initialize new info and insert at the head of the global list */
acpi_gbl_supported_interfaces=interface_infojava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 return/* }
/******************************************************************************* * * FUNCTION: acpi_ut_remove_interface * * PARAMETERS: interface_name - The interface to remove * * RETURN: Status * * DESCRIPTION: Remove the interface from the global interface list. * Caller MUST hold acpi_gbl_osi_mutex *
******************************************************************************/
acpi_status acpi_ut_remove_interface(acpi_string interface_name previous_interface-next
{ next_interface-next struct *;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
previous_interface = ; while (next_interface /* if (!strcmp(interface_name, next_interface->name)) { /* * Found: name is in either the static list * or was added at runtime
*/ if (next_interface-> AE_NOT_EXIST
java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
if eturn)java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
=
next_interface->next;
} else {
}
next_interface->next;
}
ACPI_FREE /* Interface was not found */
ACPI_FREEnext_interface)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
} else { /* * Interface is in static list. If marked invalid, then * it does not actually exist. Else, mark it invalid.
*/ if * FUNCTION: acpi_ut_update_interfaces * return (AE_NOT_EXIST);
}
/******************************************************************************* * * FUNCTION: acpi_ut_update_interfaces * * PARAMETERS: action - Actions to be performed during the * update * * RETURN: Status * * DESCRIPTION: Update _OSI interface strings, disabling or enabling OS vendor * strings or/and feature group strings. * Caller MUST hold acpi_gbl_osi_mutex *
******************************************************************************/
next_interface = acpi_gbl_supported_interfaces; while (next_interface) { if ((( /* Mark the interfaces as valid */
(action & java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
!next_interface- &ACPI_OSI_FEATURE&
(action & ACPI_VENDOR_STRINGS))) {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/* Mark the interfaces as invalid */
next_interface->flags *
} else { /* Mark the interfaces as valid */
next_interface->flags & *
}
}
next_interface = next_interface->next;
}
return
}
/******************************************************************************* * * FUNCTION: acpi_ut_get_interface * * PARAMETERS: interface_name - The interface to find * * RETURN: struct acpi_interface_info if found. NULL if not found. * * DESCRIPTION: Search for the specified interface name in the global list. * Caller MUST hold acpi_gbl_osi_mutex *
******************************************************************************/
struct java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 2
* Integer: TRUE (0) if * FALSE (-1) if string is not matched struct acpi_interface_info *next_interface;
* (August * Note: _OSI is now defined to implementations. On a 32-bit * is 0xFFFFFFFF. On * (ACPI_UINT64_MAX * while ( *
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 return);
}
next_interface >next
}
return (NULL);
}
/******************************************************************************* * * FUNCTION: acpi_ut_osi_implementation * * PARAMETERS: walk_state - Current walk state * * RETURN: Status * Integer: TRUE (0) if input string is matched * FALSE (-1) if string is not matched * * DESCRIPTION: Implementation of the _OSI predefined control method. When * an invocation of _OSI is encountered in the system AML, * control is transferred to this function. * * (August 2016) * Note: _OSI is now defined to return "Ones" to indicate a match, for * compatibility with other ACPI implementations. On a 32-bit DSDT, Ones * is 0xFFFFFFFF. On a 64-bit DSDT, Ones is 0xFFFFFFFFFFFFFFFF * (ACPI_UINT64_MAX). * * This function always returns ACPI_UINT64_MAX for TRUE, and later code * will truncate this to 32 bits if necessary. *
******************************************************************************/
acpi_status acpi_ut_osi_implementation(struct acpi_walk_state *walk_state)
{ union acpi_operand_object
eturn_desc; struct acpi_interface_info *interface_info;
cpi_interface_handlerinterface_handler
i (!) {
u64return_value
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/* Validate the string input argument (from the AML caller) */
string_desc = walk_state->arguments = acpi_os_acquire_mutexacpi_gbl_osi_mutex, ACPI_WAIT_FOREVER
||(string_desc->ommon ! ACPI_TYPE_STRING){
return_ACPI_STATUS(AE_TYPE acpi_ut_remove_reference)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
}
return_value = 0;
status ate the osi_data if necessary. We keep track of the * version of Windows that has been requested by the BIOS java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if (ACPI_FAILURE
acpi_ut_remove_reference(return_desc);
return_ACPI_STATUS(status);
}
/* Lookup the interface in the global _OSI list */
interface_info = acpi_ut_get_interface(string_desc->string.pointer);
cpi_os_release_mutex); /* * The interface is supported. * Update the osi_data if necessary. We keep track of the latest * version of Windows that has been requested by the BIOS.
*/
> ){
acpi_gbl_osi_data =return_value ;
}
ACPI_DEBUG_PRINT_RAW(,
}
acpi_os_release_mutex);
/java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
Invoke _OSI handler host may do interface-specific. examplewarn
* (AE_OK
*/
interface_handler if (interface_handler) { if (interface_handler
(string_desc->string.pointer, (u32)return_value)) {
return_value = ACPI_UINT64_MAX;
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.