Commit 5d658c5e authored by laurent's avatar laurent

remove constructor key word

parent 20300131
/* /*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. except in compliance with the License.
* You may obtain a copy of the License at You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698 http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and See the License for the specific language governing permissions and
* limitations under the License. limitations under the License.
*------------------------------------------------------------------------------- -------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance: For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org contact@openairinterface.org
*/ */
/*!\brief Initilization and reconfiguration routines for LTE PHY */ /*!\brief Initilization and reconfiguration routines for LTE PHY */
#include "phy_init.h" #include "phy_init.h"
...@@ -27,12 +27,11 @@ ...@@ -27,12 +27,11 @@
#include "PHY/LTE_REFSIG/lte_refsig.h" #include "PHY/LTE_REFSIG/lte_refsig.h"
#include "PHY/LTE_TRANSPORT/transport_common_proto.h" #include "PHY/LTE_TRANSPORT/transport_common_proto.h"
void generate_64qam_table(void) void init_sss(void);
{
void generate_64qam_table(void) {
int a,b,c,index; int a,b,c,index;
for (a=-1; a<=1; a+=2) for (a=-1; a<=1; a+=2)
for (b=-1; b<=1; b+=2) for (b=-1; b<=1; b+=2)
for (c=-1; c<=1; c+=2) { for (c=-1; c<=1; c+=2) {
...@@ -41,9 +40,7 @@ void generate_64qam_table(void) ...@@ -41,9 +40,7 @@ void generate_64qam_table(void)
} }
} }
void generate_16qam_table(void) void generate_16qam_table(void) {
{
int a,b,index; int a,b,index;
for (a=-1; a<=1; a+=2) for (a=-1; a<=1; a+=2)
...@@ -53,54 +50,40 @@ void generate_16qam_table(void) ...@@ -53,54 +50,40 @@ void generate_16qam_table(void)
} }
} }
void generate_qpsk_table(void) void generate_qpsk_table(void) {
{
int a,index; int a,index;
for (a=-1; a<=1; a+=2) { for (a=-1; a<=1; a+=2) {
index = (1+a)/2; index = (1+a)/2;
qpsk_table[index] = -a*QPSK; qpsk_table[index] = -a*QPSK;
} }
} }
void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) {
{
ccodelte_init(); ccodelte_init();
ccodelte_init_inv(); ccodelte_init_inv();
init_dfts(); init_dfts();
phy_generate_viterbi_tables_lte(); phy_generate_viterbi_tables_lte();
load_codinglib(); load_codinglib();
lte_sync_time_init(frame_parms); lte_sync_time_init(frame_parms);
generate_ul_ref_sigs(); generate_ul_ref_sigs();
generate_ul_ref_sigs_rx(); generate_ul_ref_sigs_rx();
generate_64qam_table(); generate_64qam_table();
generate_16qam_table(); generate_16qam_table();
generate_qpsk_table(); generate_qpsk_table();
generate_RIV_tables(); generate_RIV_tables();
init_unscrambling_lut(); init_unscrambling_lut();
init_scrambling_lut(); init_scrambling_lut();
//set_taus_seed(1328); //set_taus_seed(1328);
init_sss();
} }
void free_lte_top(void) void free_lte_top(void) {
{
free_codinglib(); free_codinglib();
lte_sync_time_free(); lte_sync_time_free();
/* free_ul_ref_sigs() is called in phy_free_lte_eNB() */ /* free_ul_ref_sigs() is called in phy_free_lte_eNB() */
} }
/* /*
* @}*/ @}*/
...@@ -9,19 +9,19 @@ int16_t *d0_sss; ...@@ -9,19 +9,19 @@ int16_t *d0_sss;
int16_t *d5_sss; int16_t *d5_sss;
#define MyAssert(x) { if(!(x)) { printf("Error in table intialization: %s:%d\n",__FILE__,__LINE__); exit(1);}} #define MyAssert(x) { if(!(x)) { printf("Error in table intialization: %s:%d\n",__FILE__,__LINE__); exit(1);}}
#define gen(table, formula) { \ #define gen(table, formula) { \
int x[31]= {0}; \ int x[31]= {0}; \
x[4]=1; \ x[4]=1; \
for(int i=0; i<26; i++) \ for(int i=0; i<26; i++) \
x[i+5]=formula; \ x[i+5]=formula; \
for (int i=0; i<31; i++) \ for (int i=0; i<31; i++) \
table[i]=1-2*x[i]; \ table[i]=1-2*x[i]; \
} }
#define mod31(a) (a)%31 #define mod31(a) (a)%31
#define mod2(a) (a)%2 #define mod2(a) (a)%2
#define mod8(a) (a)%8 #define mod8(a) (a)%8
__attribute__((constructor)) static void init_sss(void) { void init_sss(void) {
MyAssert(0==posix_memalign((void **)&d0_sss, 16,504*31*2*sizeof(*d0_sss))); MyAssert(0==posix_memalign((void **)&d0_sss, 16,504*31*2*sizeof(*d0_sss)));
MyAssert(0==posix_memalign((void **)&d5_sss, 16,504*31*2*sizeof(*d5_sss))); MyAssert(0==posix_memalign((void **)&d5_sss, 16,504*31*2*sizeof(*d5_sss)));
int s[31]; int s[31];
...@@ -39,11 +39,12 @@ __attribute__((constructor)) static void init_sss(void) { ...@@ -39,11 +39,12 @@ __attribute__((constructor)) static void init_sss(void) {
int m0 = mprime%31; int m0 = mprime%31;
int m1 = (m0+mprime/31+1)%31; int m1 = (m0+mprime/31+1)%31;
int rowIndex=(Nid2+3*Nid1)*31*2; int rowIndex=(Nid2+3*Nid1)*31*2;
for (int i=0; i<31; i++) { for (int i=0; i<31; i++) {
d0_sss[rowIndex+i*2]= s[mod31(i+m0)] * c[mod31(i+Nid2)]; d0_sss[rowIndex+i*2]= s[mod31(i+m0)] * c[mod31(i+Nid2)];
d5_sss[rowIndex+i*2]= s[mod31(i+m1)] * c[mod31(i+Nid2)]; d5_sss[rowIndex+i*2]= s[mod31(i+m1)] * c[mod31(i+Nid2)];
d0_sss[rowIndex+i*2+1]= s[mod31(i+m1)] * c[mod31(i+Nid2+3)] * z[mod31(i+mod8(m0))]; d0_sss[rowIndex+i*2+1]= s[mod31(i+m1)] * c[mod31(i+Nid2+3)] * z[mod31(i+mod8(m0))];
d5_sss[rowIndex+i*2+1]= s[mod31(i+m0)] * c[mod31(i+Nid2+3)] * z[mod31(i+mod8(m1))]; d5_sss[rowIndex+i*2+1]= s[mod31(i+m0)] * c[mod31(i+Nid2+3)] * z[mod31(i+mod8(m1))];
} }
} }
} }
...@@ -52,7 +53,7 @@ __attribute__((constructor)) static void init_sss(void) { ...@@ -52,7 +53,7 @@ __attribute__((constructor)) static void init_sss(void) {
#ifdef SSS_TABLES_TEST #ifdef SSS_TABLES_TEST
void main () { void main () {
printf("int16_t d0_sss[504*62] = {"); printf("int16_t d0_sss[504*62] = {");
for (int i=0; i<504*62; i++) for (int i=0; i<504*62; i++)
printf("%d,\n",d0_sss[i]); printf("%d,\n",d0_sss[i]);
...@@ -63,6 +64,5 @@ void main () { ...@@ -63,6 +64,5 @@ void main () {
printf("%d,\n",d5_sss[i]); printf("%d,\n",d5_sss[i]);
printf("};\n\n"); printf("};\n\n");
} }
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment