Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e0c437bc authored by Bob Moore's avatar Bob Moore Committed by Len Brown
Browse files

ACPICA: Linux OSL: cleanup/update/merge



Merge the OSL with the actual file used by Linux, so that the
file does not require patching when integrated with Linux. General
cleanup and some restructuring.

Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarLin Ming <ming.m.lin@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 2b09ce98
Loading
Loading
Loading
Loading
+38 −25
Original line number Diff line number Diff line
/******************************************************************************
 *
 * Name: aclinux.h - OS specific defines, etc.
 * Name: aclinux.h - OS specific defines, etc. for Linux
 *
 *****************************************************************************/

/*
 * Copyright (C) 2000 - 2008, Intel Corp.
 * Copyright (C) 2000 - 2009, Intel Corp.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
@@ -44,10 +44,13 @@
#ifndef __ACLINUX_H__
#define __ACLINUX_H__

/* Common (in-kernel/user-space) ACPICA configuration */

#define ACPI_USE_SYSTEM_CLIBRARY
#define ACPI_USE_DO_WHILE_0
#define ACPI_MUTEX_TYPE             ACPI_BINARY_SEMAPHORE


#ifdef __KERNEL__

#include <linux/string.h>
@@ -63,14 +66,17 @@
#include <linux/spinlock_types.h>
#include <asm/current.h>

/* Host-dependent types and defines */
/* Host-dependent types and defines for in-kernel ACPICA */

#define ACPI_MACHINE_WIDTH          BITS_PER_LONG
#define acpi_cache_t                        struct kmem_cache
#define acpi_spinlock                   spinlock_t *
#define ACPI_EXPORT_SYMBOL(symbol)  EXPORT_SYMBOL(symbol);
#define strtoul                     simple_strtoul

#define acpi_cache_t                        struct kmem_cache
#define acpi_spinlock                       spinlock_t *
#define acpi_cpu_flags                      unsigned long
#define acpi_thread_id                      struct task_struct *

#else /* !__KERNEL__ */

#include <stdarg.h>
@@ -79,6 +85,11 @@
#include <ctype.h>
#include <unistd.h>

/* Host-dependent types and defines for user-space ACPICA */

#define ACPI_FLUSH_CPU_CACHE()
#define acpi_thread_id                      pthread_t

#if defined(__ia64__) || defined(__x86_64__)
#define ACPI_MACHINE_WIDTH          64
#define COMPILER_DEPENDENT_INT64    long
@@ -94,17 +105,17 @@
#define __cdecl
#endif

#define ACPI_FLUSH_CPU_CACHE()
#endif /* __KERNEL__ */

/* Linux uses GCC */

#include "acgcc.h"

#define acpi_cpu_flags unsigned long

#define acpi_thread_id struct task_struct *

#ifdef __KERNEL__
/*
 * Overrides for in-kernel ACPICA
 */
static inline acpi_thread_id acpi_os_get_thread_id(void)
{
	return current;
@@ -121,6 +132,7 @@ static inline void *acpi_os_allocate(acpi_size size)
{
	return kmalloc(size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL);
}

static inline void *acpi_os_allocate_zeroed(acpi_size size)
{
	return kzalloc(size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL);
@@ -136,13 +148,14 @@ static inline void *acpi_os_acquire_object(acpi_cache_t * cache)
#define ACPI_ALLOCATE_ZEROED(a) acpi_os_allocate_zeroed(a)
#define ACPI_FREE(a)            kfree(a)

/*
 * We need to show where it is safe to preempt execution of ACPICA
 */
/* Used within ACPICA to show where it is safe to preempt execution */

#define ACPI_PREEMPTION_POINT() \
	do { \
		if (!irqs_disabled()) \
			cond_resched(); \
	} while (0)

#endif /* __KERNEL__ */

#endif /* __ACLINUX_H__ */