diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-11-09 03:43:47 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-11-09 03:43:47 +0000 |
commit | a0af97d2bfba67f952a59dfb549397d8e110dc2c (patch) | |
tree | f3e006050ad0e6bc787f775d891fb801b6ed54b7 /cpukit/libnetworking/rtems | |
parent | Added #define to make this file exactly like its siblings in mpc821 (diff) | |
download | rtems-a0af97d2bfba67f952a59dfb549397d8e110dc2c.tar.bz2 |
Patch from Eric Norum <eric@cls.usask.ca> to add NTP BOOTP support because
EPICS needs a synchronized time-of-day clock. This patch is the changes
needed to get NTP server information from a BOOTP server.
This patch also adds NTP server information to the network configuration
structure, too.
Diffstat (limited to 'cpukit/libnetworking/rtems')
-rw-r--r-- | cpukit/libnetworking/rtems/rtems_bsdnet.h | 4 | ||||
-rw-r--r-- | cpukit/libnetworking/rtems/rtems_glue.c | 12 |
2 files changed, 16 insertions, 0 deletions
diff --git a/cpukit/libnetworking/rtems/rtems_bsdnet.h b/cpukit/libnetworking/rtems/rtems_bsdnet.h index 3152099525..b5403d21b0 100644 --- a/cpukit/libnetworking/rtems/rtems_bsdnet.h +++ b/cpukit/libnetworking/rtems/rtems_bsdnet.h @@ -35,6 +35,9 @@ extern struct in_addr rtems_bsdnet_bootp_server_address; extern char *rtems_bsdnet_bootp_server_name; extern char *rtems_bsdnet_bootp_boot_file_name; +extern struct in_addr rtems_bsdnet_ntpserver[]; +extern int rtems_bsdnet_ntpserver_count; +extern long rtems_bsdnet_timeoffset; /* * Manipulate routing tables @@ -127,6 +130,7 @@ struct rtems_bsdnet_config { char *gateway; /* BOOTP */ char *log_host; /* BOOTP */ char *name_server[3]; /* BOOTP */ + char *ntp_server[3]; /* BOOTP */ }; extern struct rtems_bsdnet_config rtems_bsdnet_config; int rtems_bsdnet_initialize_network (void); diff --git a/cpukit/libnetworking/rtems/rtems_glue.c b/cpukit/libnetworking/rtems/rtems_glue.c index f5a39b1448..b799911861 100644 --- a/cpukit/libnetworking/rtems/rtems_glue.c +++ b/cpukit/libnetworking/rtems/rtems_glue.c @@ -77,6 +77,10 @@ char *rtems_bsdnet_domain_name; struct in_addr rtems_bsdnet_nameserver[sizeof rtems_bsdnet_config.name_server / sizeof rtems_bsdnet_config.name_server[0]]; int rtems_bsdnet_nameserver_count; +struct in_addr rtems_bsdnet_ntpserver[sizeof rtems_bsdnet_config.ntp_server / + sizeof rtems_bsdnet_config.ntp_server[0]]; +int rtems_bsdnet_ntpserver_count; +long rtems_bsdnet_timeoffset; /* * Perform FreeBSD memory allocation. @@ -733,6 +737,7 @@ rtems_bsdnet_setup (void) struct sockaddr_in broadcast; struct sockaddr_in gateway; int i; + extern char *strdup (const char *cp); /* * Set local parameters @@ -753,6 +758,13 @@ rtems_bsdnet_setup (void) rtems_bsdnet_nameserver[rtems_bsdnet_nameserver_count++].s_addr = inet_addr (rtems_bsdnet_config.name_server[i]); } + for (i = 0 ; i < sizeof rtems_bsdnet_config.ntp_server / + sizeof rtems_bsdnet_config.ntp_server[0] ; i++) { + if (!rtems_bsdnet_config.ntp_server[i]) + break; + rtems_bsdnet_ntpserver[rtems_bsdnet_ntpserver_count++].s_addr + = inet_addr (rtems_bsdnet_config.ntp_server[i]); + } /* * Configure interfaces |