home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0020 - 0029 / ibm0020-0029 / ibm0028.tar / ibm0028 / GRLF-C-1.ZIP / GCOMM / ASIRESUM.C < prev    next >
Encoding:
C/C++ Source or Header  |  1990-08-14  |  1.8 KB  |  70 lines

  1. /* asiresum.c
  2. *
  3. * The Greenleaf Comm Library
  4. *
  5. * Copyright (C) 1985-1990 Greenleaf Software Inc.  All Rights Reserved.
  6. *
  7. *  int asiresume( port, option)
  8. *  int port;            - Port 0..MAX_PORT-1
  9. *  unsigned mode;       - ASIN, ASOUT, or ASINOUT
  10. *
  11. * DESCRIPTION
  12. *
  13. *  Holds (stops) interrupt process for a specified port.
  14. *
  15. *       option          Holds Interrupts For:
  16. *       ------          -----------------------
  17. *       ASIN            Receiver (including error & modem changes)
  18. *       ASOUT           Transmitter Only
  19. *       ASINOUT         Receiver and Transmitter
  20. *
  21. * SIDE EFFECTS
  22. *  none
  23. *
  24. * RETURNS
  25. *       Value           Meaning
  26. *     -------          --------
  27. *       ASSUCCESS       Successful
  28. *       ASINVPORT       Requested port is out of range
  29. *       ASNOTSETUP      Requested port not setup with asifirst()
  30. *       ASINVPAR        Invalid parameter
  31. *
  32. * MODIFICATIONS
  33. *  11-19-85     ""
  34. *               Modified for release 2.0
  35. */
  36. #include <stdio.h>
  37. #include "gf.h"
  38. #include "asiports.h"
  39.  
  40. int GF_CONV asiresume(port,option)
  41. int port;
  42. unsigned option;
  43. {
  44.         struct PORT_TABLE *p;
  45.         unsigned intregister=0;
  46.  
  47.         if((p=_aschkcnl(port))==NULL)
  48.                 return(_aserror);
  49.  
  50.         switch(option) {
  51.                 case    ASINOUT:
  52.                 case    ASIN:
  53.                         p->chmode_bits.is_rxint=1;
  54.                         intregister|=1;
  55.                         if(option==ASIN)
  56.                                 break;
  57.  
  58.                 case    ASOUT:
  59.                         p->chmode_bits.is_txint=1;
  60.                         intregister|=2;
  61.                         break;
  62.                 default:
  63.                         return(ASINVPAR);
  64.  
  65.         }
  66.         _asiresume(p->base_8250,intregister,p);
  67.         return(ASSUCCESS);
  68. }
  69.  
  70.