Skip to content

Commit

Permalink
ACPICA: Linux OSL: cleanup/update/merge
Browse files Browse the repository at this point in the history
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: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
  • Loading branch information
Bob Moore authored and Len Brown committed May 27, 2009
1 parent 2b09ce9 commit e0c437b
Showing 1 changed file with 38 additions and 25 deletions.
63 changes: 38 additions & 25 deletions include/acpi/platform/aclinux.h
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/******************************************************************************
*
* 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
Expand Down Expand Up @@ -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>
Expand All @@ -63,22 +66,30 @@
#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

#else /* !__KERNEL__ */
#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>
#include <string.h>
#include <stdlib.h>
#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
Expand All @@ -94,17 +105,17 @@
#define __cdecl
#endif

#define ACPI_FLUSH_CPU_CACHE()
#endif /* __KERNEL__ */
#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;
Expand All @@ -119,30 +130,32 @@ static inline acpi_thread_id acpi_os_get_thread_id(void)
#include <acpi/actypes.h>
static inline void *acpi_os_allocate(acpi_size size)
{
return kmalloc(size, irqs_disabled()? GFP_ATOMIC : GFP_KERNEL);
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);
return kzalloc(size, irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL);
}

static inline void *acpi_os_acquire_object(acpi_cache_t * cache)
{
return kmem_cache_zalloc(cache,
irqs_disabled()? GFP_ATOMIC : GFP_KERNEL);
irqs_disabled() ? GFP_ATOMIC : GFP_KERNEL);
}

#define ACPI_ALLOCATE(a) acpi_os_allocate(a)
#define ACPI_ALLOCATE_ZEROED(a) acpi_os_allocate_zeroed(a)
#define ACPI_FREE(a) kfree(a)
#define ACPI_ALLOCATE(a) acpi_os_allocate(a)
#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
*/
#define ACPI_PREEMPTION_POINT() \
do { \
if (!irqs_disabled()) \
cond_resched(); \
/* 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 /* __ACLINUX_H__ */
#endif /* __KERNEL__ */

#endif /* __ACLINUX_H__ */

0 comments on commit e0c437b

Please sign in to comment.