Kernel: Fix ACPI name formatting functions
This commit is contained in:
parent
57e76a65a4
commit
b41738b47b
|
@ -215,26 +215,29 @@ namespace BAN
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename F>
|
namespace Formatter
|
||||||
void Formatter::print_argument(F putc, const Kernel::ACPI::AML::NameSeg& name_seg, const ValueFormat&)
|
|
||||||
{
|
{
|
||||||
size_t len = 4;
|
template<typename F>
|
||||||
while (len > 0 && name_seg.chars[len - 1] == '_')
|
void print_argument(F putc, const Kernel::ACPI::AML::NameSeg& name_seg, const ValueFormat&)
|
||||||
len--;
|
|
||||||
for (size_t i = 0; i < len; i++)
|
|
||||||
putc(name_seg.chars[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename F>
|
|
||||||
void Formatter::print_argument(F putc, const Kernel::ACPI::AML::NameString& name_string, const ValueFormat&)
|
|
||||||
{
|
|
||||||
print_argument(putc, name_string.prefix, {});
|
|
||||||
if (!name_string.path.empty())
|
|
||||||
print_argument(putc, name_string.path.front(), {});
|
|
||||||
for (size_t i = 1; i < name_string.path.size(); i++)
|
|
||||||
{
|
{
|
||||||
putc('.');
|
size_t len = 4;
|
||||||
print_argument(putc, name_string.path[i], {});
|
while (len > 0 && name_seg.chars[len - 1] == '_')
|
||||||
|
len--;
|
||||||
|
for (size_t i = 0; i < len; i++)
|
||||||
|
putc(name_seg.chars[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename F>
|
||||||
|
void print_argument(F putc, const Kernel::ACPI::AML::NameString& name_string, const ValueFormat&)
|
||||||
|
{
|
||||||
|
print_argument(putc, name_string.prefix, {});
|
||||||
|
if (!name_string.path.empty())
|
||||||
|
print_argument(putc, name_string.path.front(), {});
|
||||||
|
for (size_t i = 1; i < name_string.path.size(); i++)
|
||||||
|
{
|
||||||
|
putc('.');
|
||||||
|
print_argument(putc, name_string.path[i], {});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue