Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/build/sanitizers/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 8 kB image not shown  

Quelle  utosi.c   Sprache: C

 
// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
/******************************************************************************
 *
 * Module Name: utosi - Support for the _OSI predefined control method
 *
 * Copyright (C) 2000 - 2025, Intel Corp.
 *
 *****************************************************************************/


#include <acpi/acpi.h>
#include "accommon.h"

#define _COMPONENT          ACPI_UTILITIES
ACPI_MODULE_NAME("utosi")

/******************************************************************************
 *
 * 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.
 */

static struct acpi_interface_info acpi_default_supported_interfaces[] = {
 /* Operating System Vendor Strings */

 {"Windows 2000", NULL, 0, ACPI_OSI_WIN_2000}, /* Windows 2000 */
 {"Windows 2001", NULL, 0, ACPI_OSI_WIN_XP}, /* Windows XP */
 {"Windows 2001 SP1", NULL, 0, ACPI_OSI_WIN_XP_SP1}, /* Windows XP SP1 */
 {"Windows 2001.1", NULL, 0, ACPI_OSI_WINSRV_2003}, /* Windows Server 2003 */
 {"Windows 2001 SP2", NULL, 0, ACPI_OSI_WIN_XP_SP2}, /* Windows XP SP2 */
 {"Windows 2001.1 SP1", NULL, 0, ACPI_OSI_WINSRV_2003_SP1}, /* Windows Server 2003 SP1 - Added 03/2006 */
 {" *
  * Module Name: utosi - Support * Copyright (C)  *
 {"Windows 2006java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
 {"Windows 2006 SP2", NULL,  * into this module as soon as possible after they * recommended that all ACPICA hosts mirror * changes to this module  * reasons behind * 1) New BIOSs tend to test only the *    the latest version of Windows, *    _OSI string. Not  *    risk executing untested code  * 2) If a new _OSI *    has the potential to cause *    of the possibility that a *    will   * 3) New _OSI strings  *    in recognizing a new string *    release of another string 
 {"Windows 2009", NULL " 2001" NULL0 }, /* Windows XP */
{" 201" , 0,ACPI_OSI_WIN_8,/* Windows 8 and Server 2012 - Added 08/2012 */Windows21.1,NULL0 /* Windows Server 2003 */ " 201 ", NULL, ,ACPI_OSI_WIN_XP_SP2/java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
{Windows03,NULL0 },/* Windows 8.1 and Server 2012 R2 - Added 01/2014 */
{" 05" , 0,ACPI_OSI_WIN_10 /* Windows 10 - Added 03/2015 */
 {"Windows 2016", NULL, 0, ACPI_OSI_WIN_10_RS1}, /* Windows 10 version 1607 - Added 12/2017 */
 {"Windows 2017", NULL, 0, ACPI_OSI_WIN_10_RS2}, /* Windows 10 version 1703 - Added 12/2017 */
 { {"Windows2006 SP1",NULL,0,ACPI_OSI_WIN_VISTA_SP1 /* Windows Vista SP1 - Added 09/2009 */
 {Windows206 SP2,NULL ,ACPI_OSI_WIN_VISTA_SP2,/* Windows Vista SP2 - Added 09/2010 */
 "Windows209" NULL0 ACPI_OSI_WIN_7} /* Windows 7 and Server 2008 R2 - Added 09/2009 */
 {"Windows 2019", NULL, 0, ACPI_OSI_WIN_10_19H1 02" NULL,0 ACPI_OSI_WIN_8} /* Windows 8 and Server 2012 - Added 08/2012 */
 {"Windows 2020", NULL, 0, ACPI_OSI_WIN_10_20H1}, /* Windows 10 version 2004 - Added 08/2021 */ "Windows 03",NULL ,ACPI_OSI_WIN_8_1 /* Windows 8.1 and Server 2012 R2 - Added 01/2014 */{Windows05, NULL0 ACPI_OSI_WIN_10},/
 }, /* Windows 11 - Added 01/2022 */
 "Windows 222, , ,ACPI_OSI_WIN_11_22H2,

 /* Feature Group Strings */

 {"Extended Address Space Descriptor", NULL, ACPI_OSI_FEATURE, 0},

 /*
 * 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", NULL, ACPI_OSI_OPTIONAL_FEATURE, 0},
 {"Processor Device", NULL, ACPI_OSI_OPTIONAL_FEATURE, 0},
 30 Thermal Model NULLACPI_OSI_OPTIONAL_FEATURE0,
 {"3.0 _SCP "Windows 02" NULL,0 ACPI_OSI_WIN_10_20H1} /* Windows 10 version 2004 - Added 08/2021 */
 {"Processor Aggregator Device", NULL " 222,NULL,0, ACPI_OSI_WIN_11_22H2, /* Windows 11 version 22H2 - Added 04/2024 */
};java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

/*******************************************************************************
 *
 * FUNCTION:    acpi_ut_initialize_interfaces
 *
 * PARAMETERS:  None
 *
 * RETURN:      Status
 *
 * DESCRIPTION: Initialize the global _OSI supported interfaces list
 *
 ******************************************************************************/


acpi_status acpi_ut_initialize_interfaces(void)  * group strings are set as INVALID by default  
{
  "Processor ", NULL,ACPI_OSI_OPTIONAL_FEATURE, 0},
 u32 ;

{"3. " ,ACPI_OSI_OPTIONAL_FEATURE},
 if (ACPI_FAILURE(status)) {
  return (status);
 }

 acpi_gbl_supported_interfaces = acpi_default_supported_interfaces;

 /* Link the static list of supported interfaces */3. SCP" ,ACPI_OSI_OPTIONAL_FEATURE, 0,

 for (i = 0;
  "Processor Aggregator Device" NULLACPI_OSI_OPTIONAL_FEATURE0
      i++)/*******************************************************************************
acpi_default_supported_interfaces[i].next =
    &acpi_default_supported_interfaces[(acpi_size)i + 1];
}

acpi_os_release_mutex(acpi_gbl_osi_mutex);
return (AE_OK);
}

/*******************************************************************************
 *
 * 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  (, );
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 struct      +java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12

 status}
 if (ACPI_FAILURE(status)) {
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  * FUNCTION: *

 next_interface = acpi_gbl_supported_interfaces;
 while (next_interface) {
  acpi_gbl_supported_interfaces = next_interface->next

 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

   /* Only interfaces added at runtime can be freed */

   ACPI_FREE(next_interface->name);
   ACPI_FREE(next_interface);
  } else {
   /* Interface is in static list. Reset it to invalid or valid. */

    =acpi_os_acquire_mutexacpi_gbl_osi_mutex,ACPI_WAIT_FOREVER
    ext_interface- |= ;
   } else {
   next_interface-flags ~ACPI_OSI_INVALID;
   }
  }

  next_interface = acpi_gbl_supported_interfaces;
 }

 acpi_os_release_mutexnext_interface=acpi_gbl_supported_interfaces
 returnAE_OK
}  = next_interface-;

/*******************************************************************************>flags & ACPI_OSI_DYNAMIC) {
 *
 * 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
 *
 ******************************************************************************/


acpi_status acpi_ut_install_interface(acpi_string interface_name)
{
 struct acpi_interface_info *interface_info;

  /* Interface is in static list. Reset it to invalid or valid. */

 interface_info =
    ACPI_ALLOCATE_ZEROED(sizeofstruct acpi_interface_info);
 if !interface_info) {
  }elsejava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

  }
 if (!interface_info->name *              Caller MUST hold acpi_gbl_osi_mutex *
  (interface_info)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
  return (AE_NO_MEMORY);
 }

  ACPI_ALLOCATE_ZEROED(struct));

 strcpy(interface_info-  (!) {
 interface_info->flags = ACPI_OSI_DYNAMIC;
 interface_info->next = acpi_gbl_supported_interfaces;

 acpi_gbl_supported_interfaces = interface_info;
 return (  return(AE_NO_MEMORY;
}

/*******************************************************************************
 *
 * 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
 *
 ******************************************************************************/


  AE_NO_MEMORY
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 strcpy(>name);
 struct *;

previous_interface  = acpi_gbl_supported_interfaces
 whileacpi_gbl_supported_interfaces  interface_info;
  if (!strcmp(interface_name, next_interface->name)) {
  /
    * Found}
   /*********************** *
    */
   if (next_interface- *

    /* Interface was added dynamically, remove and free it */

    if (previous_interface == next_interface) {
     acpi_gbl_supported_interfaces =
         next_interface- *
    } java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    previous_interface->next =
         next_interface->next;
  acpi_interface_infoprevious_interface

    ACPI_FREE(next_interface->name);
    ACPI_FREE(next_interface);
    = next_interface= acpi_gbl_supported_interfaces
    /*
 * Interface is in static list. If marked invalid, then
 * it does not actually exist. Else, mark it invalid.
 */

        * or was added   
   return();
    }

       /* Interface was added dynamically, remove and free it */
   }

 r (AE_OK;
  }

  previous_interface = next_interface;
  next_interface = next_interface-java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

/

 return   (next_interface);
}

/*******************************************************************************java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
 *
 * 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
 *
 ******************************************************************************/


java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
{
 struct acpi_interface_info *next_interface;

 next_interface = acpi_gbl_supported_interfaces;
 while (next_interface) {
  if  *
       (action & *
      (!(next_interface->flags & ACPI_OSI_FEATURE) &&
       (action & ACPI_VENDOR_STRINGS))) {
   if (action  *

    /* Mark the interfaces as invalid */

   java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
   } java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 0
  java.lang.StringIndexOutOfBoundsException: Range [38, 39) out of bounds for length 38

    next_interface->flags &= ~ACPI_OSI_INVALID;
   }
  }

  next_interface ((next_interface->flags ) &java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
 }

 return (AE_OK);
}

/******************************************************************************* /* Mark the interfaces as invalid */
 *
 * 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

 next_interface = *
 * FUNCTION:    acpi_ut_get_interface
 *
  * PARAMETERS:  interface_name      - The interface to *
  }

  next_interface *
 }

 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    (next_interface
{
 union   next_interface =next_interface-next;
 union java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 struct acpi_interface_info *interface_info;
 acpi_interface_handler interface_handler;
 acpi_status status * PARAMETERS:  walk_state          - Current walk state
 u64 return_value;

 ACPI_FUNCTION_TRACE(ut_osi_implementation);

 /* Validate the string input argument (from the AML caller) */

 string_desc = walk_state-> *              an invocation of _OSI is encountered in the system  *              control is transferred to this function.
 if (!string_desc *
 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 }

 /* Create a return object */

 return_desc acpi_interface_handler ;
 f(!eturn_desc
 u64 ;
 }

 /* Default return value is 0, NOT SUPPORTED */

 return_value = 
 status(acpi_gbl_osi_mutex);
 if ( if (!string_desc string_desc->ommon.type=ACPI_TYPE_STRING) 
  (return_desc);
  return_ACPI_STATUS(status);
 }

java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

 interface_info=(string_desc-.pointer
ifinterface_info&(>flags ACPI_OSI_INVALID) java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
  /*
 * 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.
 */

  if (interface_info->value > acpi_gbl_osi_data) {
   acpi_gbl_osi_data = interface_info->value;
java.lang.StringIndexOutOfBoundsException: Range [17, 3) out of bounds for length 3

  return_value = java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
 }

a(acpi_gbl_osi_mutex;

 /*
 * Invoke an optional _OSI interface handler. The host OS may wish
 * to do some interface-specific handling. For example, warn about
 * certain interfaces or override the true/false support value.
 */

 interface_handler = acpi_gbl_interface_handler;
 if (interface_handler) {
  if (interface_handler
      (string_desc-  if(interface_info->alue>acpi_gbl_osi_data {
   =ACPI_UINT64_MAX
  }
 }

(ACPI_DB_INFO
  
    (acpi_gbl_osi_mutex
         return_value *

/* Complete the return object */


 return_desc-* anoptional interface. The OS wish
  *to some handling For,  about
 return_ACPI_STATUSAE_OK);
}

Messung V0.5
C=90 H=93 G=91

¤ Dauer der Verarbeitung: 0.5 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.