wvHostLib.c
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* wvHostLib.c -  host information library (WindView) */
  2. /* Copyright 1984-1995 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01i,03feb95,rhp more docn tweaks, already in last printed man pages
  7. 01h,01feb95,rhp docn formatting tweaks
  8. 01g,01feb95,rhp library man page: add ref to User's Guide
  9. 01f,05apr94,smb documentation changes.
  10. 01e,04mar94,smb changed prototype for wvHostInfoInit (SPR #3089)
  11. 01d,20jan94,smb documentation tweaks
  12. 01c,19jan94,smb documentation changes
  13. 01b,30dec93,c_s added routine wvHostInfoShow (), and fixed memory leak in 
  14.   wvHostInfoInit (SPRs #2793, #2802).
  15. 01a,10dec93,smb created
  16. */
  17. /*
  18. DESCRIPTION
  19. This library provides a means of communicating characteristics
  20. of the host to the target.
  21. INCLUDE FILES: wvLib.h
  22. SEE ALSO: wvLib,
  23. .I WindView User's Guide
  24. */
  25. #include "vxWorks.h"
  26. #include "bootLib.h"
  27. #include "stdlib.h"
  28. #include "stdio.h"
  29. #include "string.h"
  30. #include "sysLib.h"
  31. #include "private/wvHostLibP.h"
  32. HOSTINFO * pHostInfo;
  33. /*****************************************************************************n
  34. *
  35. * wvHostInfoInit - initialize host connection information (WindView)
  36. *
  37. * This routine initializes the host connection information, and it can be
  38. * called any time afer the wvInstInit() call in usrConfig.c and before event
  39. * logging is enabled with wvEvtLogEnable().
  40. *
  41. * If the default port number is desired, set <port> to 0 or DEFAULT_PORT.
  42. *
  43. * If the <pIpAddress> is NULL then the booting host IP address is the 
  44. * default host address.
  45. *
  46. * RETURN:
  47. * OK, or ERROR if the host address cannot be calculated.
  48. *
  49. * SEE ALSO: wvLib
  50. */
  51. STATUS wvHostInfoInit
  52.     (
  53.     char *    pIpAddress,                  /* host ip address */
  54.     ushort_t  port                         /* host port to connect to */
  55.     )
  56.     {
  57.     BOOT_PARAMS bootInfo;               /* used to store boot information */
  58.     if (pHostInfo == NULL)
  59. {
  60. /* allocate some memory for the boot parameter structure */
  61. if ((pHostInfo = malloc (sizeof (struct hostInfo))) == NULL)
  62.     {
  63.     return (ERROR);
  64.     }
  65. }
  66.     if (pIpAddress == NULL)
  67.         {
  68.         /* convert the boot string into an understandable structure */
  69.         bootStringToStruct (sysBootLine, &bootInfo);
  70.         /* get host ipAddress from bootParam */
  71.         strcpy (pHostInfo->ipAddress, bootInfo.had);
  72.         }
  73.     else
  74.         {
  75.         strcpy (pHostInfo->ipAddress, pIpAddress);
  76.         }
  77.     if (port == 0)
  78.         pHostInfo->port = DEFAULT_PORT;          /* default port number */
  79.     else
  80.         pHostInfo->port = port;                 /* port number */
  81.     return (OK);
  82.     }
  83. /*****************************************************************************n
  84. *
  85. * wvHostInfoShow - show host connection information (WindView)
  86. *
  87. * This routine prints the WindView host connection information.  If this
  88. * information has not been initialized with wvHostInfoInit(), a message is
  89. * printed to that effect.
  90. *
  91. * RETURN:
  92. * OK, or ERROR if the host information has not been initialized.
  93. *
  94. * SEE ALSO: wvHostInfoInit(), wvLib
  95. */
  96. STATUS wvHostInfoShow (void)
  97.     {
  98.     if (pHostInfo == NULL)
  99. {
  100. printf ("WindView host connection information has not been set.n");
  101. return ERROR;
  102. }
  103.     else
  104. {
  105. printf ("Host IP Address  : %sn", pHostInfo->ipAddress);
  106. printf ("Host Port Number : %hdn", pHostInfo->port);
  107. return OK;
  108. }
  109.     }