#include /* module logs9a */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* MODS 15oct03 - lownoiseamp-> shutter, auxrf->floor */ char *bitlist[]={ "BODY I FF", /* byte 0, lsb */ "KLY1 COLL I FF", "KLY2 COLL I FF", "KLY1 MAG I FF", "KLY2 MAG I FF", "KLY1 MAG V FF", "KLY2 MAG V FF", "KLY1 VACION I FF", /* byte 0, msb */ "KLY2 VACION I FF", /* byte 1 */ "undefined FF", "WG ARC 1 FF", "WG ARC 2 FF", "KLY1 REFL PWR FF", "KLY2 REFL PWR FF", "WASTER REFL PWR FF", "ANT REFL PWR FF", "35KW DL FWD PWR FF", /* byte 2 */ "HE A1 FANS FAULT", "HE A2 FANS FAULT", "HE A3 FANS FAULT", "WATER LEVEL WARN", "SOCKET OT WARN", "KLY1 BODY OT WARN", "KLY2 BODY OT WARN", "KLY1 MAG OT WARN", /* byte 3 */ "KLY2 MAG OT WARN", "KLY1 COLL OT WARN", "KLY2 COLL OT WARN", "RF DRIVE CMD", "WARNING SUM", "DI NITROGEN PRES WARN", "WATER PURITY WARN", "WG NITRO PRES WARN", /* byte 4 */ "WASTER REFL DET", "ANT REFL DET", "WATER LEVEL PROOF", "KLY1 COLL FLOW PROOF", "KLY2 COLL FLOW PROOF", "RF READY", "TX OUT WG FLOW PROOF", "FDRM SPARE FLOW PROOF", /* byte 5 */ "TXRM SPARE FLOW PROOF", "FEEDROOM WG FLOW PROOF", "SOCKET FLOW PROOF", "KLY1 BODY FLOW PROOF", "KLY2 BODY FLOW PROOF", "KLY1 MAG FLOW PROOF", "KLY2 MAG FLOW PROOF", "KLY1 WG FLOW PROOF", /* byte 6 */ "KLY2 WG FLOW PROOF", "KLY1 VACION V PROOF", "KLY2 VACION V PROOF", "KLY1 FILA I PROOF", "KLY2 FILA I PROOF", "KLY1 FILA V PROOF", "KLY2 FILA V PROOF", "KLY1 MAG I PROOF", /* byte 7 */ "KLY2 MAG I PROOF", "KLY1 MAG V PROOF", "KLY2 MAG V PROOF", "HV PROOF", "35KW DL DET", "KLY1 REFL DET", "KLY2 REFL DET", "KLY1 SELECT", /* byte 8 */ "KLY2 SELECT", "DOME DOOR INTLK", "HE DISCONNECT", "KLY2 WG SW COMB", "DOME KEEP-ALIVE", "DOME GND STICK INTLK", "DOME GND SW INTLK", "SHUTTER INTLK", /* byte 9 */ "FLOOR INTLK", "KLY1 WG SW COMB", "KLY1 WG SW DL", "FILA TIMER RELAY", "FILAMENT TIMER", "STANDBY", "KLY2 WG SW DL", "KLY1 FILA I OVLD", /* byte 10 */ "KLY2 FILA I OVLD", "KLY1 FILA V OVLD", "KLY2 FILA V OVLD", "WASTER REFL PWR B", "ANT REFL PWR B", "KLY1 REFL PWR B", "KLY2 REFL PWR B", "KLY1 MAG I OVLD", /* byte 11 */ "KLY2 MAG I OVLD", "KLY1 MAG V OVLD", "KLY2 MAG V OVLD", "KLY1 COLL I OVLD", "KLY2 COLL I OVLD", "KLY1 VACION I OVLD", "KLY2 VACION I OVLD", "BODY I OVLD A", /* byte 12 */ "BEAM V OVLD", "35KW DL OVLD A", "WASTER REFL PWR A", "ANT REFL PWR A", "KLY1 WG ARC A", "KLY2 WG ARC A" , "KLY1 REFL PWR A", "KLY2 REFL PWR A", /* byte 13 */ "KLY1 BODY OT", "KLY2 BODY OT", "KLY1 MAG OT", "KLY2 MAG OT", "KLY1 COLL OT", "KLY2 COLL OT", "WASTER OT", "ANTENNA SELECT", /* byte 14 */ "SOCKET OT", "DOME PH RAISE PB", "DOME PH LOWER PB", "DOME DRIVE RAISE PB", "DOME DRIVE LOWER PB", "DOME FILA ON PB", "DOME FILA OFF PB", "DOME FILA RAISE PB", /* byte 15 */ "DOME FILA LOWER PB", "DOME HV ON PB", "DOME HV OFF PB", "DOME HV RAISE PB", "DOME HV LOWER PB", "DOME KLY1 MAG ON PB", "DOME KLY1 MAG OFF PB", "DOME KLY1 MAG RAISE PB", /* byte 16 */ "DOME KLY1 MAG LOWER PB", "DOME KLY2 MAG ON PB", "DOME KLY2 MAG OFF PB", "DOME KLY2 MAG RAISE PB", "DOME KLY2 MAG LOWER PB", "DOME RF DRIVE ON PB", "DOME RF DRIVE OFF PB", "DOME DRIVE RAISE PB", /* byte 17 */ "DOME DRIVE LOWER PB", "DOME COMBINER PB", "DOME DL PB", "DOME RESET PB", "DOME REMOTE", "DOME ALARM MUTE PB", "DOME COOL ON PB", "DOME COOL OFF PB", /* byte 18 */ "DOME STANDBY PB", "35KW DL OVLD B", "BODY I OVLD B", "KLY1 WG ARC B", "KLY2 WG ARC B", "MAIN PUMP FAULT", "WG PUMP FAULT", "HVPS BRKER PROOF", /* byte 19 */ "HVPS CONT PROOF", "HVPS DOOR INTLK", "HVPS KEEP-ALIVE", "HVPS GND STICK INTLK", "HVPS OIL FAULT", "HVPS RESET PB", "HVPS GND SW INTLK", "HVPS BREAKER FAULT", /* byte 20 */ "CROWBAR HEAT PROOF", "CROWBAR BLOWER PROOF", "CROWBAR TRIG PS PROOF", "FILA PS CONT PROOF", "KLY1 MAG PS CONT PROOF", "KLY2 MAG PS CONT PROOF", "HVPS DC I OVLD", "HVPS AC I FAULT", /* byte 21 */ "CROWBAR FIRED", "CROWBAR TRIGGERED", "480 VAC FAULT", "HVPS MOV FAULT", "HVPS CONT FAULT", "HVPS MUTE PB", "CB TEST PB", /*(RS)*/ "HVPS FO RCVR A", /* byte 22 */ "HVPS FO RCVR B", "EMERGENCY OFF INTRLOC", "HV CONTACT CLOSE PB", "HVPS REMOTE", "HVPS HV RAISE PB", "HVPS HV LOWER PB", "HV CONTACT OPEN PB", "OPS 24 VOLT", /* byte 23 */ "OPS REMOTE", "OPS RESET PB", "AC MAINS FAIL", "OPS KEYING PM", "OPS KEYING AM", "OPS KEYING OFF", "OPS KEYING REMOTE", "USER DEFINED 1", /* byte 24 */ "USER DEFINED 2", "USER DEFINED 3", "USER DEFINED 4", "USER DEFINED 5", "USER DEFINED 6", "USER DEFINED 7", "USER DEFINED 8", "USER DEFINED 9", /* byte 25 */ "USER DEFINED 10", "USER DEFINED 11", "USER DEFINED 12", "USER DEFINED 13", "USER DEFINED 14", "USER DEFINED 15", "USER DEFINED 16", "OPS MUTE PB", /* byte 26 */ "OPS HV ON PB", "OPS HV OFF PB", "OPS ODAPC", "OPS LOCAL", "OPS KEYING CW", "PM RELAY", "AM RELAY", "RECEIVE MODE", /* byte 27 */ "TRANSMIT MODE", "LONG RANGE", "XOFF TIME-OUT", "OPS ALARM MUTE", "DOME ALARM MUTE", "HVPS ALARM MUTE", "HVPS INTLK SUM", "TTI 1", /* byte 28 */ "TTI 2", "TTI 3", "TTI 4", "TTI 5", "TTI 6", "TTI 7", "TTI 8", "TTI 9", /* byte 29 */ "TTI 10", "TTI 11", "TTI 12", "TTI 13", "HVPS OVER CURRENT SUM", "RF FAULT LOCK-OUT", "RF FAULT SUM", "METER LIMIT 1", /* byte 30 */ "METER LIMIT 2", "METER LIMIT 3", "METER LIMIT 4", "METER LIMIT 5", "METER LIMIT 6", "METER LIMIT 7", "METER LIMIT 8", "METER LIMIT 9", /* byte 31 */ "METER LIMIT 10", "METER LIMIT 11", "METER LIMIT 12", "METER LIMIT 13", "METER LIMIT 14", "METER LIMIT 15", "METER LIMIT 16", "METER LIMIT 17", /* byte 32 */ "METER LIMIT 18", "METER LIMIT 19", "METER LIMIT 20", "METER LIMIT 21", "METER LIMIT 22", "METER LIMIT 23", "METER LIMIT 24", "METER LIMIT 25", /* byte 33 */ "METER LIMIT 26", "METER LIMIT 27", "METER LIMIT 28", "METER LIMIT 29", "METER LIMIT 30", "METER LIMIT 31", "METER LIMIT 32", "CALC LIMIT 1", /* byte 34 */ "CALC LIMIT 2", "CALC LIMIT 3", "CALC LIMIT 4", "CALC LIMIT 5", "CALC LIMIT 6", "CALC LIMIT 7", "CALC LIMIT 8", "COM1 FAIL", /* byte 35 */ "COM2 FAIL", "COM3 FAIL", "PASSWORD FAIL", "BOOT STORE", "CLOCK STORE", "MANUAL STORE", "SIMULATION", "LOGS FULL", /* byte 36 */ "COMMAND FAIL", "LIMIT SUM", "INTLK SUM", "FAULT SUM", "FAIL SUM", "TIME CHANGE", "DATE CHANGE", "ID BIT0", /* byte 37 */ "ID BIT1", "ID BIT2", "ID BIT3", "ID BIT4", "COOLING SUM", "ARC SUM", "TTI SUM", "KEYBOARD TIME-OUT", /* byte 38 */ "RF DRIVE 1 PROOF", "RF DRIVE 2 PROOF", "AUTOTEST SUM", "LOGS ALMOST FULL", "FLOW SUM", "EXCITER INPUT PROOF", "TEST-FAIL OVER-RIDE", "TEST 1", /* byte 39 */ "TEST 2", "TEST 3", "TEST 4", "TEST 5", "TEST 6", "TEST 7", "TEST 8", "TEST 9", /* byte 40 */ "TEST 10", "TEST 11", "TEST 12", "TEST 13", "TEST 14", "TEST 15", "TEST 16", "TEST 17", /* byte 41 */ "TEST 18", "TEST 19", "TEST 20", "TEST 21", "TEST 22", "TEST 23", "TEST 24", "TEST 25", /* byte 42 */ "TEST 26", "TEST 27", "TEST 28", "TEST 29", "TEST 30", "TEST 31", "TEST 32", "CALC LIMIT 9", /* byte 43 */ "CALC LIMIT 10", "CALC LIMIT 11", "CALC LIMIT 12", "CALC LIMIT 13", "CALC LIMIT 14", "CALC LIMIT 15", "CALC LIMIT 16", "WG ARC 1A TEST", /* byte 44 */ "WG ARC 2A TEST", "WG ARC 1B TEST", "WG ARC 2B TEST", "WASTER TEST", "ANT DET TEST", "TURN DET TEST", "KLY1 DET TEST", "KLY2 DET TEST", /* byte 45 */ "CB TRIG TEST", "FO RCVR A TEST", "FO RCVR B TEST", "RF TEST FAIL", "HOT CB TEST FAIL", "ILLEGAL KEY POSN", "DECLINED CB TEST", "CROWBAR READY SUM", /* byte 46 */ "HACKER", "HVPS RESET OVER-RIDE", "TTI INIT FAIL", "TRACKBALL FAIL", "DOS ERROR", "OVERTEMP SUM", "OUT OF PAPER", "NO DIGITAL CHANGE", 0 }; char *lolist[]={ /* low status condition */ "OK", /* byte 0, lsb */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", /* byte 0, msb */ "OK", /* byte 1 */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", /* byte 2 */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", /* byte 3 */ "OK", "OK", "OK", "OFF", "OK", "OK", "OK", "LOW", /* byte 4 */ "LOW", "LOW", "LOST", "LOST", "LOST", "DISABLED", "LOST", "LOST", /* byte 5 */ "LOST", "LOST", "LOST", "LOST", "LOST", "LOST", "LOST", "LOST", /* byte 6 */ "LOST", "LOST", "LOST", "LOST", "LOST", "LOST", "LOST", "LOST", /* byte 7 */ "LOST", "LOST", "LOST", "LOST", "OK", "OK", "OK", "OFF", /* byte 8 */ "OFF", "OPEN", "OFF", "OPEN", "REPORTING", "OPEN", "OPEN", "OPEN", /* byte 9 */ "OPEN", "OPEN", "OPEN", "OFF", "LOW", "OFF", "OPEN", "OK", /* byte 10 */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", /* byte 11 */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", /* byte 12 */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", /* byte 13 */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", "ANTENNA", /* byte 14 */ "OK", "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", /* byte 15 */ "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", /* byte 16 */ "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", /* byte 17 */ "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", "RELEASED", /* byte 18 */ "RELEASED", "OK", "OK", "OK", "OK", "OK", "OK", "OPEN", /* byte 19 */ "OPEN", "OPEN", "REPORTING", "OPEN", "OK", "RELEASED", "OPEN", "OK", /* byte 20 */ "LOST", "LOST", "LOST", "OPEN", "OPEN", "OPEN", "OK", "OK", /* byte 21 */ "CLEARED", "CLEARED", "OK", "OK", "OK", "RELEASED", "RELEASED", "TRIP", /* byte 22 */ "TRIP", "OPEN", "RELEASED", "OFF", "RELEASED", "RELEASED", "RELEASED", "OFF", /* byte 23 */ "OFF", "RELEASED", "OFF", "OFF", "OFF", "OFF", "OFF", "OFF", /* byte 24 */ "OFF", "LOW", "LOW", "OFF", "OFF", "OFF", "OFF", "OFF", /* byte 25 */ "OFF", "OFF", "OFF", "OFF", "OFF", "OFF", "OFF", "RELEASED", /* byte 26 */ "RELEASED", "RELEASED", "OFF", "OFF", "OFF", "OFF", "OFF", "LOW", /* byte 27 */ "LOW", "LOW", "LOW", "LOW", "LOW", "LOW", "OPENED", "LOW", /* byte 28 */ "LOW", "LOW", "LOW", "LOW", "LOW", "LOW", "LOW", "LOW", /* byte 29 */ "LOW", "LOW", "LOW", "LOW", "CLEARED", "CLEARED", "OK", "OK", /* byte 30 */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", /* byte 31 */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", /* byte 32 */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", /* byte 33 */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", /* byte 34 */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", /* byte 35 */ "OK", "OK", "OK", "LOW", "LOW", "LOW", "LOW", "OK", /* byte 36 */ "OK", "LOW", "LOW", "LOW", "LOW", "LOW", "LOW", "LOW", /* byte 37 */ "LOW", "LOW", "LOW", "LOW", "LOST", "LOW", "LOW", "LOW", /* byte 38 */ "LOST", "LOST", "LOW", "LOW", "LOST", "LOST", "LOW", "CLEARED", /* byte 39 */ "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", /* byte 40 */ "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", /* byte 41 */ "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", /* byte 42 */ "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "LOW", /* byte 43 */ "LOW", "LOW", "LOW", "LOW", "LOW", "LOW", "LOW", "CLEARED", /* byte 44 */ "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CLEARED", /* byte 45 */ "CLEARED", "CLEARED", "CLEARED", "CLEARED", "CXLEARED", "LOW", "LOW", "LOW", /* byte 46 */ "LOW", "LOW", "LOW", "LOW", "LOW", "LOW", "LOW", "---", /* dummy */ 0 }; char *hilist[]={ /* high status condition */ "FAULT", /* byte 0, lsb */ "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", /* byte 0, msb */ "FAULT", /* byte 1 */ "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", /* byte 2 */ "WARNING", "WARNING", "WARNING", "WARNING", "WARNING", "WARNING", "WARNING", "WARNING", /* byte 3 */ "WARNING", "WARNING", "WARNING", "COMMANDED", "WARNING", "WARNING", "WARNING", "WARNING", /* byte 4 */ "DEFECTIVE", "DEFECTIVE", "OK", "OK", "OK", "ENABLED", "OK", "OK", /* byte 5 */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", /* byte 6 */ "OK", "OK", "OK", "OK", "OK", "OK", "OK", "OK", /* byte 7 */ "OK", "OK", "OK", "OK", "DEFECTIVE", "DEFECTIVE", "DEFECTIVE", "ON", /* byte 8 */ "ON", "OK", "CONNECTED", "CLOSED", "EXPIRED", "CLOSED", "CLOSED", "CLOSED", /* byte 9 */ "CLOSED", "CLOSED", "CLOSED", "COMMANDED", "COMPLETE", "ESTABLISHED", "CLOSED", "TRIP", /* byte 10 */ "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", /* byte 11 */ "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", /* byte 12 */ "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", /* byte 13 */ "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "WASTER", /* byte 14 */ "TRIP", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", /* byte 15 */ "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", /* byte 16 */ "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", /* byte 17 */ "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", "DEPRESSED", /* byte 18 */ "DEPRESSED", "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "TRIP", "CLOSED", /* byte 19 */ "CLOSED", "CLOSED", "EXPIRED", "CLOSED", "TRIP", "DEPRESSED", "CLOSED", "DEFECTIVE", /* byte 20 */ "OK", "OK", "OK", "CLOSED", "CLOSED", "CLOSED", "TRIP", "TRIP", /* byte 21 */ "REPORTED", "REPORTED", "TRIP", "TRIP", "DEFECTIVE", "DEPRESSED", "DEPRESSED", "OK", /* byte 22 */ "OK", "CLOSED", "DEPRESSED", "ON", "DEPRESSED", "DEPRESSED", "DEPRESSED", "ON", /* byte 23 */ "ON", "DEPRESSED", "ON", "ON", "ON", "ON", "ON", "ON", /* byte 24 */ "ON", "HIGH", "HIGH", "ON", "ON", "ON", "ON", "ON", /* byte 25 */ "ON", "ON", "ON", "ON", "ON", "ON", "ON", "DEPRESSED", /* byte 26 */ "DEPRESSED", "DEPRESSED", "ON", "ON", "ON", "ON", "ON", "HIGH", /* byte 27 */ "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", "COMPLETED", "HIGH", /* byte 28 */ "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", /* byte 29 */ "HIGH", "HIGH", "HIGH", "HIGH", "FAULT", "SET", "FAULT", "FAULT", /* byte 30 */ "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", /* byte 31 */ "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", /* byte 32 */ "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", /* byte 33 */ "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", /* byte 34 */ "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", "FAULT", /* byte 35 */ "FAULT", "FAULT", "FAULT", "HIGH", "HIGH", "HIGH", "HIGH", "WARNING", /* byte 36 */ "WARNING", "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", /* byte 37 */ "HIGH", "HIGH", "HIGH", "HIGH", "OK", "HIGH", "HIGH", "HIGH", /* byte 38 */ "OK", "OK", "HIGH", "HIGH", "OK", "OK", "HIGH", "FAILED", /* byte 39 */ "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", /* byte 40 */ "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", /* byte 41 */ "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", /* byte 42 */ "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "HIGH", /* byte 43 */ "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", "FAILED", /* byte 44 */ "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", /* byte 45 */ "FAILED", "FAILED", "FAILED", "FAILED", "FAILED", "HIGH", "HIGH", "HIGH", /* byte 46 */ "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", "HIGH", "---", /* dummy */ 0 }; dummymod(void) { }