summaryrefslogtreecommitdiffstats
path: root/cpukit/libnetworking/rtems/rtems_bsdnet.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libnetworking/rtems/rtems_bsdnet.h')
-rw-r--r--cpukit/libnetworking/rtems/rtems_bsdnet.h339
1 files changed, 0 insertions, 339 deletions
diff --git a/cpukit/libnetworking/rtems/rtems_bsdnet.h b/cpukit/libnetworking/rtems/rtems_bsdnet.h
deleted file mode 100644
index 4607f42477..0000000000
--- a/cpukit/libnetworking/rtems/rtems_bsdnet.h
+++ /dev/null
@@ -1,339 +0,0 @@
-/**
- * @file
- */
-
-
-#ifndef _RTEMS_BSDNET_H
-#define _RTEMS_BSDNET_H
-
-#include <rtems.h>
-#include <sys/cpuset.h>
-#include <sys/ioccom.h>
-#include <sys/socket.h>
-#include <net/if.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Values that may be obtained by BOOTP
- */
-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 char *rtems_bsdnet_bootp_cmdline;
-extern int32_t rtems_bsdnet_timeoffset;
-
-/*
- * Manipulate routing tables
- */
-struct sockaddr;
-struct rtentry;
-int rtems_bsdnet_rtrequest (
- int req,
- struct sockaddr *dst,
- struct sockaddr *gateway,
- struct sockaddr *netmask,
- int flags,
- struct rtentry **net_nrt);
-
-/*
- * Diagnostics
- */
-void rtems_bsdnet_show_inet_routes (void);
-void rtems_bsdnet_show_mbuf_stats (void);
-void rtems_bsdnet_show_if_stats (void);
-void rtems_bsdnet_show_ip_stats (void);
-void rtems_bsdnet_show_icmp_stats (void);
-void rtems_bsdnet_show_udp_stats (void);
-void rtems_bsdnet_show_tcp_stats (void);
-
-/*
- * Network configuration
- */
-struct rtems_bsdnet_ifconfig {
- /*
- * These three entries must be supplied for each interface.
- */
- char *name;
-
- /*
- * This function now handles attaching and detaching an interface.
- * The parameter attaching indicates the operation being invoked.
- * For older attach functions which do not have the extra parameter
- * it will be ignored.
- */
- int (*attach)(struct rtems_bsdnet_ifconfig *conf, int attaching);
-
- /*
- * Link to next interface
- */
- struct rtems_bsdnet_ifconfig *next;
-
- /*
- * The following entries may be obtained
- * from BOOTP or explicitily supplied.
- */
- char *ip_address;
- char *ip_netmask;
- void *hardware_address;
-
- /*
- * The driver assigns defaults values to the following
- * entries if they are not explicitly supplied.
- */
- int ignore_broadcast;
- int mtu;
- int rbuf_count;
- int xbuf_count;
-
- /*
- * For external ethernet controller board the following
- * parameters are needed
- */
- unsigned int port; /* port of the board */
- unsigned int irno; /* irq of the board */
- unsigned int bpar; /* memory of the board */
-
- /*
- * Driver control block pointer. Typcially this points to the driver's
- * controlling structure. You set this when you have the structure allocated
- * externally to the driver.
- */
- void *drv_ctrl;
-
-};
-
-struct rtems_bsdnet_config {
- /*
- * This entry points to the head of the ifconfig chain.
- */
- struct rtems_bsdnet_ifconfig *ifconfig;
-
- /*
- * This entry should be rtems_bsdnet_do_bootp if BOOTP
- * is being used to configure the network, and NULL
- * if BOOTP is not being used.
- */
- void (*bootp)(void);
-
- /*
- * The remaining items can be initialized to 0, in
- * which case the default value will be used.
- */
- rtems_task_priority network_task_priority; /* 100 */
- unsigned long mbuf_bytecount; /* 64 kbytes */
- unsigned long mbuf_cluster_bytecount; /* 128 kbytes */
- char *hostname; /* BOOTP */
- char *domainname; /* BOOTP */
- char *gateway; /* BOOTP */
- char *log_host; /* BOOTP */
- char *name_server[3]; /* BOOTP */
- char *ntp_server[3]; /* BOOTP */
- /*
- * Default "multiplier" on buffer size. This is
- * claimed by the TCP/IP implementation to be for
- * efficiency but you will have to measure the
- * benefit for buffering beyond double buffering
- * in your own application.
- *
- * The default value is 2.
- *
- * See kern/uipc_socket2.c for details.
- */
- unsigned long sb_efficiency;
- /*
- * Default UDP buffer sizes PER SOCKET!!
- *
- * TX = 9216 -- max datagram size
- * RX = 40 * (1024 + sizeof(struct sockaddr_in))
- *
- * See netinet/udp_usrreq.c for details
- */
- unsigned long udp_tx_buf_size;
- unsigned long udp_rx_buf_size;
- /*
- * Default UDP buffer sizes PER SOCKET!!
- *
- * TX = 16 * 1024
- * RX = 16 * 1024
- *
- * See netinet/tcp_usrreq.c for details
- */
- unsigned long tcp_tx_buf_size;
- unsigned long tcp_rx_buf_size;
-
- /*
- * Default Network Tasks CPU Affinity
- */
-#ifdef RTEMS_SMP
- const cpu_set_t *network_task_cpuset;
- size_t network_task_cpuset_size;
-#endif
-};
-
-/*
- * Default global device configuration structure. This is scanned
- * by the initialize network function. Check the network demo's for
- * an example of the structure. Like the RTEMS configuration tables,
- * they are not part of RTEMS but part of your application or bsp
- * code.
- */
-extern struct rtems_bsdnet_config rtems_bsdnet_config;
-
-/*
- * Initialise the BSD stack, attach and `up' interfaces
- * in the `rtems_bsdnet_config'. RTEMS must already be initialised.
- */
-int rtems_bsdnet_initialize_network (void);
-
-/*
- * Dynamic interface control. Drivers must free any resources such as
- * memory, interrupts, io regions claimed during the `attach' and/or
- * `up' operations when asked to `detach'.
- * You must configure the interface after attaching it.
- */
-void rtems_bsdnet_attach (struct rtems_bsdnet_ifconfig *ifconfig);
-void rtems_bsdnet_detach (struct rtems_bsdnet_ifconfig *ifconfig);
-
-/*
- * Interface configuration. The commands are listed in `sys/sockio.h'.
- */
-int rtems_bsdnet_ifconfig (const char *ifname, uint32_t cmd, void *param);
-
-void rtems_bsdnet_do_bootp (void);
-void rtems_bsdnet_do_bootp_and_rootfs (void);
-
-/* NTP tuning parameters */
-extern int rtems_bsdnet_ntp_retry_count;
-extern int rtems_bsdnet_ntp_timeout_secs;
-extern int rtems_bsdnet_ntp_bcast_timeout_secs;
-
-
-struct timestamp {
- uint32_t integer;
- uint32_t fraction;
-};
-
-/* Data is passed in network byte order */
-struct ntpPacketSmall {
- uint8_t li_vn_mode;
- uint8_t stratum;
- int8_t poll_interval;
- int8_t precision;
- int32_t root_delay;
- int32_t root_dispersion;
- char reference_identifier[4];
- struct timestamp reference_timestamp;
- struct timestamp originate_timestamp;
- struct timestamp receive_timestamp;
- struct timestamp transmit_timestamp;
-};
-
-/* NOTE: packet data is *only* accessible from the callback
- *
- * 'callback' is invoked twice, once prior to sending a request
- * to the server and one more time after receiving a valid reply.
- * This allows for the user to measure round-trip times.
- *
- * Semantics of the 'state' parameter:
- *
- * state == 1: 1st call, just prior to sending request. The
- * packet has been set up already but may be
- * modified by the callback (e.g. to set the originate
- * timestamp).
- * state == -1: 1st call - no request will be sent but we'll
- * wait for a reply from a broadcast server. The
- * packet has not been set up.
- * state == 0: 2nd call. The user is responsible for keeping track
- * of the 'state' during the first call in order to
- * know if it makes sense to calculate 'round-trip' times.
- *
- * RETURN VALUE: the callback should return 0 if processing the packet was
- * successful and -1 on error in which case rtems_bsdnet_get_ntp()
- * may try another server.
- */
-typedef int (*rtems_bsdnet_ntp_callback_t)(
- struct ntpPacketSmall *packet,
- int state,
- void *usr_data);
-
-/* Obtain time from a NTP server and call user callback to process data;
- * socket parameter may be -1 to request the routine to open and close its own socket.
- * Networking parameters as configured are used...
- *
- * It is legal to pass a NULL callback pointer. In this case, a default callback
- * is used which determines the current time by contacting an NTP server. The current
- * time is converted to a 'struct timespec' (seconds/nanoseconds) and passed into *usr_data.
- * The caller is responsible for providing a memory area >= sizeof(struct timespec).
- *
- * RETURNS: 0 on success, -1 on failure.
- */
-int rtems_bsdnet_get_ntp(int socket, rtems_bsdnet_ntp_callback_t callback, void *usr_data);
-
-int rtems_bsdnet_synchronize_ntp (int interval, rtems_task_priority priority);
-
-/*
- * Callback to report BSD malloc starvation.
- * The default implementation just prints a message but an application
- * can provide its own version.
- */
-void rtems_bsdnet_malloc_starvation(void);
-
-/*
- * mbuf malloc interface to enable custom allocation of mbuf's
- *
- * May be declared in user code. If not, then the default is to
- * malloc.
- */
-void* rtems_bsdnet_malloc_mbuf(size_t size, int type);
-
-/*
- * Possible values of the type parameter to rtems_bsdnet_malloc_mbuf to assist
- * in allocation of the structure.
- */
-#define MBUF_MALLOC_NMBCLUSTERS (0)
-#define MBUF_MALLOC_MCLREFCNT (1)
-#define MBUF_MALLOC_MBUF (2)
-
-/*
- * RTEMS-specific socket wake-up additions previously part of <sys/socket.h>.
- *
- * An alternative in the LibBSD network stack for this is KQUEUE(2).
- */
-
-#define SO_SNDWAKEUP 0x1020 /* wakeup when ready to send */
-#define SO_RCVWAKEUP 0x1021 /* wakeup when ready to receive */
-
-/*
- * RTEMS additions for setting/getting `tap' function on incoming packets.
- */
-struct ifnet;
-struct ether_header;
-struct mbuf;
-struct rtems_tap_ifreq {
- char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */
- int (*ifr_tap)(struct ifnet *, struct ether_header *, struct mbuf *);
-};
-#define SIOCSIFTAP _IOW('i', 88, struct rtems_tap_ifreq) /* set tap function */
-#define SIOCGIFTAP _IOW('i', 89, struct rtems_tap_ifreq) /* get tap function */
-
-#define OSIOCGIFADDR _IOWR('i', 13, struct ifreq) /* get ifnet address */
-#define OSIOCGIFDSTADDR _IOWR('i', 15, struct ifreq) /* get p-p address */
-#define OSIOCGIFBRDADDR _IOWR('i', 18, struct ifreq) /* get broadcast addr */
-#define OSIOCGIFCONF _IOWR('i', 20, struct ifconf) /* get ifnet list */
-#define OSIOCGIFNETMASK _IOWR('i', 21, struct ifreq) /* get net addr mask */
-
-struct socket;
-
-struct sockwakeup {
- void (*sw_pfn)(struct socket *, void *);
- void *sw_arg;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTEMS_BSDNET_H */