usrNetUlipBoot.c
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* usrNetUlipBoot.c - start a user level IP boot device */
  2. /* Copyright 1992 - 1998 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01a,18aug98,ann  created from usrNetwork.c
  7. */
  8. /*
  9. DESCRIPTION
  10. This file is included by the configuration tool to initialize a ULIP
  11. boot device according to the parameters in the boot line. It contains the 
  12. initialization routine for the INCLUDE_ULIP_BOOT component.
  13. NOMANUAL
  14. */
  15. /******************************************************************************
  16. *
  17. * ulipRouteSetup - set up ULIP routing
  18. */
  19. void ulipRouteSetup (void)
  20.     {
  21.     extern char *vxsim_ip_addr;
  22.     extern char *vxsim_ip_name;
  23.     int vxsim_num_ulips = 16;
  24.     int ix;
  25.     char host [50];
  26.     char hostip [50];
  27.     /* declare other simulated vxWorks' */
  28.     for (ix = 0; ix < vxsim_num_ulips; ix++)
  29.         {
  30.         sprintf (host, vxsim_ip_name, ix);
  31.         sprintf (hostip, vxsim_ip_addr, ix);
  32.         hostAdd (host, hostip);
  33.         }
  34.     /* Add default route thru host. Loopback for local addresses */
  35.     routeAdd ("0.0.0.0", sysBootParams.had);
  36.     routeAdd (sysBootParams.ead, "localhost");
  37.     }
  38. /*******************************************************************************
  39. *
  40. * usrNetUlipStart - start the ULIP device
  41. *
  42. * This routine creates a ULIP device as specified in the boot parameters
  43. * if it is selected as the boot device. It is the initialization routine 
  44. * for the INCLUDE_ULIP_BOOT component which is automatically added when 
  45. * both the INCLUDE_ULIP and INCLUDE_NET_INIT components are used. The
  46. * device is used by VxWorks simulators.
  47. * RETURNS: N/A
  48. *
  49. * NOMANUAL
  50. */
  51. void usrNetUlipStart (void)
  52.     {
  53.     /* 
  54.      * Do nothing if another device is already initialized or an
  55.      * error was detected in the boot parameters.
  56.      */
  57.     if (netDevBootFlag)
  58.         return;
  59.     if (strncmp (sysBootParams.bootDev, "ul", 2) == 0)
  60.         {
  61.         printf ("Attaching network interface %s%d... ",
  62.                 sysBootParams.bootDev, sysBootParams.unitNum);
  63.         /* XXX last octet of 'ead' == procNum */
  64.         if (ulipInit (sysBootParams.unitNum, sysBootParams.ead, 
  65.                       sysBootParams.had, sysBootParams.procNum) == ERROR)
  66.             {
  67.             if (errno == S_if_ul_NO_UNIX_DEVICE)
  68.                 printf ("nulipInit failed, errno = S_if_ul_NO_UNIX_DEVn");
  69.             else
  70.                 printf ("nulipInit failed, errno = 0x%xn", errno);
  71.             }
  72.         else
  73.             printf ("done.n");
  74.         netDevBootFlag = TRUE;  /* Prevents further processing. */
  75.         }
  76.     ulipRouteSetup ();
  77.     return;
  78.     }