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