model to an instance-based model. Each ethernet driver instance is now responsible for exactly one network interface card. The port field in /etc/inet.conf now acts as an instance field instead. This patch also updates the data link protocol. This update: - eliminates the concept of ports entirely; - eliminates DL_GETNAME entirely; - standardizes on using m_source for IPC and DL_ENDPT for safecopies; - removes error codes from TASK/STAT replies, as they were unused; - removes a number of other old or unused fields; - names and renames a few other fields. All ethernet drivers have been changed to: - conform to the new protocol, and exactly that; - take on an instance number based on a given "instance" argument; - skip that number of PCI devices in probe iterations; - use config tables and environment variables based on that number; - no longer be limited to a predefined maximum of cards in any way; - get rid of any leftover non-safecopy support and other ancient junk; - have a correct banner protocol figure, or none at all. Other changes: * Inet.conf is now taken to be line-based, and supports #-comments. No existing installations are expected to be affected by this. * A new, select-based asynchio library replaces the old one. Kindly contributed by Kees J. Bot. * Inet now supports use of select() on IP devices. Combined, the last two changes together speed up dhcpd considerably in the presence of multiple interfaces. * A small bug has been fixed in nonamed.
57 lines
1.4 KiB
C
57 lines
1.4 KiB
C
/*
|
|
inet/osdep_eth.h
|
|
|
|
Created: Dec 30, 1991 by Philip Homburg
|
|
|
|
Copyright 1995 Philip Homburg
|
|
*/
|
|
|
|
#ifndef INET__OSDEP_ETH_H
|
|
#define INET__OSDEP_ETH_H
|
|
|
|
#include "generic/event.h"
|
|
|
|
#define IOVEC_NR 16
|
|
#define RD_IOVEC ((ETH_MAX_PACK_SIZE + BUF_S -1)/BUF_S)
|
|
|
|
typedef struct osdep_eth_port
|
|
{
|
|
int etp_state;
|
|
int etp_flags;
|
|
endpoint_t etp_task;
|
|
int etp_recvconf;
|
|
iovec_s_t etp_wr_iovec[IOVEC_NR];
|
|
cp_grant_id_t etp_wr_vec_grant;
|
|
iovec_s_t etp_rd_iovec[RD_IOVEC];
|
|
cp_grant_id_t etp_rd_vec_grant;
|
|
event_t etp_recvev;
|
|
cp_grant_id_t etp_stat_gid;
|
|
eth_stat_t *etp_stat_buf;
|
|
} osdep_eth_port_t;
|
|
|
|
#define OEPS_INIT 0 /* Not initialized */
|
|
#define OEPS_CONF_SENT 1 /* Conf. request has been sent */
|
|
#define OEPS_IDLE 2 /* Device is ready to accept requests */
|
|
#define OEPS_RECV_SENT 3 /* Recv. request has been sent */
|
|
#define OEPS_SEND_SENT 4 /* Send request has been sent */
|
|
#define OEPS_GETSTAT_SENT 5 /* GETSTAT request has been sent */
|
|
|
|
#define OEPF_EMPTY 0
|
|
#define OEPF_NEED_RECV 1 /* Issue recv. request when the state becomes
|
|
* idle
|
|
*/
|
|
#define OEPF_NEED_SEND 2 /* Issue send request when the state becomes
|
|
* idle
|
|
*/
|
|
#define OEPF_NEED_CONF 4 /* Issue conf request when the state becomes
|
|
* idle
|
|
*/
|
|
#define OEPF_NEED_STAT 8 /* Issue getstat request when the state becomes
|
|
* idle
|
|
*/
|
|
|
|
#endif /* INET__OSDEP_ETH_H */
|
|
|
|
/*
|
|
* $PchId: osdep_eth.h,v 1.6 2001/04/20 06:39:54 philip Exp $
|
|
*/
|