1 // Copyright (c) <2012> <Leif Asbrink>
2 //
3 // Permission is hereby granted, free of charge, to any person
4 // obtaining a copy of this software and associated documentation
5 // files (the "Software"), to deal in the Software without restriction,
6 // including without limitation the rights to use, copy, modify,
7 // merge, publish, distribute, sublicense, and/or sell copies of
8 // the Software, and to permit persons to whom the Software is
9 // furnished to do so, subject to the following conditions:
10 //
11 // The above copyright notice and this permission notice shall be
12 // included in all copies or substantial portions of the Software.
13 //
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16 // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
19 // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
21 // OR OTHER DEALINGS IN THE SOFTWARE.
22 
23 
24 #include "globdef.h"
25 #include "rusage.h"
26 #include "thrdef.h"
27 
28 
29 signed char thread_command_flag[THREAD_MAX];
30 signed char thread_status_flag[THREAD_MAX];
31 char mouse_thread_flag;
32 float thread_workload[THREAD_MAX];
33 double thread_tottim1[THREAD_MAX];
34 double thread_cputim1[THREAD_MAX];
35 double thread_tottim2[THREAD_MAX];
36 double thread_cputim2[THREAD_MAX];
37 #if RUSAGE_OLD != TRUE
38 int thread_pid[THREAD_MAX];
39 #endif
40 
41 
42 int rx_input_thread;
43 int threads_running;
44 int ampinfo_reset;
45 
46 int thread_waitsem[THREAD_MAX]={
47                     -1,              //0 = THREAD_RX_ADINPUT
48                     -1,              //1 = THREAD_RX_RAW_NETINPUT
49                     -1,              //2 = THREAD_RX_FFT1_NETINPUT
50                     -1,              //3 = THREAD_RX_FILE_INPUT
51                     -1,              //4 = THREAD_SDR14_INPUT
52              EVENT_RX_START_DA,      //5 = THREAD_RX_OUTPUT
53              EVENT_SCREEN,           //6 = THREAD_SCREEN
54                     -1,              //7 = THREAD_TX_INPUT
55              EVENT_TX_INPUT,         //8 = THREAD_TX_OUTPUT
56              EVENT_TIMF1,            //9 = THREAD_WIDEBAND_DSP
57              EVENT_FFT1_READY,       //10 = THREAD_NARROWBAND_DSP
58              EVENT_KEYBOARD,         //11 = THREAD_USER_COMMAND
59              EVENT_FFT1_READY,       //12 = THREAD_TXTEST
60              EVENT_FFT1_READY,       //13 = THREAD_POWTIM
61              EVENT_TIMF1,            //14 = THREAD_RX_ADTEST
62              EVENT_FFT1_READY,       //15 = THREAD_CAL_IQBALANCE
63              EVENT_TIMF1,            //16 = THREAD_CAL_INTERVAL
64              EVENT_FFT1_READY,       //17 = THREAD_CAL_FILTERCORR
65              EVENT_TIMF1,            //18 = THREAD_TUNE
66                     -1,              //19 = THREAD_LIR_SERVER
67                     -1,              //20 = THREAD_PERSEUS_INPUT
68              EVENT_FFT1_READY,       //21 = THREAD_RADAR
69              EVENT_FFT2,             //22 = THREAD_SECOND_FFT
70              EVENT_TIMF2,            //23 = THREAD_TIMF2
71              EVENT_BLOCKING_RXOUT,   //24 = THREAD_BLOCKING_RXOUT
72              EVENT_SYSCALL,          //25 = THREAD_SYSCALL
73                     -1,              //26 = THREAD_SDRIP_INPUT
74                     -1,              //27 = THREAD_EXCALIBUR_INPUT
75                     -1,              //28 = THREAD_HWARE_COMMAND
76              EVENT_EXTIO_RXREADY,    //29 = THREAD_EXTIO_INPUT
77              EVENT_WRITE_RAW_FILE,   //30 = THREAD_WRITE_RAW_FILE
78              EVENT_HWARE1_RXREADY,   //31 = THREAD_RTL2832_INPUT
79                     -2,              //32 = THREAD_RTL_STARTER
80              EVENT_HWARE1_RXREADY,   //33 = THREAD_MIRISDR_INPUT
81              EVENT_HWARE1_RXREADY,   //34 = THREAD_BLADERF_INPUT
82              EVENT_HWARE1_RXREADY,   //35 = THREAD_PCIE9842_INPUT
83                     -1,              //36 = THREAD_OPENHPSDR_INPUT
84                     -2,              //37 = THREAD_MIRISDR_STARTER
85                     -2,              //38 = THREAD_BLADERF_STARTER
86                     -1,              //39 = THREAD NETAFEDRI_INPUT
87              EVENT_DO_FFT1C,         //40 = THREAD_DO_FFT1C
88              EVENT_DO_FFT1B1,        //41 = THREAD_FFT1B1
89              EVENT_DO_FFT1B2,        //42 = THREAD_FFT1B2
90              EVENT_DO_FFT1B3,        //43 = THREAD_FFT1B3
91              EVENT_DO_FFT1B4,        //44 = THREAD_FFT1B4
92              EVENT_DO_FFT1B5,        //45 = THREAD_FFT1B5
93              EVENT_DO_FFT1B6,        //46 = THREAD_FFT1B6
94                        };
95 
96 
97 char *thread_names[THREAD_MAX]={"RxAD",  //0 = THREAD_RX_ADINPUT
98                                 "Rxrn",  //1 = THREAD_RX_RAW_NETINPUT
99                                 "Rxfn",  //2 = THREAD_RX_FFT1_NETINPUT
100                                 "Rxfi",  //3 = THREAD_RX_FILE_INPUT
101                                 "SR14",  //4 = THREAD_SDR14_INPUT
102                                 "RxDA",  //5 = THREAD_RX_OUTPUT
103                                 "Scre",  //6 = THREAD_SCREEN
104                                 "TxAD",  //7 = THREAD_TX_INPUT
105                                 "TxDA",  //8 = THREAD_TX_OUTPUT
106                                 "Wdsp",  //9 = THREAD_WIDEBAND_DSP
107                                 "Ndsp",  //10 = THREAD_NARROWBAND_DSP
108                                 "Cmds",  //11 = THREAD_USER_COMMAND
109                                 "TxTe",  //12 = THREAD_TXTEST
110                                 "PowT",  //13 = THREAD_POWTIM
111                                 "ADte",  //14 = THREAD_RX_ADTEST
112                                 "C_IQ",  //15 = THREAD_CAL_IQBALANCE
113                                 "C_in",  //16 = THREAD_CAL_INTERVAL
114                                 "C_fi",  //17 = THREAD_CAL_FILTERCOR
115                                 "Tune",  //18 = THREAD_TUNE
116                                 "Serv",  //19 = THREAD_LIR_SERVER
117                                 "Pers",  //20 = THREAD_PERSEUS_INPUT
118                                 "Radr",  //21 = THREAD_RADAR
119                                 "fft2",  //22 = THREAD_SECOND_FFT
120                                 "Tf2 ",  //23 = THREAD_TIMF2
121                                 "RxDB",  //24 = THREAD_BLOCKING_RXOUT
122                                 "Sys ",  //25 = THREAD_SYSCALL
123                                 "SRIP",  //26 = THREAD_SDRIP_INPUT
124                                 "Exca",  //27 = THREAD_EXCALIBUR_INPUT
125                                 "Hwar",  //28 = THREAD_HWARE_COMMAND
126                                 "ExIO",  //29 = THREAD_EXTIO_INPUT
127                                 "WRAW",  //30 = THREAD_WRITE_RAW_FILE
128                                 "RTL ",  //31 = THREAD_RTL2832_INPUT
129                                 "RTLs",  //32 = THREAD_RTL_STARTER
130                                 "Miri",  //33 = THREAD_MIRISDR_INPUT
131                                 "Blad",  //34 = THREAD_BLADERF_INPUT
132                                 "9842",  //35 = THREAD_PCIE9842_INPUT
133                                 "HPSD",  //36 = THREAD_OPENHPSDR_INPUT
134                                 "MIRs",  //37 = THREAD_MIRISDR_STARTER
135                                 "Bl_s",  //38 = THREAD_BLADERF_STARTER
136                                 "Afed",  //39 = THREAD_NETAFEDRI_INPUT
137                                 "F1c1",  //40 = THREAD_DO_FFT1C
138                                 "F1b1",  //41 = THREAD_FFT1_B1
139                                 "F1b2",  //42 = THREAD_FFT1_B2
140                                 "F1b3",  //43 = THREAD_FFT1_B3
141                                 "F1b4",  //44 = THREAD_FFT1_B4
142                                 "F1b5",  //45 = THREAD_FFT1_B5
143                                 "F1b6",  //46 = THREAD_FFT1_B5
144                                  };
145 
146