1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-11-05 01:26:24 +00:00

Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into next

This commit is contained in:
Carles Fernandez 2018-03-04 02:09:23 +01:00
commit 622786aed1
383 changed files with 8704 additions and 8229 deletions

View File

@ -54,7 +54,8 @@ galileo_pcps_8ms_acquisition_cc::galileo_pcps_8ms_acquisition_cc(
unsigned int sampled_ms, unsigned int max_dwells, unsigned int sampled_ms, unsigned int max_dwells,
unsigned int doppler_max, long freq, long fs_in, unsigned int doppler_max, long freq, long fs_in,
int samples_per_ms, int samples_per_code, int samples_per_ms, int samples_per_code,
bool dump, std::string dump_filename) : gr::block("galileo_pcps_8ms_acquisition_cc", bool dump,
std::string dump_filename) : gr::block("galileo_pcps_8ms_acquisition_cc",
gr::io_signature::make(1, 1, sizeof(gr_complex) * sampled_ms * samples_per_ms), gr::io_signature::make(1, 1, sizeof(gr_complex) * sampled_ms * samples_per_ms),
gr::io_signature::make(0, 0, sizeof(gr_complex) * sampled_ms * samples_per_ms)) gr::io_signature::make(0, 0, sizeof(gr_complex) * sampled_ms * samples_per_ms))
{ {

View File

@ -71,9 +71,7 @@ gps_pcps_acquisition_fpga_sc::gps_pcps_acquisition_fpga_sc(
int samples_per_code, int vector_length, unsigned int nsamples_total, int samples_per_code, int vector_length, unsigned int nsamples_total,
bool bit_transition_flag, bool use_CFAR_algorithm_flag, bool bit_transition_flag, bool use_CFAR_algorithm_flag,
unsigned int select_queue_Fpga, std::string device_name, bool dump, unsigned int select_queue_Fpga, std::string device_name, bool dump,
std::string dump_filename) : std::string dump_filename) : gr::block("pcps_acquisition_fpga_sc",
gr::block("pcps_acquisition_fpga_sc",
gr::io_signature::make(0, 0, sizeof(lv_16sc_t)), gr::io_signature::make(0, 0, sizeof(lv_16sc_t)),
gr::io_signature::make(0, 0, 0)) gr::io_signature::make(0, 0, 0))
{ {

View File

@ -65,7 +65,8 @@ pcps_acquisition::pcps_acquisition(
int samples_per_ms, int samples_per_code, int samples_per_ms, int samples_per_code,
bool bit_transition_flag, bool use_CFAR_algorithm_flag, bool bit_transition_flag, bool use_CFAR_algorithm_flag,
bool dump, bool blocking, bool dump, bool blocking,
std::string dump_filename, size_t it_size) : gr::block("pcps_acquisition", std::string dump_filename,
size_t it_size) : gr::block("pcps_acquisition",
gr::io_signature::make(1, 1, it_size * sampled_ms * samples_per_ms * (bit_transition_flag ? 2 : 1)), gr::io_signature::make(1, 1, it_size * sampled_ms * samples_per_ms * (bit_transition_flag ? 2 : 1)),
gr::io_signature::make(0, 0, it_size * sampled_ms * samples_per_ms * (bit_transition_flag ? 2 : 1))) gr::io_signature::make(0, 0, it_size * sampled_ms * samples_per_ms * (bit_transition_flag ? 2 : 1)))
{ {

View File

@ -61,7 +61,8 @@ pcps_cccwsr_acquisition_cc::pcps_cccwsr_acquisition_cc(
unsigned int sampled_ms, unsigned int max_dwells, unsigned int sampled_ms, unsigned int max_dwells,
unsigned int doppler_max, long freq, long fs_in, unsigned int doppler_max, long freq, long fs_in,
int samples_per_ms, int samples_per_code, int samples_per_ms, int samples_per_code,
bool dump, std::string dump_filename) : gr::block("pcps_cccwsr_acquisition_cc", bool dump,
std::string dump_filename) : gr::block("pcps_cccwsr_acquisition_cc",
gr::io_signature::make(1, 1, sizeof(gr_complex) * sampled_ms * samples_per_ms), gr::io_signature::make(1, 1, sizeof(gr_complex) * sampled_ms * samples_per_ms),
gr::io_signature::make(0, 0, sizeof(gr_complex) * sampled_ms * samples_per_ms)) gr::io_signature::make(0, 0, sizeof(gr_complex) * sampled_ms * samples_per_ms))
{ {

View File

@ -67,7 +67,8 @@ pcps_quicksync_acquisition_cc::pcps_quicksync_acquisition_cc(
unsigned int doppler_max, long freq, long fs_in, unsigned int doppler_max, long freq, long fs_in,
int samples_per_ms, int samples_per_code, int samples_per_ms, int samples_per_code,
bool bit_transition_flag, bool bit_transition_flag,
bool dump, std::string dump_filename) : gr::block("pcps_quicksync_acquisition_cc", bool dump,
std::string dump_filename) : gr::block("pcps_quicksync_acquisition_cc",
gr::io_signature::make(1, 1, (sizeof(gr_complex) * sampled_ms * samples_per_ms)), gr::io_signature::make(1, 1, (sizeof(gr_complex) * sampled_ms * samples_per_ms)),
gr::io_signature::make(0, 0, (sizeof(gr_complex) * sampled_ms * samples_per_ms))) gr::io_signature::make(0, 0, (sizeof(gr_complex) * sampled_ms * samples_per_ms)))
{ {

View File

@ -76,7 +76,8 @@ pcps_tong_acquisition_cc::pcps_tong_acquisition_cc(
long freq, long fs_in, int samples_per_ms, long freq, long fs_in, int samples_per_ms,
int samples_per_code, unsigned int tong_init_val, int samples_per_code, unsigned int tong_init_val,
unsigned int tong_max_val, unsigned int tong_max_dwells, unsigned int tong_max_val, unsigned int tong_max_dwells,
bool dump, std::string dump_filename) : gr::block("pcps_tong_acquisition_cc", bool dump,
std::string dump_filename) : gr::block("pcps_tong_acquisition_cc",
gr::io_signature::make(1, 1, sizeof(gr_complex) * sampled_ms * samples_per_ms), gr::io_signature::make(1, 1, sizeof(gr_complex) * sampled_ms * samples_per_ms),
gr::io_signature::make(0, 0, sizeof(gr_complex) * sampled_ms * samples_per_ms)) gr::io_signature::make(0, 0, sizeof(gr_complex) * sampled_ms * samples_per_ms))
{ {

View File

@ -50,7 +50,8 @@
#define __CLFFT_H #define __CLFFT_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
#include <stdio.h> #include <stdio.h>

View File

@ -218,8 +218,7 @@ static string baseKernels = string(
" fftKernel16((a), dir); \\\n" " fftKernel16((a), dir); \\\n"
" fftKernel16((a) + 16, dir); \\\n" " fftKernel16((a) + 16, dir); \\\n"
" bitreverse32((a)); \\\n" " bitreverse32((a)); \\\n"
"}\n\n" "}\n\n");
);
static string twistKernelInterleaved = string( static string twistKernelInterleaved = string(
"__kernel void \\\n" "__kernel void \\\n"
@ -243,8 +242,7 @@ static string twistKernelInterleaved = string(
" startIndex += numCols; \\\n" " startIndex += numCols; \\\n"
" } \\\n" " } \\\n"
" } \\\n" " } \\\n"
"} \\\n" "} \\\n");
);
static string twistKernelPlannar = string( static string twistKernelPlannar = string(
"__kernel void \\\n" "__kernel void \\\n"
@ -269,9 +267,7 @@ static string twistKernelPlannar = string(
" startIndex += numCols; \\\n" " startIndex += numCols; \\\n"
" } \\\n" " } \\\n"
" } \\\n" " } \\\n"
"} \\\n" "} \\\n");
);
#endif #endif

View File

@ -95,8 +95,7 @@ allocateTemporaryBufferPlannar(cl_fft_plan *plan, cl_uint batchSize)
return err; return err;
} }
void void getKernelWorkDimensions(cl_fft_plan *plan, cl_fft_kernel_info *kernelInfo, cl_int *batchSize, size_t *gWorkItems, size_t *lWorkItems)
getKernelWorkDimensions(cl_fft_plan *plan, cl_fft_kernel_info *kernelInfo, cl_int *batchSize, size_t *gWorkItems, size_t *lWorkItems)
{ {
*lWorkItems = kernelInfo->num_workitems_per_workgroup; *lWorkItems = kernelInfo->num_workitems_per_workgroup;
int numWorkGroups = kernelInfo->num_workgroups; int numWorkGroups = kernelInfo->num_workgroups;
@ -193,8 +192,8 @@ clFFT_ExecuteInterleaved( cl_command_queue queue, clFFT_Plan Plan, cl_int batchS
} }
// no dram shuffle (transpose required) transform // no dram shuffle (transpose required) transform
// all kernels can execute in-place. // all kernels can execute in-place.
else { else
{
while (kernelInfo) while (kernelInfo)
{ {
s = batchSize; s = batchSize;
@ -297,8 +296,8 @@ clFFT_ExecutePlannar( cl_command_queue queue, clFFT_Plan Plan, cl_int batchSize,
} }
} }
// no dram shuffle (transpose required) transform // no dram shuffle (transpose required) transform
else { else
{
while (kernelInfo) while (kernelInfo)
{ {
s = batchSize; s = batchSize;
@ -402,4 +401,3 @@ clFFT_1DTwistPlannar(clFFT_Plan Plan, cl_command_queue queue, cl_mem array_real,
return err; return err;
} }

View File

@ -135,41 +135,56 @@ getRadixArray(unsigned int n, unsigned int *radixArray, unsigned int *numRadices
case 16: case 16:
*numRadices = 2; *numRadices = 2;
radixArray[0] = 8; radixArray[1] = 2; radixArray[0] = 8;
radixArray[1] = 2;
break; break;
case 32: case 32:
*numRadices = 2; *numRadices = 2;
radixArray[0] = 8; radixArray[1] = 4; radixArray[0] = 8;
radixArray[1] = 4;
break; break;
case 64: case 64:
*numRadices = 2; *numRadices = 2;
radixArray[0] = 8; radixArray[1] = 8; radixArray[0] = 8;
radixArray[1] = 8;
break; break;
case 128: case 128:
*numRadices = 3; *numRadices = 3;
radixArray[0] = 8; radixArray[1] = 4; radixArray[2] = 4; radixArray[0] = 8;
radixArray[1] = 4;
radixArray[2] = 4;
break; break;
case 256: case 256:
*numRadices = 4; *numRadices = 4;
radixArray[0] = 4; radixArray[1] = 4; radixArray[2] = 4; radixArray[3] = 4; radixArray[0] = 4;
radixArray[1] = 4;
radixArray[2] = 4;
radixArray[3] = 4;
break; break;
case 512: case 512:
*numRadices = 3; *numRadices = 3;
radixArray[0] = 8; radixArray[1] = 8; radixArray[2] = 8; radixArray[0] = 8;
radixArray[1] = 8;
radixArray[2] = 8;
break; break;
case 1024: case 1024:
*numRadices = 3; *numRadices = 3;
radixArray[0] = 16; radixArray[1] = 16; radixArray[2] = 4; radixArray[0] = 16;
radixArray[1] = 16;
radixArray[2] = 4;
break; break;
case 2048: case 2048:
*numRadices = 4; *numRadices = 4;
radixArray[0] = 8; radixArray[1] = 8; radixArray[2] = 8; radixArray[3] = 4; radixArray[0] = 8;
radixArray[1] = 8;
radixArray[2] = 8;
radixArray[3] = 4;
break; break;
default: default:
*numRadices = 0; *numRadices = 0;
@ -602,7 +617,8 @@ insertTwiddleKernel(string &kernelString, int Nr, int numIter, int Nprev, int le
kernelString += string(" angf = (float) (") + num2str(z * numWorkItemsPerXForm) + string(" + ii);\n"); kernelString += string(" angf = (float) (") + num2str(z * numWorkItemsPerXForm) + string(" + ii);\n");
} }
for(k = 1; k < Nr; k++) { for (k = 1; k < Nr; k++)
{
int ind = z * Nr + k; int ind = z * Nr + k;
//float fac = (float) (2.0 * M_PI * (double) k / (double) len); //float fac = (float) (2.0 * M_PI * (double) k / (double) len);
kernelString += string(" ang = dir * ( 2.0f * M_PI * ") + num2str(k) + string(".0f / ") + num2str(len) + string(".0f )") + string(" * angf;\n"); kernelString += string(" ang = dir * ( 2.0f * M_PI * ") + num2str(k) + string(".0f / ") + num2str(len) + string(".0f )") + string(" * angf;\n");
@ -617,7 +633,8 @@ getPadding(int numWorkItemsPerXForm, int Nprev, int numWorkItemsReq, int numXFor
{ {
if ((numWorkItemsPerXForm <= Nprev) || (Nprev >= numBanks)) if ((numWorkItemsPerXForm <= Nprev) || (Nprev >= numBanks))
*offset = 0; *offset = 0;
else { else
{
int numRowsReq = ((numWorkItemsPerXForm < numBanks) ? numWorkItemsPerXForm : numBanks) / Nprev; int numRowsReq = ((numWorkItemsPerXForm < numBanks) ? numWorkItemsPerXForm : numBanks) / Nprev;
int numColsReq = 1; int numColsReq = 1;
if (numRowsReq > Nr) if (numRowsReq > Nr)
@ -628,7 +645,8 @@ getPadding(int numWorkItemsPerXForm, int Nprev, int numWorkItemsReq, int numXFor
if (numWorkItemsPerXForm >= numBanks || numXFormsPerWG == 1) if (numWorkItemsPerXForm >= numBanks || numXFormsPerWG == 1)
*midPad = 0; *midPad = 0;
else { else
{
int bankNum = ((numWorkItemsReq + *offset) * Nr) & (numBanks - 1); int bankNum = ((numWorkItemsReq + *offset) * Nr) & (numBanks - 1);
if (bankNum >= numWorkItemsPerXForm) if (bankNum >= numWorkItemsPerXForm)
*midPad = 0; *midPad = 0;
@ -646,8 +664,10 @@ insertLocalStores(string &kernelString, int numIter, int Nr, int numWorkItemsPer
{ {
int z, k; int z, k;
for(z = 0; z < numIter; z++) { for (z = 0; z < numIter; z++)
for(k = 0; k < Nr; k++) { {
for (k = 0; k < Nr; k++)
{
int index = k * (numWorkItemsReq + offset) + z * numWorkItemsPerXForm; int index = k * (numWorkItemsReq + offset) + z * numWorkItemsPerXForm;
kernelString += string(" lMemStore[") + num2str(index) + string("] = a[") + num2str(z * Nr + k) + string("].") + comp + string(";\n"); kernelString += string(" lMemStore[") + num2str(index) + string("] = a[") + num2str(z * Nr + k) + string("].") + comp + string(";\n");
} }
@ -671,13 +691,15 @@ insertLocalLoads(string &kernelString, int n, int Nr, int Nrn, int Nprev, int Nc
int stride = numWorkItemsReq / Nrn; int stride = numWorkItemsReq / Nrn;
int i; int i;
for(i = 0; i < iter; i++) { for (i = 0; i < iter; i++)
{
int ii = i / (interBlockHNum * vertNum); int ii = i / (interBlockHNum * vertNum);
int zz = i % (interBlockHNum * vertNum); int zz = i % (interBlockHNum * vertNum);
int jj = zz % interBlockHNum; int jj = zz % interBlockHNum;
int kk = zz / interBlockHNum; int kk = zz / interBlockHNum;
int z; int z;
for(z = 0; z < Nrn; z++) { for (z = 0; z < Nrn; z++)
{
int st = kk * vertStride + jj * interBlockHStride + ii * intraBlockHStride + z * stride; int st = kk * vertStride + jj * interBlockHStride + ii * intraBlockHStride + z * stride;
kernelString += string(" a[") + num2str(i * Nrn + z) + string("].") + comp + string(" = lMemLoad[") + num2str(st) + string("];\n"); kernelString += string(" a[") + num2str(i * Nrn + z) + string("].") + comp + string(" = lMemLoad[") + num2str(st) + string("];\n");
} }
@ -726,10 +748,12 @@ insertLocalLoadIndexArithmatic(string &kernelString, int Nprev, int Nr, int numW
static void static void
insertLocalStoreIndexArithmatic(string &kernelString, int numWorkItemsReq, int numXFormsPerWG, int Nr, int offset, int midPad) insertLocalStoreIndexArithmatic(string &kernelString, int numWorkItemsReq, int numXFormsPerWG, int Nr, int offset, int midPad)
{ {
if(numXFormsPerWG == 1) { if (numXFormsPerWG == 1)
{
kernelString += string(" lMemStore = sMem + ii;\n"); kernelString += string(" lMemStore = sMem + ii;\n");
} }
else { else
{
kernelString += string(" lMemStore = sMem + mad24(jj, ") + num2str((numWorkItemsReq + offset) * Nr + midPad) + string(", ii);\n"); kernelString += string(" lMemStore = sMem + mad24(jj, ") + num2str((numWorkItemsReq + offset) * Nr + midPad) + string(", ii);\n");
} }
} }
@ -822,7 +846,8 @@ createLocalMemfftKernelString(cl_fft_plan *plan)
int Ncurr = Nprev * N[r]; int Ncurr = Nprev * N[r];
insertfftKernel(localString, N[r], numIter); insertfftKernel(localString, N[r], numIter);
if(r < (numRadix - 1)) { if (r < (numRadix - 1))
{
insertTwiddleKernel(localString, N[r], numIter, Nprev, len, numWorkItemsPerXForm); insertTwiddleKernel(localString, N[r], numIter, Nprev, len, numWorkItemsPerXForm);
lMemSize = getPadding(numWorkItemsPerXForm, Nprev, numWorkItemsReq, numXFormsPerWG, N[r], plan->num_local_mem_banks, &offset, &midPad); lMemSize = getPadding(numWorkItemsPerXForm, Nprev, numWorkItemsReq, numXFormsPerWG, N[r], plan->num_local_mem_banks, &offset, &midPad);
(*kInfo)->lmem_size = (lMemSize > (*kInfo)->lmem_size) ? lMemSize : (*kInfo)->lmem_size; (*kInfo)->lmem_size = (lMemSize > (*kInfo)->lmem_size) ? lMemSize : (*kInfo)->lmem_size;
@ -869,8 +894,7 @@ createLocalMemfftKernelString(cl_fft_plan *plan)
// decompositions of base radices to generates different kernels and see which gives // decompositions of base radices to generates different kernels and see which gives
// best performance. Following function is just fixed to use 128 as base radix // best performance. Following function is just fixed to use 128 as base radix
void void getGlobalRadixInfo(int n, int *radix, int *R1, int *R2, int *numRadices)
getGlobalRadixInfo(int n, int *radix, int *R1, int *R2, int *numRadices)
{ {
int baseRadix = min(n, 128); int baseRadix = min(n, 128);
@ -950,7 +974,6 @@ createGlobalFFTKernelString(cl_fft_plan *plan, int n, int BS, cl_fft_kernel_dir
for (passNum = 0; passNum < numPasses; passNum++) for (passNum = 0; passNum < numPasses; passNum++)
{ {
localString.clear(); localString.clear();
kernelName.clear(); kernelName.clear();
@ -1123,7 +1146,6 @@ createGlobalFFTKernelString(cl_fft_plan *plan, int n, int BS, cl_fft_kernel_dir
// Store Data // Store Data
if (strideO == 1) if (strideO == 1)
{ {
localString += string("lMemStore = sMem + mad24(i, ") + num2str(radix + 1) + string(", j << ") + num2str((int)log2(R1 / R2)) + string(");\n"); localString += string("lMemStore = sMem + mad24(i, ") + num2str(radix + 1) + string(", j << ") + num2str((int)log2(R1 / R2)) + string(");\n");
localString += string("lMemLoad = sMem + mad24(tid >> ") + num2str((int)log2(radix)) + string(", ") + num2str(radix + 1) + string(", tid & ") + num2str(radix - 1) + string(");\n"); localString += string("lMemLoad = sMem + mad24(tid >> ") + num2str((int)log2(radix)) + string(", ") + num2str(radix + 1) + string(", tid & ") + num2str(radix - 1) + string(");\n");
@ -1166,7 +1188,8 @@ createGlobalFFTKernelString(cl_fft_plan *plan, int n, int BS, cl_fft_kernel_dir
localString += string("barrier(CLK_LOCAL_MEM_FENCE);\n"); localString += string("barrier(CLK_LOCAL_MEM_FENCE);\n");
localString += string("indexOut += tid;\n"); localString += string("indexOut += tid;\n");
if(dataFormat == clFFT_SplitComplexFormat) { if (dataFormat == clFFT_SplitComplexFormat)
{
localString += string("out_real += indexOut;\n"); localString += string("out_real += indexOut;\n");
localString += string("out_imag += indexOut;\n"); localString += string("out_imag += indexOut;\n");
for (k = 0; k < R1; k++) for (k = 0; k < R1; k++)
@ -1174,17 +1197,18 @@ createGlobalFFTKernelString(cl_fft_plan *plan, int n, int BS, cl_fft_kernel_dir
for (k = 0; k < R1; k++) for (k = 0; k < R1; k++)
localString += string("out_imag[") + num2str(k * threadsPerBlock) + string("] = a[") + num2str(k) + string("].y;\n"); localString += string("out_imag[") + num2str(k * threadsPerBlock) + string("] = a[") + num2str(k) + string("].y;\n");
} }
else { else
{
localString += string("out += indexOut;\n"); localString += string("out += indexOut;\n");
for (k = 0; k < R1; k++) for (k = 0; k < R1; k++)
localString += string("out[") + num2str(k * threadsPerBlock) + string("] = a[") + num2str(k) + string("];\n"); localString += string("out[") + num2str(k * threadsPerBlock) + string("] = a[") + num2str(k) + string("];\n");
} }
} }
else else
{ {
localString += string("indexOut += mad24(j, ") + num2str(numIter * strideO) + string(", i);\n"); localString += string("indexOut += mad24(j, ") + num2str(numIter * strideO) + string(", i);\n");
if(dataFormat == clFFT_SplitComplexFormat) { if (dataFormat == clFFT_SplitComplexFormat)
{
localString += string("out_real += indexOut;\n"); localString += string("out_real += indexOut;\n");
localString += string("out_imag += indexOut;\n"); localString += string("out_imag += indexOut;\n");
for (k = 0; k < R1; k++) for (k = 0; k < R1; k++)
@ -1192,7 +1216,8 @@ createGlobalFFTKernelString(cl_fft_plan *plan, int n, int BS, cl_fft_kernel_dir
for (k = 0; k < R1; k++) for (k = 0; k < R1; k++)
localString += string("out_imag[") + num2str(((k % R2) * R1 + (k / R2)) * strideO) + string("] = a[") + num2str(k) + string("].y;\n"); localString += string("out_imag[") + num2str(((k % R2) * R1 + (k / R2)) * strideO) + string("] = a[") + num2str(k) + string("].y;\n");
} }
else { else
{
localString += string("out += indexOut;\n"); localString += string("out += indexOut;\n");
for (k = 0; k < R1; k++) for (k = 0; k < R1; k++)
localString += string("out[") + num2str(((k % R2) * R1 + (k / R2)) * strideO) + string("] = a[") + num2str(k) + string("];\n"); localString += string("out[") + num2str(((k % R2) * R1 + (k / R2)) * strideO) + string("] = a[") + num2str(k) + string("];\n");
@ -1254,4 +1279,3 @@ void FFT1D(cl_fft_plan *plan, cl_fft_kernel_dir dir)
return; return;
} }
} }

View File

@ -218,7 +218,8 @@ int getMaxKernelWorkGroupSize(cl_fft_plan *plan, unsigned int *max_wg_size, unsi
return reg_needed; return reg_needed;
} }
#define ERR_MACRO(err) { \ #define ERR_MACRO(err) \
{ \
if (err != CL_SUCCESS) \ if (err != CL_SUCCESS) \
{ \ { \
if (error_code) \ if (error_code) \
@ -367,8 +368,7 @@ patch_kernel_source:
return (clFFT_Plan)plan; return (clFFT_Plan)plan;
} }
void void clFFT_DestroyPlan(clFFT_Plan plan)
clFFT_DestroyPlan(clFFT_Plan plan)
{ {
cl_fft_plan *Plan = (cl_fft_plan *)plan; cl_fft_plan *Plan = (cl_fft_plan *)plan;
if (Plan) if (Plan)

View File

@ -253,7 +253,8 @@ const unsigned int tbl_CRC24Q[] = {
0x42FA2F, 0xC4B6D4, 0xC82F22, 0x4E63D9, 0xD11CCE, 0x575035, 0x5BC9C3, 0xDD8538}; 0x42FA2F, 0xC4B6D4, 0xC82F22, 0x4E63D9, 0xD11CCE, 0x575035, 0x5BC9C3, 0xDD8538};
extern "C" { extern "C"
{
void dgemm_(char *, char *, int *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *); void dgemm_(char *, char *, int *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *);
extern void dgetrf_(int *, int *, double *, int *, int *, int *); extern void dgetrf_(int *, int *, double *, int *, int *, int *);
extern void dgetri_(int *, double *, int *, int *, double *, int *, int *); extern void dgetri_(int *, double *, int *, int *, double *, int *, int *);

View File

@ -23,7 +23,10 @@ typedef ptrdiff_t ssize_t;
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
#if _MSC_VER < 1800 #if _MSC_VER < 1800
#include <math.h> #include <math.h>
static inline long lrint(double x){return (long)(x > 0.0 ? x + 0.5 : x - 0.5);} static inline long lrint(double x)
{
return (long)(x > 0.0 ? x + 0.5 : x - 0.5);
}
static inline long lrintf(float x) { return (long)(x > 0.0f ? x + 0.5f : x - 0.5f); } static inline long lrintf(float x) { return (long)(x > 0.0f ? x + 0.5f : x - 0.5f); }
static inline long long llrint(double x) { return (long long)(x > 0.0 ? x + 0.5 : x - 0.5); } static inline long long llrint(double x) { return (long long)(x > 0.0 ? x + 0.5 : x - 0.5); }
static inline long long llrintf(float x) { return (long long)(x > 0.0f ? x + 0.5f : x - 0.5f); } static inline long long llrintf(float x) { return (long long)(x > 0.0f ? x + 0.5f : x - 0.5f); }
@ -43,7 +46,10 @@ static inline float rintf(float x){return (x > 0.0f)? floorf(x + 0.5f) : ceilf(x
// random and srandom // random and srandom
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
#include <stdlib.h> #include <stdlib.h>
static inline long int random (void) { return rand(); } static inline long int random(void)
{
return rand();
}
static inline void srandom(unsigned int seed) { srand(seed); } static inline void srandom(unsigned int seed) { srand(seed); }
#endif // _MSC_CONFIG_H_ ] #endif // _MSC_CONFIG_H_ ]

View File

@ -37,13 +37,17 @@ struct volk_gnsssdr_machine *get_machine(void)
if (machine != NULL) if (machine != NULL)
return machine; return machine;
else { else
{
unsigned int max_score = 0; unsigned int max_score = 0;
unsigned int i; unsigned int i;
struct volk_gnsssdr_machine *max_machine = NULL; struct volk_gnsssdr_machine *max_machine = NULL;
for(i=0; i<n_volk_gnsssdr_machines; i++) { for (i = 0; i < n_volk_gnsssdr_machines; i++)
if(!(volk_gnsssdr_machines[i]->caps & (~volk_gnsssdr_get_lvarch()))) { {
if(volk_gnsssdr_machines[i]->caps > max_score) { if (!(volk_gnsssdr_machines[i]->caps & (~volk_gnsssdr_get_lvarch())))
{
if (volk_gnsssdr_machines[i]->caps > max_score)
{
max_score = volk_gnsssdr_machines[i]->caps; max_score = volk_gnsssdr_machines[i]->caps;
max_machine = volk_gnsssdr_machines[i]; max_machine = volk_gnsssdr_machines[i];
} }
@ -63,8 +67,10 @@ void volk_gnsssdr_list_machines(void)
extern unsigned int n_volk_gnsssdr_machines; extern unsigned int n_volk_gnsssdr_machines;
unsigned int i; unsigned int i;
for(i=0; i<n_volk_gnsssdr_machines; i++) { for (i = 0; i < n_volk_gnsssdr_machines; i++)
if(!(volk_gnsssdr_machines[i]->caps & (~volk_gnsssdr_get_lvarch()))) { {
if (!(volk_gnsssdr_machines[i]->caps & (~volk_gnsssdr_get_lvarch())))
{
printf("%s;", volk_gnsssdr_machines[i]->name); printf("%s;", volk_gnsssdr_machines[i]->name);
} }
} }
@ -79,13 +85,17 @@ const char* volk_gnsssdr_get_machine(void)
if (machine != NULL) if (machine != NULL)
return machine->name; return machine->name;
else { else
{
unsigned int max_score = 0; unsigned int max_score = 0;
unsigned int i; unsigned int i;
struct volk_gnsssdr_machine *max_machine = NULL; struct volk_gnsssdr_machine *max_machine = NULL;
for(i=0; i<n_volk_gnsssdr_machines; i++) { for (i = 0; i < n_volk_gnsssdr_machines; i++)
if(!(volk_gnsssdr_machines[i]->caps & (~volk_gnsssdr_get_lvarch()))) { {
if(volk_gnsssdr_machines[i]->caps > max_score) { if (!(volk_gnsssdr_machines[i]->caps & (~volk_gnsssdr_get_lvarch())))
{
if (volk_gnsssdr_machines[i]->caps > max_score)
{
max_score = volk_gnsssdr_machines[i]->caps; max_score = volk_gnsssdr_machines[i]->caps;
max_machine = volk_gnsssdr_machines[i]; max_machine = volk_gnsssdr_machines[i];
} }
@ -110,6 +120,8 @@ bool volk_gnsssdr_is_aligned(const void *ptr)
#define LV_HAVE_GENERIC #define LV_HAVE_GENERIC
#define LV_HAVE_DISPATCHER #define LV_HAVE_DISPATCHER
// clang-format off
%for kern in kernels: %for kern in kernels:
%if kern.has_dispatcher: %if kern.has_dispatcher:
@ -190,6 +202,8 @@ void ${kern.name}_manual(${kern.arglist_full}, const char* impl_name)
); );
} }
volk_gnsssdr_func_desc_t ${kern.name}_get_func_desc(void) { volk_gnsssdr_func_desc_t ${kern.name}_get_func_desc(void) {
const char **impl_names = get_machine()->${kern.name}_impl_names; const char **impl_names = get_machine()->${kern.name}_impl_names;
const int *impl_deps = get_machine()->${kern.name}_impl_deps; const int *impl_deps = get_machine()->${kern.name}_impl_deps;
@ -205,3 +219,5 @@ volk_gnsssdr_func_desc_t ${kern.name}_get_func_desc(void) {
} }
%endfor %endfor
// clang-format on

View File

@ -73,6 +73,7 @@ VOLK_API bool volk_gnsssdr_is_aligned(const void *ptr);
//! A function pointer to the dispatcher implementation //! A function pointer to the dispatcher implementation
extern VOLK_API ${kern.pname} ${kern.name}; extern VOLK_API ${kern.pname} ${kern.name};
// clang-format off
//! A function pointer to the fastest aligned implementation //! A function pointer to the fastest aligned implementation
extern VOLK_API ${kern.pname} ${kern.name}_a; extern VOLK_API ${kern.pname} ${kern.name}_a;
@ -85,6 +86,7 @@ extern VOLK_API void ${kern.name}_manual(${kern.arglist_full}, const char* impl_
//! Get description parameters for this kernel //! Get description parameters for this kernel
extern VOLK_API volk_gnsssdr_func_desc_t ${kern.name}_get_func_desc(void); extern VOLK_API volk_gnsssdr_func_desc_t ${kern.name}_get_func_desc(void);
%endfor %endfor
// clang-format off
__VOLK_DECL_END __VOLK_DECL_END

View File

@ -19,10 +19,11 @@
#ifndef INCLUDED_VOLK_GNSSSDR_CONFIG_FIXED_H #ifndef INCLUDED_VOLK_GNSSSDR_CONFIG_FIXED_H
#define INCLUDED_VOLK_GNSSSDR_CONFIG_FIXED_H #define INCLUDED_VOLK_GNSSSDR_CONFIG_FIXED_H
// clang-format off
%for i, arch in enumerate(archs): %for i, arch in enumerate(archs):
//#ifndef LV_${arch.name.upper()} //#ifndef LV_${arch.name.upper()}
#define LV_${arch.name.upper()} ${i} #define LV_${arch.name.upper()} ${i}
//#endif //#endif
%endfor %endfor
// clang-format on
#endif /*INCLUDED_VOLK_GNSSSDR_CONFIG_FIXED*/ #endif /*INCLUDED_VOLK_GNSSSDR_CONFIG_FIXED*/

View File

@ -40,9 +40,12 @@ struct VOLK_CPU volk_gnsssdr_cpu;
* check for AVX capability before executing. * check for AVX capability before executing.
*/ */
#if ((__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 2) || (__clang_major__ >= 3)) && defined(HAVE_XGETBV) #if ((__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 2) || (__clang_major__ >= 3)) && defined(HAVE_XGETBV)
static inline unsigned long long _xgetbv(unsigned int index){ static inline unsigned long long _xgetbv(unsigned int index)
{
unsigned int eax, edx; unsigned int eax, edx;
__VOLK_ASM __VOLK_VOLATILE ("xgetbv" : "=a"(eax), "=d"(edx) : "c"(index)); __VOLK_ASM __VOLK_VOLATILE("xgetbv"
: "=a"(eax), "=d"(edx)
: "c"(index));
return ((unsigned long long)edx << 32) | eax; return ((unsigned long long)edx << 32) | eax;
} }
#define __xgetbv() _xgetbv(0) #define __xgetbv() _xgetbv(0)
@ -67,7 +70,8 @@ struct VOLK_CPU volk_gnsssdr_cpu;
#endif //defined(VOLK_CPU_x86) #endif //defined(VOLK_CPU_x86)
static inline unsigned int cpuid_count_x86_bit(unsigned int level, unsigned int count, unsigned int reg, unsigned int bit) { static inline unsigned int cpuid_count_x86_bit(unsigned int level, unsigned int count, unsigned int reg, unsigned int bit)
{
#if defined(VOLK_CPU_x86) #if defined(VOLK_CPU_x86)
unsigned int regs[4] = {0}; unsigned int regs[4] = {0};
cpuid_x86_count(level, count, regs); cpuid_x86_count(level, count, regs);
@ -77,7 +81,8 @@ static inline unsigned int cpuid_count_x86_bit(unsigned int level, unsigned int
#endif #endif
} }
static inline unsigned int cpuid_x86_bit(unsigned int reg, unsigned int op, unsigned int bit) { static inline unsigned int cpuid_x86_bit(unsigned int reg, unsigned int op, unsigned int bit)
{
#if defined(VOLK_CPU_x86) #if defined(VOLK_CPU_x86)
unsigned int regs[4]; unsigned int regs[4];
memset(regs, 0, sizeof(unsigned int) * 4); memset(regs, 0, sizeof(unsigned int) * 4);
@ -88,7 +93,8 @@ static inline unsigned int cpuid_x86_bit(unsigned int reg, unsigned int op, unsi
#endif #endif
} }
static inline unsigned int check_extended_cpuid(unsigned int val) { static inline unsigned int check_extended_cpuid(unsigned int val)
{
#if defined(VOLK_CPU_x86) #if defined(VOLK_CPU_x86)
unsigned int regs[4]; unsigned int regs[4];
memset(regs, 0, sizeof(unsigned int) * 4); memset(regs, 0, sizeof(unsigned int) * 4);
@ -99,7 +105,8 @@ static inline unsigned int check_extended_cpuid(unsigned int val) {
#endif #endif
} }
static inline unsigned int get_avx_enabled(void) { static inline unsigned int get_avx_enabled(void)
{
#if defined(VOLK_CPU_x86) #if defined(VOLK_CPU_x86)
return __xgetbv() & 0x6; return __xgetbv() & 0x6;
#else #else
@ -107,7 +114,8 @@ static inline unsigned int get_avx_enabled(void) {
#endif #endif
} }
static inline unsigned int get_avx2_enabled(void) { static inline unsigned int get_avx2_enabled(void)
{
#if defined(VOLK_CPU_x86) #if defined(VOLK_CPU_x86)
return __xgetbv() & 0x6; return __xgetbv() & 0x6;
#else #else
@ -123,7 +131,8 @@ static inline unsigned int get_avx2_enabled(void) {
#define VOLK_CPU_ARM #define VOLK_CPU_ARM
#endif #endif
static int has_neon(void){ static int has_neon(void)
{
#if defined(VOLK_CPU_ARM) #if defined(VOLK_CPU_ARM)
FILE *auxvec_f; FILE *auxvec_f;
unsigned long auxvec[2]; unsigned long auxvec[2];
@ -134,7 +143,8 @@ static int has_neon(void){
size_t r = 1; size_t r = 1;
//so auxv is basically 32b of ID and 32b of value //so auxv is basically 32b of ID and 32b of value
//so it goes like this //so it goes like this
while(!found_neon && r) { while (!found_neon && r)
{
r = fread(auxvec, sizeof(unsigned long), 2, auxvec_f); r = fread(auxvec, sizeof(unsigned long), 2, auxvec_f);
if ((auxvec[0] == AT_HWCAP) && (auxvec[1] & HWCAP_NEON)) if ((auxvec[0] == AT_HWCAP) && (auxvec[1] & HWCAP_NEON))
found_neon = 1; found_neon = 1;
@ -146,6 +156,7 @@ static int has_neon(void){
return 0; return 0;
#endif #endif
} }
// clang-format off
%for arch in archs: %for arch in archs:
static int i_can_has_${arch.name} (void) { static int i_can_has_${arch.name} (void) {
@ -195,3 +206,4 @@ unsigned int volk_gnsssdr_get_lvarch() {
%endfor %endfor
return retval; return retval;
} }
// clang-format on

View File

@ -23,11 +23,13 @@
__VOLK_DECL_BEGIN __VOLK_DECL_BEGIN
// clang-format off
struct VOLK_CPU { struct VOLK_CPU {
%for arch in archs: %for arch in archs:
int (*has_${arch.name}) (); int (*has_${arch.name}) ();
%endfor %endfor
}; };
// clang-format on
extern struct VOLK_CPU volk_gnsssdr_cpu; extern struct VOLK_CPU volk_gnsssdr_cpu;

View File

@ -16,6 +16,8 @@
* along with GNSS-SDR. If not, see <http://www.gnu.org/licenses/>. * along with GNSS-SDR. If not, see <http://www.gnu.org/licenses/>.
*/ */
// clang-format off
<% this_machine = machine_dict[args[0]] %> <% this_machine = machine_dict[args[0]] %>
<% arch_names = this_machine.arch_names %> <% arch_names = this_machine.arch_names %>
@ -31,6 +33,7 @@
#include "config.h" #include "config.h"
#endif #endif
%for kern in kernels: %for kern in kernels:
#include <volk_gnsssdr/${kern.name}.h> #include <volk_gnsssdr/${kern.name}.h>
%endfor %endfor
@ -56,3 +59,4 @@ struct volk_gnsssdr_machine volk_gnsssdr_machine_${this_machine.name} = {
<% len_impls = len(impls) %> ${len_impls}, <% len_impls = len(impls) %> ${len_impls},
%endfor %endfor
}; };
// clang-format on

View File

@ -20,6 +20,7 @@
#include <volk_gnsssdr/volk_gnsssdr_typedefs.h> #include <volk_gnsssdr/volk_gnsssdr_typedefs.h>
#include "volk_gnsssdr_machines.h" #include "volk_gnsssdr_machines.h"
// clang-format off
struct volk_gnsssdr_machine *volk_gnsssdr_machines[] = { struct volk_gnsssdr_machine *volk_gnsssdr_machines[] = {
%for machine in machines: %for machine in machines:
#ifdef LV_MACHINE_${machine.name.upper()} #ifdef LV_MACHINE_${machine.name.upper()}
@ -27,5 +28,5 @@ struct volk_gnsssdr_machine *volk_gnsssdr_machines[] = {
#endif #endif
%endfor %endfor
}; };
// clang-format on
unsigned int n_volk_gnsssdr_machines = sizeof(volk_gnsssdr_machines) / sizeof(*volk_gnsssdr_machines); unsigned int n_volk_gnsssdr_machines = sizeof(volk_gnsssdr_machines) / sizeof(*volk_gnsssdr_machines);

View File

@ -27,6 +27,7 @@
__VOLK_DECL_BEGIN __VOLK_DECL_BEGIN
// clang-format off
struct volk_gnsssdr_machine { struct volk_gnsssdr_machine {
const unsigned int caps; //capabilities (i.e., archs compiled into this machine, in the volk_gnsssdr_get_lvarch format) const unsigned int caps; //capabilities (i.e., archs compiled into this machine, in the volk_gnsssdr_get_lvarch format)
const char *name; const char *name;
@ -48,5 +49,6 @@ extern struct volk_gnsssdr_machine volk_gnsssdr_machine_${machine.name};
%endfor %endfor
__VOLK_DECL_END __VOLK_DECL_END
// clang-format on
#endif //INCLUDED_LIBVOLK_GNSSSDR_MACHINES_H #endif //INCLUDED_LIBVOLK_GNSSSDR_MACHINES_H

View File

@ -22,8 +22,10 @@
#include <inttypes.h> #include <inttypes.h>
#include <volk_gnsssdr/volk_gnsssdr_complex.h> #include <volk_gnsssdr/volk_gnsssdr_complex.h>
// clang-format off
%for kern in kernels: %for kern in kernels:
typedef void (*${kern.pname})(${kern.arglist_types}); typedef void (*${kern.pname})(${kern.arglist_types});
%endfor %endfor
// clang-format on
#endif /*INCLUDED_VOLK_GNSSSDR_TYPEDEFS*/ #endif /*INCLUDED_VOLK_GNSSSDR_TYPEDEFS*/

View File

@ -45,7 +45,8 @@
#include <vector> #include <vector>
extern "C" { extern "C"
{
#include "cnav_msg.h" #include "cnav_msg.h"
#include "edc.h" #include "edc.h"
#include "bits.h" #include "bits.h"

View File

@ -42,7 +42,8 @@
#include <utility> #include <utility>
#include <vector> #include <vector>
extern "C" { extern "C"
{
#include "cnav_msg.h" #include "cnav_msg.h"
#include "edc.h" #include "edc.h"
#include "bits.h" #include "bits.h"

View File

@ -34,7 +34,8 @@
#ifndef GNSS_SDR_SUPL_CLIENT_H_ #ifndef GNSS_SDR_SUPL_CLIENT_H_
#define GNSS_SDR_SUPL_CLIENT_H_ #define GNSS_SDR_SUPL_CLIENT_H_
extern "C" { extern "C"
{
#include "supl.h" #include "supl.h"
} }
#include "GPS_L1_CA.h" #include "GPS_L1_CA.h"

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Accuracy */ /* Accuracy */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* AccuracyOpt */ /* AccuracyOpt */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* AcquisAssist */ /* AcquisAssist */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Forward declarations */ /* Forward declarations */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* AddionalAngleFields */ /* AddionalAngleFields */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* AddionalDopplerFields */ /* AddionalDopplerFields */

View File

@ -17,7 +17,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* AdditionalAssistanceData */ /* AdditionalAssistanceData */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* AdditionalDopplerFields */ /* AdditionalDopplerFields */

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* AlertFlag */ /* AlertFlag */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Almanac-KeplerianSet */ /* Almanac-KeplerianSet */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Almanac */ /* Almanac */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* AlmanacElement */ /* AlmanacElement */

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* AntiSpoofFlag */ /* AntiSpoofFlag */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* AssistBTSData-R98-ExpOTD */ /* AssistBTSData-R98-ExpOTD */

View File

@ -18,7 +18,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Forward declarations */ /* Forward declarations */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Forward declarations */ /* Forward declarations */

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* BCCHCarrier */ /* BCCHCarrier */

View File

@ -8,7 +8,8 @@
#include <OCTET_STRING.h> /* Some help from OCTET STRING */ #include <OCTET_STRING.h> /* Some help from OCTET STRING */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
typedef struct BIT_STRING_s typedef struct BIT_STRING_s

View File

@ -8,7 +8,8 @@
#include <asn_application.h> #include <asn_application.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* /*

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* BSIC */ /* BSIC */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* BSICAndCarrier */ /* BSICAndCarrier */

View File

@ -14,7 +14,8 @@
#include "Ext-GeographicalInformation.h" #include "Ext-GeographicalInformation.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* BTSPosition */ /* BTSPosition */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* BadSignalElement */ /* BadSignalElement */

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* BitNumber */ /* BitNumber */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* CalcAssistanceBTS */ /* CalcAssistanceBTS */

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* CellID */ /* CellID */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* CellIDAndLAC */ /* CellIDAndLAC */

View File

@ -14,7 +14,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Forward declarations */ /* Forward declarations */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* DGANSSSgnElement */ /* DGANSSSgnElement */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* DGPSCorrections */ /* DGPSCorrections */

View File

@ -8,7 +8,8 @@
#include <INTEGER.h> #include <INTEGER.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
typedef INTEGER_t ENUMERATED_t; /* Implemented via INTEGER */ typedef INTEGER_t ENUMERATED_t; /* Implemented via INTEGER */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* EOTDQuality */ /* EOTDQuality */

View File

@ -14,11 +14,13 @@
#include <ENUMERATED.h> #include <ENUMERATED.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Dependencies */ /* Dependencies */
typedef enum EnvironmentCharacter { typedef enum EnvironmentCharacter
{
EnvironmentCharacter_badArea = 0, EnvironmentCharacter_badArea = 0,
EnvironmentCharacter_notBadArea = 1, EnvironmentCharacter_notBadArea = 1,
EnvironmentCharacter_mixedArea = 2 EnvironmentCharacter_mixedArea = 2

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* EphemerisSubframe1Reserved */ /* EphemerisSubframe1Reserved */

View File

@ -14,11 +14,13 @@
#include <ENUMERATED.h> #include <ENUMERATED.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Dependencies */ /* Dependencies */
typedef enum ErrorCodes { typedef enum ErrorCodes
{
ErrorCodes_unDefined = 0, ErrorCodes_unDefined = 0,
ErrorCodes_missingComponet = 1, ErrorCodes_missingComponet = 1,
ErrorCodes_incorrectData = 2, ErrorCodes_incorrectData = 2,

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* ExpOTDUncertainty */ /* ExpOTDUncertainty */

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* ExpectedOTD */ /* ExpectedOTD */

View File

@ -14,7 +14,8 @@
#include <OCTET_STRING.h> #include <OCTET_STRING.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Ext-GeographicalInformation */ /* Ext-GeographicalInformation */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Extended-reference */ /* Extended-reference */

View File

@ -14,7 +14,8 @@
#include <INTEGER.h> #include <INTEGER.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* ExtensionContainer */ /* ExtensionContainer */

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* FineRTD */ /* FineRTD */

View File

@ -14,11 +14,13 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Dependencies */ /* Dependencies */
typedef enum FixType { typedef enum FixType
{
FixType_twoDFix = 0, FixType_twoDFix = 0,
FixType_threeDFix = 1 FixType_threeDFix = 1
} e_FixType; } e_FixType;

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* FrameDrift */ /* FrameDrift */

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* FrameNumber */ /* FrameNumber */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSS-AssistData */ /* GANSS-AssistData */

View File

@ -14,7 +14,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Forward declarations */ /* Forward declarations */

View File

@ -18,7 +18,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Forward declarations */ /* Forward declarations */

View File

@ -17,7 +17,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSS-SgnElement */ /* GANSS-SgnElement */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSS-SgnTypeElement */ /* GANSS-SgnTypeElement */

View File

@ -15,11 +15,13 @@
#include <constr_CHOICE.h> #include <constr_CHOICE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Dependencies */ /* Dependencies */
typedef enum GANSSAlmanacElement_PR { typedef enum GANSSAlmanacElement_PR
{
GANSSAlmanacElement_PR_NOTHING, /* No components present */ GANSSAlmanacElement_PR_NOTHING, /* No components present */
GANSSAlmanacElement_PR_keplerianAlmanacSet, GANSSAlmanacElement_PR_keplerianAlmanacSet,
/* Extensions may appear below */ /* Extensions may appear below */

View File

@ -17,7 +17,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSAlmanacModel */ /* GANSSAlmanacModel */

View File

@ -14,7 +14,8 @@
#include <OCTET_STRING.h> #include <OCTET_STRING.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSAssistanceData */ /* GANSSAssistanceData */

View File

@ -15,11 +15,13 @@
#include <constr_CHOICE.h> #include <constr_CHOICE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Dependencies */ /* Dependencies */
typedef enum GANSSClockModel_PR { typedef enum GANSSClockModel_PR
{
GANSSClockModel_PR_NOTHING, /* No components present */ GANSSClockModel_PR_NOTHING, /* No components present */
GANSSClockModel_PR_standardClockModelList, GANSSClockModel_PR_standardClockModelList,
/* Extensions may appear below */ /* Extensions may appear below */

View File

@ -14,7 +14,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Forward declarations */ /* Forward declarations */

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSDataBit */ /* GANSSDataBit */

View File

@ -17,7 +17,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSDataBitAssist */ /* GANSSDataBitAssist */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSDiffCorrections */ /* GANSSDiffCorrections */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Forward declarations */ /* Forward declarations */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSIonoStormFlags */ /* GANSSIonoStormFlags */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSIonosphereModel */ /* GANSSIonosphereModel */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Forward declarations */ /* Forward declarations */

View File

@ -20,7 +20,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Forward declarations */ /* Forward declarations */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSMeasureInfo */ /* GANSSMeasureInfo */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSNavModel */ /* GANSSNavModel */

View File

@ -15,11 +15,13 @@
#include <constr_CHOICE.h> #include <constr_CHOICE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Dependencies */ /* Dependencies */
typedef enum GANSSOrbitModel_PR { typedef enum GANSSOrbitModel_PR
{
GANSSOrbitModel_PR_NOTHING, /* No components present */ GANSSOrbitModel_PR_NOTHING, /* No components present */
GANSSOrbitModel_PR_keplerianSet, GANSSOrbitModel_PR_keplerianSet,
/* Extensions may appear below */ /* Extensions may appear below */

View File

@ -14,11 +14,13 @@
#include <BIT_STRING.h> #include <BIT_STRING.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Dependencies */ /* Dependencies */
typedef enum GANSSPositioningMethod { typedef enum GANSSPositioningMethod
{
GANSSPositioningMethod_gps = 0, GANSSPositioningMethod_gps = 0,
GANSSPositioningMethod_galileo = 1 GANSSPositioningMethod_galileo = 1
} e_GANSSPositioningMethod; } e_GANSSPositioningMethod;

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSRealTimeIntegrity */ /* GANSSRealTimeIntegrity */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSRefLocation */ /* GANSSRefLocation */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSRefMeasurementAssist */ /* GANSSRefMeasurementAssist */

View File

@ -16,7 +16,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Forward declarations */ /* Forward declarations */

View File

@ -17,7 +17,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSRefTimeInfo */ /* GANSSRefTimeInfo */

View File

@ -15,7 +15,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Forward declarations */ /* Forward declarations */

View File

@ -18,7 +18,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSSatelliteElement */ /* GANSSSatelliteElement */

View File

@ -14,7 +14,8 @@
#include <NativeInteger.h> #include <NativeInteger.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSSignalID */ /* GANSSSignalID */

View File

@ -20,7 +20,8 @@
#include <constr_SEQUENCE.h> #include <constr_SEQUENCE.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* GANSSTOD-GSMTimeAssociation */ /* GANSSTOD-GSMTimeAssociation */

Some files were not shown because too many files have changed in this diff Show More