blob: e85377747e4b0370639537be92a484271e0cff65 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2012
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*******************************************************************************
37 * Filename:
38 * ---------
39 * ltm_el2_struct.h
40 *
41 * Project:
42 * --------
43 * MOLY
44 *
45 * Description:
46 * ------------
47 * message and common structure definition between LTM and EL2 modules.
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 * ==========================================================================
54 * $Log$
55 *
56 * 12 13 2013 steve.kao
57 * [MOLY00048789] [MT6290E2][EL2 RTD] UE not triggering UL data transmission
58 * Integrate change for using OS tick in OA domain
59 *
60 * 11 22 2013 timothy.yao
61 * [MOLY00047052] add trace/code for LV
62 * modify ulsdu_info structure for ipid
63 *
64 * 06 17 2013 clark.peng
65 * [MOLY00025883] [MT6290][EL2] Move shared definitions in ROHC and EL2 to OA domain
66 *
67 ****************************************************************************/
68
69
70#ifndef LTM_EL2_STRUCT_INC
71#define LTM_EL2_STRUCT_INC
72
73#include "qmu_bm.h"
74
75/**
76 * @brief DRB UL-SDU info Header
77 *
78 * note:
79 * - location : in SW control field of BM-header
80 */
81typedef struct
82{
83 /*** this 4 bytes is reserved for UPCM, DO NOT change the location ***/
84 kal_uint16 ipid;
85 kal_uint16 rsvd;
86
87 /*** Don't change the following 4 bytes layout, because ltm will use 4 bytes write to clean it***/
88#define ULSDU_INFO_HEAD_FLAG_PRIORITY 0x01
89#define ULSDU_INFO_HEAD_FLAG_CTRL_PDU 0x02
90#define ULSDU_INFO_HEAD_FLAG_RETX_WI_SN 0x04
91 kal_uint8 flag_bmp;
92 kal_uint8 rsv1;
93 kal_uint16 ori_hdr_sz;
94 /*** Don't change the above 4 bytes layout, because ltm will use 4 bytes write to clean it***/
95 /* pad for maintaining original structure when ABS TICK was used */
96 kal_uint32 rsv2;
97 /* entry tick, it will be filled by ltm using 32-bit OS tick */
98 kal_uint32 tick;
99
100 /* Tx HFN & SN */
101 kal_uint32 pdcp_count;
102}drb_ulsdu_info_head_t;
103#define GET_ULSDU_INFO_HEAD(_p) ((drb_ulsdu_info_head_t*)QBM_DES_GET_SW_CTRL_FIELD(_p))
104
105/* Get Macros */
106#define GET_DRB_ULSDU_PRIDATA(_p) \
107 (GET_ULSDU_INFO_HEAD(_p)->flag_bmp & ULSDU_INFO_HEAD_FLAG_PRIORITY)
108#define GET_DRB_ULSDU_CTRLPDU(_p) \
109 (GET_ULSDU_INFO_HEAD(_p)->flag_bmp & ULSDU_INFO_HEAD_FLAG_CTRL_PDU)
110#define GET_DRB_ULSDU_RETX(_p) \
111 (GET_ULSDU_INFO_HEAD(_p)->flag_bmp & ULSDU_INFO_HEAD_FLAG_RETX_WI_SN)
112
113/* Set Macros */
114#define SET_DRB_ULSDU_PRIDATA(_p) \
115 (GET_ULSDU_INFO_HEAD(_p)->flag_bmp |= ULSDU_INFO_HEAD_FLAG_PRIORITY)
116#define SET_DRB_ULSDU_CTRLPDU(_p) \
117 (GET_ULSDU_INFO_HEAD(_p)->flag_bmp |= ULSDU_INFO_HEAD_FLAG_CTRL_PDU)
118#define SET_DRB_ULSDU_RETX(_p) \
119 (GET_ULSDU_INFO_HEAD(_p)->flag_bmp |= ULSDU_INFO_HEAD_FLAG_RETX_WI_SN)
120
121/* Clear Macros */
122#define CLR_DRB_ULSDU_PRIDATA(_p) \
123 (GET_ULSDU_INFO_HEAD(_p)->flag_bmp &= ~ULSDU_INFO_HEAD_FLAG_PRIORITY)
124#define CLR_DRB_ULSDU_CTRLPDU(_p) \
125 (GET_ULSDU_INFO_HEAD(_p)->flag_bmp &= ~ULSDU_INFO_HEAD_FLAG_CTRL_PDU)
126#define CLR_DRB_ULSDU_RETX(_p) \
127 (GET_ULSDU_INFO_HEAD(_p)->flag_bmp &= ~ULSDU_INFO_HEAD_FLAG_RETX_WI_SN)
128#define CLR_DRB_ULSDU_FLAG_BMP(_p) \
129 (GET_ULSDU_INFO_HEAD(_p)->flag_bmp = 0)
130
131
132#endif /* ----- #ifndef LTM_EL2_STRUCT_INC ----- */
133