2 * Copyright (C) 2008 Advanced Micro Devices, Inc.
3 * Copyright (C) 2016 Bin Meng <bmeng.cn@gmail.com>
5 * Modified from coreboot src/arch/x86/acpi/globutil.asl
7 * SPDX-License-Identifier: GPL-2.0+
12 If (LLess(Arg0, Arg1)) {
22 Return (Sizeof(Local0))
25 Method(S2BF, 1, Serialized)
27 Add(SLEN(Arg0), One, Local0)
28 Name(BUFF, Buffer(Local0) {})
34 * SCMP - Strong string compare
36 * Checks both length and content
40 Store(S2BF(Arg0), Local0)
41 Store(S2BF(Arg1), Local1)
43 Store(SLEN(Arg0), Local5)
44 Store(SLEN(Arg1), Local6)
45 Store(MIN(Local5, Local6), Local7)
47 While (LLess(Local4, Local7)) {
48 Store(Derefof(Index(Local0, Local4)), Local2)
49 Store(Derefof(Index(Local1, Local4)), Local3)
50 If (LGreater(Local2, Local3)) {
53 If (LLess(Local2, Local3)) {
60 If (LLess(Local4, Local5)) {
63 If (LLess(Local4, Local6)) {
72 * WCMP - Weak string compare
74 * Checks to find Arg1 at beginning of Arg0.
75 * Fails if length(Arg0) < length(Arg1).
76 * Returns 0 on fail, 1 on pass.
80 Store(S2BF(Arg0), Local0)
81 Store(S2BF(Arg1), Local1)
82 If (LLess(SLEN(Arg0), SLEN(Arg1))) {
86 Store(SLEN(Arg1), Local3)
88 While (LLess(Local2, Local3)) {
89 If (LNotEqual(Derefof(Index(Local0, Local2)),
90 Derefof(Index(Local1, Local2)))) {
100 * I2BM - Returns Bit Map
102 * Arg0 = IRQ Number (0-15)
107 If (LNotEqual(Arg0, 0)) {
109 ShiftLeft(Local1, Arg0, Local0)