/contrib/bind9/lib/isc/include/isc/resultclass.h

https://bitbucket.org/freebsd/freebsd-head/ · C++ Header · 51 lines · 15 code · 9 blank · 27 comment · 1 complexity · 69ca9aedddd80161fc3216a52d1670fd MD5 · raw file

  1. /*
  2. * Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
  3. * Copyright (C) 1999-2001 Internet Software Consortium.
  4. *
  5. * Permission to use, copy, modify, and/or distribute this software for any
  6. * purpose with or without fee is hereby granted, provided that the above
  7. * copyright notice and this permission notice appear in all copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
  10. * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  11. * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
  12. * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  13. * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  14. * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  15. * PERFORMANCE OF THIS SOFTWARE.
  16. */
  17. /* $Id: resultclass.h,v 1.20 2009/09/02 23:48:03 tbox Exp $ */
  18. #ifndef ISC_RESULTCLASS_H
  19. #define ISC_RESULTCLASS_H 1
  20. /*! \file isc/resultclass.h
  21. * \brief Registry of Predefined Result Type Classes
  22. *
  23. * A result class number is an unsigned 16 bit number. Each class may
  24. * contain up to 65536 results. A result code is formed by adding the
  25. * result number within the class to the class number multiplied by 65536.
  26. *
  27. * Classes < 1024 are reserved for ISC use.
  28. * Result classes >= 1024 and <= 65535 are reserved for application use.
  29. */
  30. #define ISC_RESULTCLASS_FROMNUM(num) ((num) << 16)
  31. #define ISC_RESULTCLASS_TONUM(rclass) ((rclass) >> 16)
  32. #define ISC_RESULTCLASS_SIZE 65536
  33. #define ISC_RESULTCLASS_INCLASS(rclass, result) \
  34. ((rclass) == ((result) & 0xFFFF0000))
  35. #define ISC_RESULTCLASS_ISC ISC_RESULTCLASS_FROMNUM(0)
  36. #define ISC_RESULTCLASS_DNS ISC_RESULTCLASS_FROMNUM(1)
  37. #define ISC_RESULTCLASS_DST ISC_RESULTCLASS_FROMNUM(2)
  38. #define ISC_RESULTCLASS_DNSRCODE ISC_RESULTCLASS_FROMNUM(3)
  39. #define ISC_RESULTCLASS_OMAPI ISC_RESULTCLASS_FROMNUM(4)
  40. #define ISC_RESULTCLASS_ISCCC ISC_RESULTCLASS_FROMNUM(5)
  41. #define ISC_RESULTCLASS_DHCP ISC_RESULTCLASS_FROMNUM(6)
  42. #endif /* ISC_RESULTCLASS_H */