/******************************************************************************* | |
Copyright (C) Marvell International Ltd. and its affiliates | |
This software file (the "File") is owned and distributed by Marvell | |
International Ltd. and/or its affiliates ("Marvell") under the following | |
alternative licensing terms. Once you have made an election to distribute the | |
File under one of the following license alternatives, please (i) delete this | |
introductory statement regarding license alternatives, (ii) delete the two | |
license alternatives that you have not elected to use and (iii) preserve the | |
Marvell copyright notice above. | |
******************************************************************************** | |
Marvell Commercial License Option | |
If you received this File from Marvell and you have entered into a commercial | |
license agreement (a "Commercial License") with Marvell, the File is licensed | |
to you under the terms of the applicable Commercial License. | |
******************************************************************************** | |
Marvell GPL License Option | |
If you received this File from Marvell, you may opt to use, redistribute and/or | |
modify this File in accordance with the terms and conditions of the General | |
Public License Version 2, June 1991 (the "GPL License"), a copy of which is | |
available along with the File in the license.txt file or by writing to the Free | |
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or | |
on the worldwide web at http://www.gnu.org/licenses/gpl.txt. | |
THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED | |
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY | |
DISCLAIMED. The GPL License provides additional details about this warranty | |
disclaimer. | |
******************************************************************************** | |
Marvell BSD License Option | |
If you received this File from Marvell, you may opt to use, redistribute and/or | |
modify this File under the following licensing terms. | |
Redistribution and use in source and binary forms, with or without modification, | |
are permitted provided that the following conditions are met: | |
* Redistributions of source code must retain the above copyright notice, | |
this list of conditions and the following disclaimer. | |
* Redistributions in binary form must reproduce the above copyright | |
notice, this list of conditions and the following disclaimer in the | |
documentation and/or other materials provided with the distribution. | |
* Neither the name of Marvell nor the names of its contributors may be | |
used to endorse or promote products derived from this software without | |
specific prior written permission. | |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | |
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR | |
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | |
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
******************************************************************************/ | |
/****************************************************************************** | |
** FILE : gponOnuSrvc.h ** | |
** ** | |
** DESCRIPTION : This file contains ONU GPON Services routines ** | |
******************************************************************************* | |
* * | |
* MODIFICATION HISTORY: * | |
* * | |
* 29Oct06 Oren Ben Hayun created * | |
* =========================================================================== * | |
******************************************************************************/ | |
#ifndef _ONU_GPON_SRVC_H | |
#define _ONU_GPON_SRVC_H | |
/* Include Files | |
------------------------------------------------------------------------------*/ | |
/* Definitions | |
------------------------------------------------------------------------------*/ | |
#define ONU_GPON_LOG_INTERRUPT (1) | |
#define ONU_GPON_LOG_INTERRUPT_XVR_SD (2) | |
#define ONU_GPON_LOG_INTERRUPT_LOF (3) | |
#define ONU_GPON_LOG_INTERRUPT_SERDES_START (4) | |
#define ONU_GPON_LOG_INTERRUPT_SERDES_STOP (5) | |
#define ONU_GPON_LOG_STATE (6) | |
#define ONU_GPON_LOG_MSG (7) | |
#define ONU_GPON_LOG_MSG_CONTENT (8) | |
#define ONU_GPON_LOG_SIZE (512) | |
#define TCONT_CLEAN_EVENT (0) | |
#define TCONT_CLEAN_ALL_EVENT (1) | |
#define TCONT_ACTIVE_EVENT (2) | |
#define TCONT_FLUSH_READY_STATE (1) | |
#define TCONT_FLUSH_RUNNING_STATE (2) | |
#define TCONT_FLUSH_BLOCKING_STATE (3) | |
/* Enums | |
------------------------------------------------------------------------------*/ | |
/* Typedefs | |
------------------------------------------------------------------------------*/ | |
typedef struct | |
{ | |
MV_U32 bitMask; | |
MV_U32 blockSize; | |
}S_DbrBlockSize; | |
typedef struct | |
{ | |
MV_U16 event; | |
MV_U16 state; | |
MV_U32 time; | |
MV_U32 dataVal1; | |
MV_U32 dataVal2; | |
MV_U32 dataVal3; | |
}S_OnuGponLogEntry; | |
/* Global variables | |
------------------------------------------------------------------------------*/ | |
extern S_onuPonWork gponTcontCleanWork[8]; | |
extern S_onuPonWork gponTcontCleanAllWork; | |
extern S_onuPonWork gponTcontActiveWork[8]; | |
extern S_onuPonWorkQueue gponTcontFlushWq; | |
/* Global functions | |
------------------------------------------------------------------------------*/ | |
MV_STATUS onuGponSrvcInit(void); | |
MV_STATUS onuGponSrvcSerialNumberSet(MV_U8 *serialNumber); | |
MV_STATUS onuGponSrvcConstPloamFromDbInit(MV_BOOL initTime); | |
MV_STATUS onuGponSrvcOnuIdUpdate(MV_U32 onuId, MV_BOOL valid); | |
void onuGponSrvcAlarmNotify(MV_U32 alarm, MV_U32 status); | |
void onuGponSrvcStatusNotify(MV_U32 status); | |
void onuGponSrvcOmccNotify(MV_U32 omccPortId); | |
void onuGponSrvcDisableMsgNotify(MV_BOOL disable); | |
unsigned long onuGponSrvcUpdateCrc(unsigned long crc_accum, char *data_blk_ptr, int data_blk_size); | |
unsigned int onuGponSrvcCalcCrc(unsigned char msg[], int size); | |
void onuGponSrvcAesKeyGenerate(MV_U8 *key); | |
MV_STATUS onuGponSrvcDbrBlockSizeSet(MV_U32 blockSize, MV_U32 *actualBlockSize); | |
MV_STATUS onuGponSrvcRangingRandomInit(void); | |
void onuGponSyncLog(MV_U32 event, MV_U32 data1, MV_U32 data2, MV_U32 data3); | |
void onuGponSyncLogEnable(MV_U32 enable); | |
void onuGponSyncLogPrint(void); | |
extern void onuGponWqTcontFunc(struct work_struct *work); | |
extern MV_STATUS onuGponWqTcontFlush(MV_U32 tcont); | |
extern MV_STATUS onuGponWqTcontActivate(MV_U32 tcont); | |
/* Macros | |
------------------------------------------------------------------------------*/ | |
#endif /* _ONU_GPON_APM_H */ | |