DebugHooks.h
上传用户:baixin
上传日期:2008-03-13
资源大小:4795k
文件大小:2k
开发平台:

MultiPlatform

  1. /* DebugHooks.h -- Table of debug hooks  */
  2. /* Copyright 2001 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01d,02apr02,nel  Add WV Support.
  7. 01c,01oct01,nel  Add hook for dcomShow printing string.
  8. 01b,26sep01,nel  Modify hooks to pass IP and Port.
  9. 01a,21aug01,nel  created
  10. */
  11. /*
  12. DESCRIPTION
  13. This module holds a table of hooks that are placed at certain points in the code to
  14. allow debug data to be passed to routines and processed into debug output.
  15. */
  16. #ifndef _DebugHooks_h
  17. #define _DebugHooks_h
  18. #ifdef __cplusplus
  19. extern "C" 
  20.     {
  21. #endif
  22. /*
  23. RPC library hooks.  All of the format:
  24. hook (buffer, buffer_len, endpoint_ip, host_port, target_port
  25. */
  26. extern void (*pRpcClientOutput)(const BYTE *, DWORD, const char *, int, int);
  27. extern void (*pRpcClientInput)(const BYTE *, DWORD, const char *, int, int);
  28. extern void (*pRpcServerOutput)(const BYTE *, DWORD, const char *, int, int);
  29. extern void (*pRpcServerInput)(const BYTE *, DWORD, const char *, int, int);
  30. /* DCOM Show hooks */
  31. extern void (*pDcomShowPrintStr)(const char *);
  32. #ifdef __cplusplus
  33.     }
  34. #endif
  35. /* Macros to set and clear hooks */
  36. #define SETDEBUGHOOK(name, pfn) ((name) = (pfn))
  37. #define CLEARDEBUGHOOK(name) SETDEBUGHOOK(name, NULL)
  38. /*
  39. Macro to call a hook. Calls should be of the followinf format:
  40. HOOK(name)(p1, p2, p3, ...)
  41. */
  42. #define HOOK(name) (name)
  43. /* Macro to check if action on a hook is required */
  44. #define CHECKHOOK(name) ((name) != NULL)
  45. /*
  46. Macro to place a hook. Calls should be of the following format:
  47. DEBUGHOOK(name)(p1, p2, p3, ...)
  48. */
  49. #define DEBUGHOOK(name) if CHECKHOOK(name) HOOK(name)
  50. #endif