home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 3 / hamradioversion3.0examsandprograms1992.iso / packet / n17jsrc / kissdump.c < prev    next >
C/C++ Source or Header  |  1991-03-15  |  1KB  |  77 lines

  1. /* Tracing routines for KISS TNC
  2.  * Copyright 1991 Phil Karn, KA9Q
  3.  *
  4.  * Modified by G1EMM  19/11/90 to support multiport KISS mode.
  5.  */
  6.  
  7. #include "global.h"
  8. #include "mbuf.h"
  9. #include "kiss.h"
  10. #include "devparam.h"
  11. #include "ax25.h"
  12. #include "trace.h"
  13.  
  14. void
  15. ki_dump(fp,bpp,check)
  16. FILE *fp;
  17. struct mbuf **bpp;
  18. int check;
  19. {
  20.     int type;
  21.     int val;
  22.  
  23.     fprintf(fp,"KISS: ");
  24.     type = PULLCHAR(bpp);
  25.     if((type & 0x0f) == PARAM_DATA){
  26.         fprintf(fp,"Port %d Data\n", type >> 4);
  27.         ax25_dump(fp,bpp,check);
  28.         return;
  29.     }
  30.     if(type == PARAM_RETURN){
  31.         fprintf(fp,"RETURN\n");
  32.         return;
  33.     } else {
  34.         fprintf(fp,"Port %d ", type >> 4);
  35.     }
  36.     val = PULLCHAR(bpp);
  37.     switch(type & 0x0f){
  38.     case PARAM_TXDELAY:
  39.         fprintf(fp,"TX Delay: %lu ms\n",val * 10L);
  40.         break;
  41.     case PARAM_PERSIST:
  42.         fprintf(fp,"Persistence: %u/256\n",val + 1);
  43.         break;
  44.     case PARAM_SLOTTIME:
  45.         fprintf(fp,"Slot time: %lu ms\n",val * 10L);
  46.         break;
  47.     case PARAM_TXTAIL:
  48.         fprintf(fp,"TX Tail time: %lu ms\n",val * 10L);
  49.         break;
  50.     case PARAM_FULLDUP:
  51.         fprintf(fp,"Duplex: %s\n",val == 0 ? "Half" : "Full");
  52.         break;
  53.     case PARAM_HW:
  54.         fprintf(fp,"Hardware %u\n",val);
  55.         break;
  56.     default:
  57.         fprintf(fp,"code %u arg %u\n",type,val);
  58.         break;
  59.     }
  60. }
  61.  
  62. int
  63. ki_forus(iface,bp)
  64. struct iface *iface;
  65. struct mbuf *bp;
  66. {
  67.     struct mbuf *bpp;
  68.     int i;
  69.  
  70.     if((bp->data[0] & 0x0f) != PARAM_DATA)
  71.         return 0;
  72.     dup_p(&bpp,bp,1,AXALEN);
  73.     i = ax_forus(iface,bpp);
  74.     free_p(bpp);
  75.     return i;
  76. }
  77.