home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume28 / advise / part01 / advise.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-23  |  2.2 KB  |  72 lines

  1. /* Copyright (C) 1990 Keith Gabryelski (ag@amix.commodore.com)
  2.  
  3. This file is part of advise.
  4.  
  5. advise is distributed in the hope that it will be useful,
  6. but WITHOUT ANY WARRANTY.  No author or distributor
  7. accepts responsibility to anyone for the consequences of using it
  8. or for whether it serves any particular purpose or works at all,
  9. unless he says so in writing.  Refer to the advise General Public
  10. License for full details.
  11.  
  12. Everyone is granted permission to copy, modify and redistribute
  13. advise, but only under the conditions described in the
  14. advise General Public License.   A copy of this license is
  15. supposed to have been given to you along with advise so you
  16. can know your rights and responsibilities.  It should be in a
  17. file named COPYING.  Among other things, the copyright notice
  18. and this notice must be preserved on all copies.  */
  19.  
  20. /*
  21. ** Author:    Keith Gabryelski    (ag@amix.commodore.com)
  22. */
  23.  
  24. struct advise_queue_list
  25. {
  26.     mblk_t            *savbp;    /* ptr to this mblk for freeb()ing */
  27.     queue_t            *q;    /* advisor's queue */
  28.     int                minord; /* minor device for this advisor */
  29.     int                wdir;    /* direction of writes */
  30.     struct advise_state        *state; /* ptr back to advise_state struct */
  31.     struct advise_queue_list    *next;  /* ptr to next advisor */
  32. };
  33.  
  34. struct advise_state
  35. {
  36.     mblk_t            *savbp;    /* ptr to this mblk for freeb()ing */
  37.     int                status;    /* current status */
  38.     dev_t            dev;    /* our device */
  39.     queue_t            *q;    /* queue for advisor writing */
  40.     struct advise_queue_list    *q_wlist, *q_rlist; /* lists of spies */
  41.     struct advise_state        *next;  /* next in advise_table */
  42. };
  43.  
  44. #define ALLOW_ADVICE        (0x01)
  45.  
  46. struct advise_message
  47. {
  48.     int                type;   /* What type of data is this? */
  49. };
  50.  
  51. #define ADVISE_DATA        (0x00)
  52. #define ADVISE_READDATA        (0x01)
  53.  
  54. #ifdef sun
  55. #define ADVISE_SETADVISEEWR    _IOW(z, 1, dev_t)
  56. #define ADVISE_SETADVISEERD    _IOW(z, 2, dev_t)
  57. #define    ADVISE_ALLOW        _IO(z, 3)
  58. #define    ADVISE_DENY        _IO(z, 4)
  59. #define    ADVISE_STATUS        _IOR(z, 5, int)
  60. #else
  61. #define ADVISE            ('z'<<16)
  62. #define ADVISE_SETADVISEEWR    (ADVISE|0x01)
  63. #define ADVISE_SETADVISEERD    (ADVISE|0x02)
  64. #define    ADVISE_ALLOW        (ADVISE|0x03)
  65. #define    ADVISE_DENY        (ADVISE|0x04)
  66. #define ADVISE_STATUS        (ADVISE|0x05)
  67. #endif /* sun */
  68.  
  69. #define spladvise    spltty
  70.  
  71. #define ADVMODNAME    "advmod"
  72.