ACK: [PATCH 1/3] acpica: fwts_acpica: some cosmetic tidying up.
Alex Hung
alex.hung at canonical.com
Mon Jun 10 07:45:07 UTC 2013
On 06/07/2013 04:41 PM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> This code is a little bit crufty and needs a little bit of
> cosmetic tidying up.
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
> src/acpica/fwts_acpica.c | 96 +++++++++++++++++++++++-------------------------
> 1 file changed, 45 insertions(+), 51 deletions(-)
>
> diff --git a/src/acpica/fwts_acpica.c b/src/acpica/fwts_acpica.c
> index 73bfa73..835685b 100644
> --- a/src/acpica/fwts_acpica.c
> +++ b/src/acpica/fwts_acpica.c
> @@ -31,12 +31,9 @@
> #include <signal.h>
> #include <pthread.h>
>
> -static pthread_mutex_t mutex_lock_sem_table;
> -static pthread_mutex_t mutex_thread_info;
> -
> #include "fwts.h"
>
> -/* acpica headers */
> +/* ACPICA specific headers */
> #include "acpi.h"
> #include "accommon.h"
> #include "acparser.h"
> @@ -46,37 +43,26 @@ static pthread_mutex_t mutex_thread_info;
> #include "actables.h"
> #include "acinterp.h"
> #include "acapps.h"
> -#include <pthread.h>
> -#include <errno.h>
>
> -#define ACPI_MAX_INIT_TABLES (32)
> -#define AEXEC_NUM_REGIONS (8)
> +#define ACPI_MAX_INIT_TABLES (64) /* Number of ACPI tables */
> +
> +#define MAX_SEMAPHORES (1024) /* For semaphore tracking */
> +#define MAX_THREADS (128) /* For thread tracking */
>
> -#define MAX_SEMAPHORES (1024)
> -#define MAX_THREADS (128)
> +#define MAX_WAIT_TIMEOUT (20) /* Seconds */
>
> -#define MAX_WAIT_TIMEOUT (20) /* Seconds */
> +#define ACPI_ADR_SPACE_USER_DEFINED1 (0x80)
> +#define ACPI_ADR_SPACE_USER_DEFINED2 (0xE4)
>
> +/*
> + * Semaphore accounting info
> + */
> typedef struct {
> sem_t sem; /* Semaphore handle */
> int count; /* count > 0 if acquired */
> bool used; /* Semaphore being used flag */
> } sem_info;
>
> -typedef void * (*PTHREAD_CALLBACK)(void *);
> -
> -BOOLEAN AcpiGbl_IgnoreErrors = FALSE;
> -UINT8 AcpiGbl_RegionFillValue = 0;
> -
> -/*
> - * Used to account for semaphores used by AcpiOs*Semaphore()
> - */
> -static sem_info sem_table[MAX_SEMAPHORES];
> -
> -static ACPI_TABLE_DESC Tables[ACPI_MAX_INIT_TABLES];
> -
> -static bool region_handler_called;
> -
> /*
> * Used to account for threads used by AcpiOsExecute
> */
> @@ -85,7 +71,19 @@ typedef struct {
> pthread_t thread; /* thread info */
> } fwts_thread;
>
> -static fwts_thread threads[MAX_THREADS];
> +typedef void * (*pthread_callback)(void *);
> +
> +BOOLEAN AcpiGbl_IgnoreErrors = FALSE;
> +UINT8 AcpiGbl_RegionFillValue = 0;
> +
> +static ACPI_TABLE_DESC Tables[ACPI_MAX_INIT_TABLES]; /* ACPICA Table descriptors */
> +static bool region_handler_called; /* Region handler tracking */
> +
> +static sem_info sem_table[MAX_SEMAPHORES]; /* Semaphore accounting for AcpiOs*Semaphore() */
> +static pthread_mutex_t mutex_lock_sem_table; /* Semaphore accounting mutex */
> +
> +static fwts_thread threads[MAX_THREADS]; /* Thread accounting for AcpiOsExecute */
> +static pthread_mutex_t mutex_thread_info; /* Thread accounting mutex */
>
> /*
> * Static copies of ACPI tables used by ACPICA execution engine
> @@ -96,29 +94,10 @@ static ACPI_TABLE_RSDP *fwts_acpica_RSDP;
> static ACPI_TABLE_FADT *fwts_acpica_FADT;
> static void *fwts_acpica_DSDT;
>
> -static fwts_framework *fwts_acpica_fw; /* acpica context copy of fw */
> -static bool fwts_acpica_init_called; /* > 0, ACPICA initialised */
> +static fwts_framework *fwts_acpica_fw; /* acpica context copy of fw */
> +static bool fwts_acpica_init_called; /* > 0, ACPICA initialised */
> static fwts_acpica_log_callback fwts_acpica_log_callback_func = NULL; /* logging call back func */
>
> -#define ACPI_ADR_SPACE_USER_DEFINED1 0x80
> -#define ACPI_ADR_SPACE_USER_DEFINED2 0xE4
> -
> -static ACPI_ADR_SPACE_TYPE fwts_space_id_list[] =
> -{
> - ACPI_ADR_SPACE_SYSTEM_MEMORY,
> - ACPI_ADR_SPACE_SYSTEM_IO,
> - ACPI_ADR_SPACE_EC,
> - ACPI_ADR_SPACE_SMBUS,
> - ACPI_ADR_SPACE_CMOS,
> - ACPI_ADR_SPACE_GSBUS,
> - ACPI_ADR_SPACE_GPIO,
> - ACPI_ADR_SPACE_PCI_BAR_TARGET,
> - ACPI_ADR_SPACE_IPMI,
> - ACPI_ADR_SPACE_FIXED_HARDWARE,
> - ACPI_ADR_SPACE_USER_DEFINED1,
> - ACPI_ADR_SPACE_USER_DEFINED2
> -};
> -
> /* Semaphore Tracking */
>
> /*
> @@ -667,7 +646,7 @@ ACPI_STATUS AcpiOsReadPort(ACPI_IO_ADDRESS addr, UINT32 *value, UINT32 width)
> }
>
> typedef struct {
> - PTHREAD_CALLBACK func;
> + pthread_callback func;
> void * context;
> int thread_index;
> } fwts_func_wrapper_context;
> @@ -713,13 +692,13 @@ ACPI_STATUS AcpiOsExecute(
> return AE_NO_MEMORY;
> }
>
> - ctx->func = (PTHREAD_CALLBACK)function;
> + ctx->func = (pthread_callback)function;
> ctx->context = func_context;
> ctx->thread_index = i;
> threads[i].used = true;
>
> ret = pthread_create(&threads[i].thread, NULL,
> - (PTHREAD_CALLBACK)fwts_pthread_func_wrapper, ctx);
> + (pthread_callback)fwts_pthread_func_wrapper, ctx);
> pthread_mutex_unlock(&mutex_thread_info);
>
> if (ret)
> @@ -787,6 +766,22 @@ int fwtsInstallEarlyHandlers(fwts_framework *fw)
> int i;
> ACPI_HANDLE handle;
>
> + static ACPI_ADR_SPACE_TYPE fwts_space_id_list[] =
> + {
> + ACPI_ADR_SPACE_SYSTEM_MEMORY,
> + ACPI_ADR_SPACE_SYSTEM_IO,
> + ACPI_ADR_SPACE_EC,
> + ACPI_ADR_SPACE_SMBUS,
> + ACPI_ADR_SPACE_CMOS,
> + ACPI_ADR_SPACE_GSBUS,
> + ACPI_ADR_SPACE_GPIO,
> + ACPI_ADR_SPACE_PCI_BAR_TARGET,
> + ACPI_ADR_SPACE_IPMI,
> + ACPI_ADR_SPACE_FIXED_HARDWARE,
> + ACPI_ADR_SPACE_USER_DEFINED1,
> + ACPI_ADR_SPACE_USER_DEFINED2
> + };
> +
> if (AcpiInstallInterfaceHandler(fwts_interface_handler) != AE_OK) {
> fwts_log_error(fw, "Failed to install interface handler.");
> return FWTS_ERROR;
> @@ -904,7 +899,6 @@ int fwts_acpica_init(fwts_framework *fw)
>
> AcpiOsRedirectOutput(stderr);
>
> -
> if (ACPI_FAILURE(AcpiInitializeSubsystem())) {
> fwts_log_error(fw, "Failed to initialise ACPICA subsystem.");
> return FWTS_ERROR;
>
Acked-by: Alex Hung <alex.hung at canonical.com>
--
Cheers,
Alex Hung
More information about the fwts-devel
mailing list