blob: bd9bcb91175e607815acc48b74f49e7112a0ea7f [file] [log] [blame]
/*
* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/*
* Copyright (c) 2012, The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/*
*
* Airgo Networks, Inc proprietary. All rights reserved.
* This file sysDef.h contains the common definitions used to bring up
* Sirius system.
* Author: V. K. Kandarpa
* Date: 04/13/2002
* History:-
* Date Modified by Modification Information
* --------------------------------------------------------------------
*/
#ifndef __SYSDEF_H
#define __SYSDEF_H
/// Sirius system level defitions
// NOTE: Do not program system timer tick duration to less than 1msec
/// System timer tick duration in nanoseconds
#if defined ANI_OS_TYPE_LINUX
#ifdef ANI_AP_SDK
#define SYS_TICK_DUR_NS 10000000 // 10ms
#define SYS_TICK_TO_MICRO_SECOND 10000
#else
#define SYS_TICK_DUR_NS 1000000 // 1ms
#define SYS_TICK_TO_MICRO_SECOND 1000
#endif
#elif defined ANI_OS_TYPE_OSX
#define SYS_TICK_DUR_NS 10000000 // 10ms
#define SYS_TICK_TO_MICRO_SECOND 10000
#elif defined ANI_OS_TYPE_WINDOWS
#define SYS_TICK_DUR_NS 20000000 // 20ms
#define SYS_TICK_TO_MICRO_SECOND 20000
#else
#define SYS_TICK_DUR_NS 10000000 // 10ms
#define SYS_TICK_TO_MICRO_SECOND 10000
#endif
/// System timer tick duration in miliseconds
#define SYS_TICK_DUR_MS (SYS_TICK_DUR_NS/1000000)
/// Clocks in a milisecond
#define SYS_CLOCKS_PER_MS 120000 // 120 MHz
// In Milliseconds
#define SYS_ADD_BA_RSP_DUR 1000
/// System timer tick duration in clocks
#define SYS_TICK_DUR_CLK (SYS_TICK_DUR_MS * SYS_CLOCKS_PER_MS)
/// Number of timer ticks in a second
#define SYS_TICKS_PER_SECOND (1000/SYS_TICK_DUR_MS)
/// Macro to convert MS to Ticks
#define SYS_MS_TO_TICKS(x) ((x) / SYS_TICK_DUR_MS)
/// Macro to convert Seconds to Ticks
#define SYS_SEC_TO_TICKS(x) ((x) * SYS_TICKS_PER_SECOND)
/// Macro to convert Minutes to Ticks
#define SYS_MIN_TO_TICKS(x) (((x) * 60) * SYS_TICKS_PER_SECOND)
/// MNT task processing interval in seconds
#define SYS_MNT_INTERVAL 60
/// MS to Time Units
#define SYS_MS_TO_TU(x) ((x * 1000) >> 10)
/// TU to MS
#define SYS_TU_TO_MS(x) ((x << 10) / 1000)
// --------- End of Windows & RTAI -----------
/// Message queue definitions
/// gHalMsgQ
# define SYS_HAL_Q_SIZE 200 // Holds up to 25 messages
/// gMMHhiPriorityMsgQ
# define SYS_MMH_HI_PRI_Q_SIZE 200 // Holds up to 25 messages
/// gMMHprotocolMsgQ
# define SYS_MMH_PROT_Q_SIZE 400 // Holds up to 50 messages
/// gMMHdebugMsgQ
# define SYS_MMH_DEBUG_Q_SIZE 800 // Holds up to 100 messages
/// gMAINTmsgQ
# define SYS_MNT_Q_SIZE 200 // Holds up to 25 messages
/// LIM Message Queue
# define SYS_LIM_Q_SIZE 400 // Holds up to 50 messages
/// Scheduler Message Queue
# define SYS_SCH_Q_SIZE 800 // Holds up to 25 messages
/// PMM Message Queue
# define SYS_PMM_Q_SIZE 800 // Holds up to 100 messages
/// TX Message Queue
# define SYS_TX_Q_SIZE 2048 // Holds up to 400 messages
/// RX Message Queue
# define SYS_RX_Q_SIZE 2048 // Holds up to 400 messages
/// PTT Message Queue
# define SYS_NIM_PTT_Q_SIZE 200 // Holds up to 25 messages
/// Semaphore definitions
// Data Semaphore
# define SYS_DPH_SEM_INITIAL_CNT 0
// Transport Semaphore
# define SYS_BBT_SEM_INITIAL_CNT 0
/// Thread definitions
// tHAL
# define SYS_HAL_THREAD_ENTRY_FUNCTION halEntry
# define SYS_HAL_STACK_SIZE 8192
# define SYS_HAL_THREAD_PRIORITY 2
// tDPH
# define SYS_DPH_THREAD_ENTRY_FUNCTION dphEntry
# define SYS_DPH_STACK_SIZE 8192
# define SYS_DPH_THREAD_PRIORITY 15
// tBBT
# define SYS_BBT_THREAD_ENTRY_FUNCTION bbtEntry
# define SYS_BBT_STACK_SIZE 8192
# define SYS_BBT_THREAD_PRIORITY 16
// tSCH
# define SYS_SCH_STACK_SIZE 8192
# define SYS_SCH_THREAD_PRIORITY 17
// tPMM
# define SYS_PMM_STACK_SIZE 8192
# define SYS_PMM_THREAD_PRIORITY 17
// tLIM
# define SYS_LIM_THREAD_ENTRY_FUNCTION limEntry
# define SYS_LIM_STACK_SIZE 8192
# define SYS_LIM_THREAD_PRIORITY 18
// tMAINT
# define SYS_MNT_THREAD_ENTRY_FUNCTION mntEntry
# define SYS_MNT_STACK_SIZE 8192
# define SYS_MNT_THREAD_PRIORITY 25
// tMMH
# define SYS_MMH_THREAD_ENTRY_FUNCTION mmhEntry
# define SYS_MMH_STACK_SIZE 8192
# define SYS_MMH_THREAD_PRIORITY 10
// tNIM_MNT_PKT_GEN
# define SYS_NIM_PTT_THREAD_STACK_SIZE 8192
# define SYS_NIM_PTT_THREAD_PRIORITY 28
#endif // __SYSDEF_H