home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warptlk3.zip / TOOLKIT / H / QOS.H < prev    next >
C/C++ Source or Header  |  1995-08-24  |  2KB  |  65 lines

  1. #ifndef _QOS_H_
  2. #define _QOS_H_
  3.  
  4. /*
  5.  * macros to get desired or minimum qos
  6.  * value from the component and macro to
  7.  * get a composite from the two component
  8.  */
  9.  
  10. #define DESIREDQOS(composite)           ((composite) >> 16)
  11. #define MINIMUMQOS(composite)           ((composite) && 0x0000FFFF)
  12. #define COMPOSITEQOS(desired,minimum)   (((desired)<<16)+(minimum))
  13.  
  14. /*
  15.  * Quality of service values
  16.  */
  17. #define QOS_COMPLETE     100
  18. #define QOS_NONE           1
  19. #define QOS_DEFAULT        0
  20. #define QOS_RESERVED     0xFF        /*values below this reserved */
  21.  
  22. /*
  23.  * Composite quality of service values
  24.  */
  25. #define GUARANTEED       COMPOSITEQOS(QOS_COMPLETE, QOS_COMPLETE)
  26. #define DONTCARE         COMPOSITEQOS(QOS_COMPLETE, QOS_NONE)
  27. #define DONTRESERVE      COMPOSITEQOS(QOS_NONE, QOS_NONE)
  28. #define SYSTEMDEFAULT    COMPOSITEQOS(QOS_DEFAULT, QOS_DEFAULT)
  29.  
  30. /*
  31.  * How should qos errors be reported?
  32.  */
  33. #define ERROR_REPORT     1           /* report to the user */
  34. #define ERROR_IGNORE     2           /* ignore them        */
  35. #define ERROR_DEFAULT    0           /* according to the system setting */
  36.  
  37. /*
  38.  * qos parameters
  39.  */
  40. #define SERVICE_REQUEST         1    /* service quality requested */
  41. #define MAX_EE_JITTER           2    /* allowable jitter          */
  42. #define MAX_DATA_RATE           3    /* maximum streaming rate    */
  43. #define AVG_DATA_RATE           4    /* avg. streaming rate       */
  44.  
  45. /*
  46.  * mmiom_beginstream parameters
  47.  */
  48. #define STREAM_READ             1
  49. #define STREAM_WRITE            2
  50.  
  51. /*
  52.  * qos structures - definitions
  53.  */
  54.  
  55. typedef struct _QOS {                /* qos parameter          */
  56.      LONG  lQOSParmId;               /* qos parameter name     */
  57.      LONG  lQOSValue;                /* value of the parameter */
  58. } QOS, *PQOS;
  59. typedef struct _QOSInfo {
  60.      LONG            lNumQOSParms;   /* number of qos parameters */
  61.      QOS             QOSParms[1];    /* array of qos parameters  */
  62. } QOSInfo, *PQOSInfo;
  63.  
  64. #endif /* _QOS_H_ */
  65.