1 typedef struct SmPath SmPath; 2 typedef struct TapSm TapSm; 3 typedef struct Tap Tap; 4 5 enum{ 6 TapReset, 7 TapIdle, 8 TapSelDR, 9 TapCaptureDR, 10 TapShiftDR, 11 TapExit1DR, 12 TapPauseDR, 13 TapExit2DR, 14 TapUpdateDR, 15 TapSelIR, 16 TapCaptureIR, 17 TapShiftIR, 18 TapExit1IR, 19 TapPauseIR, 20 TapExit2IR, 21 TapUpdateIR, 22 NStates, 23 TapUnknown, 24 }; 25 26 27 enum { 28 TapDR, 29 TapIR = TapSelIR-TapSelDR, 30 }; 31 32 struct TapSm{ 33 int state; 34 }; 35 36 struct SmPath{ 37 ulong ptms; /* msb order on the lsb side, see comment on msb2lsb */ 38 ulong ptmslen; 39 int st; 40 }; 41 42 struct Tap { 43 TapSm; 44 u32int hwid; 45 int irlen; 46 int drlen; 47 char name[32]; 48 void *private; 49 }; 50 51 extern void moveto(TapSm *sm, int dest); 52 extern SmPath pathto(TapSm *sm, int dest); 53 extern SmPath takepathpref(SmPath *pth, int nbits); 54