bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 2/5] libacpica: Add config for GNU


From: Damien Zammit
Subject: [PATCH 2/5] libacpica: Add config for GNU
Date: Sat, 3 Apr 2021 23:16:32 +1100

---
 libacpica/acpi/platform/acenv.h   |   3 +
 libacpica/acpi/platform/acenvex.h |   3 +
 libacpica/acpi/platform/acgnu.h   | 159 ++++++++++++++++++++++++++++++
 libacpica/acpi/platform/acgnuex.h |  52 ++++++++++
 4 files changed, 217 insertions(+)
 create mode 100644 libacpica/acpi/platform/acgnu.h
 create mode 100644 libacpica/acpi/platform/acgnuex.h

diff --git a/libacpica/acpi/platform/acenv.h b/libacpica/acpi/platform/acenv.h
index 3689c2c6..b71ecea4 100644
--- a/libacpica/acpi/platform/acenv.h
+++ b/libacpica/acpi/platform/acenv.h
@@ -161,6 +161,9 @@
 #if defined(_LINUX) || defined(__linux__)
 #include <acpi/platform/aclinux.h>
 
+#elif defined(__GNU__)
+#include <acpi/platform/acgnu.h>
+
 #elif defined(_APPLE) || defined(__APPLE__)
 #include "acmacosx.h"
 
diff --git a/libacpica/acpi/platform/acenvex.h 
b/libacpica/acpi/platform/acenvex.h
index 277fe2fa..ede92b70 100644
--- a/libacpica/acpi/platform/acenvex.h
+++ b/libacpica/acpi/platform/acenvex.h
@@ -22,6 +22,9 @@
 #if defined(_LINUX) || defined(__linux__)
 #include <acpi/platform/aclinuxex.h>
 
+#elif defined(__GNU__)
+#include <acpi/platform/acgnuex.h>
+
 #elif defined(__DragonFly__)
 #include "acdragonflyex.h"
 
