blob: a766c0cb1b248c44bb449cd5e672c5112147f049 [file] [log] [blame]
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
* syscomp_config.h
*
* Project:
* --------
* Maui_Software
*
* Description:
* ------------
* The file contains declarations of system component module configuration
* variables, and routines.
*
* Author:
* -------
* -------
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
#ifndef _SYSCOMP_CONFIG_H
#define _SYSCOMP_CONFIG_H
/*************************************************************************
* Include Header Files
*************************************************************************/
#include "kal_general_types.h"
#include "kal_public_defs.h"
#include "stack_config.h"
#include "stack_types.h"
#include "hisr_config.h"
#define TASK_NO_CREATE_PATTERN 0xF0F0F0F0
// For FPU enable, we need extra 144 byte stack size for storing FPU context
#ifdef __ARM_FPUV2__
#define VFP_CONTEXT_SAVE_SPACE 144
#else
#define VFP_CONTEXT_SAVE_SPACE 0
#endif
/*On demand page will run some functions on task's stack*/
#if defined(__ESL_COSIM_LTE__)
#define VSPRINTF_STACK_SPACE 0x1000
#define TASK_STACK_COMMON_PLUS (VFP_CONTEXT_SAVE_SPACE + VSPRINTF_STACK_SPACE)
#define HISR_STACK_COMMON_PLUS (VFP_CONTEXT_SAVE_SPACE + VSPRINTF_STACK_SPACE)
#else /* __ESL_COSIM_LTE__ */
#define TASK_STACK_COMMON_PLUS (VFP_CONTEXT_SAVE_SPACE)
#define HISR_STACK_COMMON_PLUS (VFP_CONTEXT_SAVE_SPACE)
#endif /* __ESL_COSIM_LTE__ */
/*************************************************************************
* STRUCT
* syscomp_info_struct
*
* DESCRIPTION
* The structure defines component task configuration information
*
* FIELDS
* comp_entry_func - component task's entry function
* comp_cfg_func - component task's configurantion handler
* comp_init_func - component task's initialization handler
* comp_reset_func - component task's reset handler
* comp_end_func - component task's termination handler
* comp_modmain_func - component task's module main handler
*
* GLOBALS AFFECTED
*
*************************************************************************/
typedef struct {
kal_task_func_ptr comp_entry_func;
task_init_func_ptr comp_init_func;
task_reset_func_ptr comp_reset_func;
} comptask_handler_struct;
typedef kal_bool (*kal_create_func_ptr)(comptask_handler_struct **);
/*************************************************************************
* STRUCT
* comptask_info_struct
*
* DESCRIPTION
* The structure defines component task configuration information
*
* FIELDS
* comp_name_ptr - pointer to component task name
* comp_qname_ptr - pointer to component task's external queue name
* comp_priority - component task's priority
* comp_stack_size - component task's stack size
* comp_ext_qsize - component task's external queue size
* comp_int_qsize - component task's internal queue size
* comp_create_func- component entity's create function
*
* GLOBALS AFFECTED
*
*************************************************************************/
typedef struct {
kal_char * comp_name_ptr;
kal_char * comp_qname_ptr;
kal_uint32 comp_priority;
kal_uint32 comp_stack_size;
kal_create_func_ptr comp_create_func;
kal_bool comp_internal_ram_stack;
kal_uint8 comp_ext_qsize;
kal_uint8 comp_int_qsize;
kal_uint8 comp_boot_mode;
kal_affinity_group comp_affinity_attribute;
kal_bool comp_affinity_dynamic;
kal_task_group_id comp_affinity_group_id;
} comptask_info_struct;
typedef struct {
kal_hisr index;
kal_uint8 priority;
kal_uint8 options;
kal_uint8 qsize;
kal_uint32 stack_size;
kal_hisr_func_ptr entry_func;
kal_char * hisr_name;
kal_affinity_group affinity_attribute;
kal_bool affinity_dynamic;
} hisr_parameter_s;
typedef struct {
kal_char * mof_name;
} mof_info_struct;
typedef enum {
INT_GROUP_0,
INT_GROUP_1,
INT_GROUP_2,
INT_GROUP_3,
INT_GROUP_4,
INT_GROUP_5,
INT_GROUP_6,
INT_GROUP_7,
INT_GROUP_8,
INT_GROUP_9,
INT_GROUP_10,
INT_GROUP_11,
INT_GROUP_12,
INT_GROUP_13,
INT_GROUP_14,
INT_GROUP_15,
#if defined(__MD97__)
INT_GROUP_16,
INT_GROUP_17,
INT_GROUP_18,
INT_GROUP_19,
INT_GROUP_20,
INT_GROUP_21,
INT_GROUP_22,
INT_GROUP_23,
INT_GROUP_24,
INT_GROUP_25,
INT_GROUP_26,
INT_GROUP_27,
INT_GROUP_28,
INT_GROUP_29,
INT_GROUP_30,
INT_GROUP_31,
#endif
} irq_int_group_e;
typedef enum {
DYNAMIC_TYPE,
BROADCAST_TYPE,
} irq_type_e;
typedef struct {
kal_uint32 irq_id;
irq_int_group_e irq_group;
irq_type_e irq_type;
irq_isr_hdlr_ptr irq_hdlr;
irq_init_func_ptr irq_init_func;
kal_bool irq_sensitivity;
kal_bool irq_unmask;
kal_uint8 isr_q_size;
kal_uint32 isr_mod_id;
kal_char * description;
} isr_config_s;
typedef struct {
kal_uint32 irq_id;
kal_uint8 wq_size;
void * wq_name;
} isr_mtwq_s;
typedef struct {
kal_uint32 task_index;
kal_task_clean_hdlr_ptr clean_hdlr;
kal_bool option;
kal_bool executed;
} task_clean_s;
/*************************************************************************
* STRUCT
* comp_range_s
*
* DESCRIPTION
* The structure defines component task/MSG/SAP index max number and tail information
*
* FIELDS
* comp_max - max number of task/MSG/SAP
* comp_tail - tail of task/MSG/SAP
*
*************************************************************************/
typedef struct {
kal_uint32 comp_max;
kal_uint32 comp_tail;
} comp_range_s;
#endif /* _SYSCOMP_CONFIG_H */