1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Copyright (C) 2008 Advanced Micro Devices, Inc.
4 * Copyright (C) 2016 Bin Meng <bmeng.cn@gmail.com>
6 * Modified from coreboot src/arch/x86/acpi/globutil.asl
11 If (LLess(Arg0, Arg1)) {
21 Return (Sizeof(Local0))
24 Method(S2BF, 1, Serialized)
26 Add(SLEN(Arg0), One, Local0)
27 Name(BUFF, Buffer(Local0) {})
33 * SCMP - Strong string compare
35 * Checks both length and content
39 Store(S2BF(Arg0), Local0)
40 Store(S2BF(Arg1), Local1)
42 Store(SLEN(Arg0), Local5)
43 Store(SLEN(Arg1), Local6)
44 Store(MIN(Local5, Local6), Local7)
46 While (LLess(Local4, Local7)) {
47 Store(Derefof(Index(Local0, Local4)), Local2)
48 Store(Derefof(Index(Local1, Local4)), Local3)
49 If (LGreater(Local2, Local3)) {
52 If (LLess(Local2, Local3)) {
59 If (LLess(Local4, Local5)) {
62 If (LLess(Local4, Local6)) {
71 * WCMP - Weak string compare
73 * Checks to find Arg1 at beginning of Arg0.
74 * Fails if length(Arg0) < length(Arg1).
75 * Returns 0 on fail, 1 on pass.
79 Store(S2BF(Arg0), Local0)
80 Store(S2BF(Arg1), Local1)
81 If (LLess(SLEN(Arg0), SLEN(Arg1))) {
85 Store(SLEN(Arg1), Local3)
87 While (LLess(Local2, Local3)) {
88 If (LNotEqual(Derefof(Index(Local0, Local2)),
89 Derefof(Index(Local1, Local2)))) {
99 * I2BM - Returns Bit Map
101 * Arg0 = IRQ Number (0-15)
106 If (LNotEqual(Arg0, 0)) {
108 ShiftLeft(Local1, Arg0, Local0)