diff options
author | Erwan Velu <erwanaliasr1@gmail.com> | 2011-04-04 20:13:13 +0200 |
---|---|---|
committer | Erwan Velu <erwanaliasr1@gmail.com> | 2011-04-04 20:13:13 +0200 |
commit | c09eb315a9c426bc9fbb7bfe036648befb65fbd7 (patch) | |
tree | d0889b5af9710698e61541d8f458fff2351af70a | |
parent | 9ccd4aa116f0616ec7a3556ee958351aa08ee257 (diff) | |
download | syslinux-c09eb315a9c426bc9fbb7bfe036648befb65fbd7.tar.gz |
acpi: moving flags_to_string to base code
This code is useful for many program, let's make it generic.
-rw-r--r-- | com32/gplinclude/acpi/acpi.h | 1 | ||||
-rw-r--r-- | com32/gpllib/acpi/acpi.c | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/com32/gplinclude/acpi/acpi.h b/com32/gplinclude/acpi/acpi.h index 94589f35..bf3ffdb7 100644 --- a/com32/gplinclude/acpi/acpi.h +++ b/com32/gplinclude/acpi/acpi.h @@ -95,4 +95,5 @@ void parse_madt(s_acpi * acpi); int search_rsdp(s_acpi *acpi); void get_acpi_description_header(uint8_t *q, s_acpi_description_header * adh); bool parse_header(uint64_t *address, s_acpi *acpi); +char *flags_to_string(char *buffer, uint16_t flags); #endif diff --git a/com32/gpllib/acpi/acpi.c b/com32/gpllib/acpi/acpi.c index 8e5ee29c..d2bf29e5 100644 --- a/com32/gpllib/acpi/acpi.c +++ b/com32/gpllib/acpi/acpi.c @@ -32,6 +32,25 @@ #include <memory.h> #include "acpi/acpi.h" +/* M1PS flags have to be interpreted as strings */ +char *flags_to_string(char *buffer, uint16_t flags) +{ + memset(buffer, 0, sizeof(buffer)); + strcpy(buffer, "default"); + if ((flags & POLARITY_ACTIVE_HIGH) == POLARITY_ACTIVE_HIGH) + strcpy(buffer, "high"); + else if ((flags & POLARITY_ACTIVE_LOW) == POLARITY_ACTIVE_LOW) + strcpy(buffer, "low"); + if ((flags & TRIGGER_EDGE) == TRIGGER_EDGE) + strncat(buffer, " edge", 5); + else if ((flags & TRIGGER_LEVEL) == TRIGGER_LEVEL) + strncat(buffer, " level", 6); + else + strncat(buffer, " default", 8); + + return buffer; +} + void dbg_printf(const char *fmt, ...) { va_list args; |