diff --git a/libacpica/acpi/platform/acgnu.h b/libacpica/acpi/platform/acgnu.h
new file mode 100644
index 00000000..17c62124
--- /dev/null
+++ b/libacpica/acpi/platform/acgnu.h
@@ -0,0 +1,159 @@
+#ifndef __ACGNU_H_
+#define __ACGNU_H__
+
+/* Common (in-kernel/user-space) ACPICA configuration */
+
+#define ACPI_USE_SYSTEM_CLIBRARY
+#define ACPI_USE_DO_WHILE_0
+#define ACPI_IGNORE_PACKAGE_RESOLUTION_ERRORS
+#define ACPI_LIBRARY
+
+#ifdef __KERNEL__
+
+#define ACPI_USE_SYSTEM_INTTYPES
+#define ACPI_USE_GPE_POLLING
+
+/* Kernel specific ACPICA configuration */
+
+#define ACPI_REDUCED_HARDWARE 0
+
+#ifdef CONFIG_ACPI_DEBUGGER
+#define ACPI_DEBUGGER
+#endif
+
+#ifdef CONFIG_ACPI_DEBUG
+#define ACPI_MUTEX_DEBUG
+#endif
+
+#include <semaphore.h>
+#include <pthread.h>
+#include <stdint.h>
+#include <malloc.h>
+#include <string.h>
+#include <ctype.h>
+typedef uint8_t u8;
+typedef uint16_t u16;
+typedef uint32_t u32;
+typedef uint64_t u64;
+typedef int8_t s8;
+typedef int16_t s16;
+typedef int32_t s32;
+typedef int64_t s64;
+
+#define ACPI_INIT_FUNCTION
+
+#ifndef CONFIG_ACPI
+
+#undef ACPI_NO_MEM_ALLOCATIONS
+#undef ACPI_NO_ERROR_MESSAGES
+#define ACPI_DEBUG_OUTPUT
+
+#define ACPI_MEM_MAPPING       struct acpi_mem_mapping
+
+#endif                         /* CONFIG_ACPI */
+
+/* Host-dependent types and defines for in-kernel ACPICA */
+
+#if INTPTR_MAX == 9223372036854775807L
+#define ACPI_MACHINE_WIDTH          64
+#else
+#define ACPI_MACHINE_WIDTH          32
+#endif
+
+#define ACPI_USE_NATIVE_DIVIDE
+#define ACPI_USE_NATIVE_MATH64
+#define ACPI_EXPORT_SYMBOL(symbol)
+
+#define acpi_semaphore                      sem_t*
+#define acpi_spinlock                       sem_t*
+#define acpi_cpu_flags                      unsigned long
+#define acpi_cache_t                        struct acpi_memory_list
+
+/* Use native version of acpi_os_allocate_zeroed */
+
+#define USE_NATIVE_ALLOCATE_ZEROED
+
+/*
+ * Overrides for in-kernel ACPICA
+ */
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_initialize
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_terminate
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_allocate
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_allocate_zeroed
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_free
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_thread_id
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_lock
+
+/*
+ * OSL interfaces used by debugger/disassembler
+ */
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_readable
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_writable
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_initialize_debugger
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_terminate_debugger
+
+/*
+ * OSL interfaces used by utilities
+ */
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_redirect_output
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_table_by_name
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_table_by_index
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_table_by_address
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_open_directory
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_next_filename
+#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_close_directory
+
+#define ACPI_MSG_ERROR          "ACPI Error: "
+#define ACPI_MSG_EXCEPTION      "ACPI Exception: "
+#define ACPI_MSG_WARNING        "ACPI Warning: "
+#define ACPI_MSG_INFO           "ACPI: "
+
+#define ACPI_MSG_BIOS_ERROR     "ACPI BIOS Error (bug): "
+#define ACPI_MSG_BIOS_WARNING   "ACPI BIOS Warning (bug): "
+
+/*
+ * Use designated initializers for function pointer structs.
+ */
+#define ACPI_STRUCT_INIT(field, value)  .field = value
+
+#else                          /* !__KERNEL__ */
+
+#define ACPI_USE_STANDARD_HEADERS
+
+#ifdef ACPI_USE_STANDARD_HEADERS
+#include <unistd.h>
+#endif
+
+/* Define/disable kernel-specific declarators */
+
+#ifndef __init
+#define __init
+#endif
+#ifndef __iomem
+#define __iomem
+#endif
+
+/* Host-dependent types and defines for user-space ACPICA */
+
+#define ACPI_FLUSH_CPU_CACHE()
+#define ACPI_CAST_PTHREAD_T(pthread) ((acpi_thread_id) (pthread))
+
+#if INTPTR_MAX == 9223372036854775807L
+#define ACPI_MACHINE_WIDTH          64
+#define COMPILER_DEPENDENT_INT64    long
+#define COMPILER_DEPENDENT_UINT64   unsigned long
+#else
+#define ACPI_MACHINE_WIDTH          32
+#define COMPILER_DEPENDENT_INT64    long long
+#define COMPILER_DEPENDENT_UINT64   unsigned long long
+#define ACPI_USE_NATIVE_DIVIDE
+#define ACPI_USE_NATIVE_MATH64
+#endif
+
+#ifndef __cdecl
+#define __cdecl
+#endif
+
+#endif                         /* __KERNEL__ */
+
+#endif                         /* __ACGNU_H__ */
diff --git a/libacpica/acpi/platform/acgnuex.h 
b/libacpica/acpi/platform/acgnuex.h
new file mode 100644
index 00000000..f1e727d0
--- /dev/null
+++ b/libacpica/acpi/platform/acgnuex.h
@@ -0,0 +1,52 @@
+#ifndef __ACGNUEX_H__
+#define __ACGNUEX_H__
+
+#ifdef __KERNEL__
+
+#define ACPI_USE_LOCAL_CACHE
+
+/*
+ * Overrides for in-kernel ACPICA
+ */
+acpi_status ACPI_INIT_FUNCTION acpi_os_initialize(void);
+
+acpi_status acpi_os_terminate(void);
+
+static inline void *acpi_os_allocate(acpi_size size)
+{
+       return (void *)malloc (size);
+}
+
+static inline void *acpi_os_allocate_zeroed(acpi_size size)
+{
+       return (void *)calloc (1, size);
+}
+
+static inline void acpi_os_free(void *memory)
+{
+       free (memory); 
+}
+
+static inline acpi_thread_id acpi_os_get_thread_id(void)
+{
+       return pthread_self();
+}
+
+static inline u8 acpi_os_readable(void *pointer, acpi_size length)
+{
+       return TRUE;
+}
+
+static inline acpi_status acpi_os_initialize_debugger(void)
+{
+       return 0;
+}
+
+static inline void acpi_os_terminate_debugger(void)
+{
+       return;
+}
+
+#endif                         /* __KERNEL__ */
+
+#endif                         /* __ACGNUEX_H__ */
-- 
2.30.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]