Annotation of embedaddon/ntp/include/ntif.h, revision 1.1

1.1     ! misho       1: /* this is a hacked version of if.h from unix to contain the stuff we need only to build named (bind) with
        !             2:    the minimal amount of changes... by l. kahn */
        !             3: 
        !             4:    /*
        !             5:  * Copyright (c) 1982, 1986 Regents of the University of California.
        !             6:  * All rights reserved.  The Berkeley software License Agreement
        !             7:  * specifies the terms and conditions for redistribution.
        !             8:  */
        !             9: 
        !            10: #ifndef        _NET_IF_H
        !            11: #define        _NET_IF_H
        !            12: 
        !            13: 
        !            14: /* #pragma ident       "@(#)if.h       1.3     93/06/30 SMI"
        !            15: /* if.h 1.26 90/05/29 SMI; from UCB 7.1 6/4/86         */
        !            16: 
        !            17: #ifdef __cplusplus
        !            18: extern "C" {
        !            19: #endif
        !            20: 
        !            21: /*
        !            22:  * Structures defining a network interface, providing a packet
        !            23:  * transport mechanism (ala level 0 of the PUP protocols).
        !            24:  *
        !            25:  * Each interface accepts output datagrams of a specified maximum
        !            26:  * length, and provides higher level routines with input datagrams
        !            27:  * received from its medium.
        !            28:  *
        !            29:  * Output occurs when the routine if_output is called, with three parameters:
        !            30:  *     (*ifp->if_output)(ifp, m, dst)
        !            31:  * Here m is the mbuf chain to be sent and dst is the destination address.
        !            32:  * The output routine encapsulates the supplied datagram if necessary,
        !            33:  * and then transmits it on its medium.
        !            34:  *
        !            35:  * On input, each interface unwraps the data received by it, and either
        !            36:  * places it on the input queue of a internetwork datagram routine
        !            37:  * and posts the associated software interrupt, or passes the datagram to a raw
        !            38:  * packet input routine.
        !            39:  *
        !            40:  * Routines exist for locating interfaces by their addresses
        !            41:  * or for locating a interface on a certain network, as well as more general
        !            42:  * routing and gateway routines maintaining information used to locate
        !            43:  * interfaces.  These routines live in the files if.c and route.c
        !            44:  */
        !            45: 
        !            46: /*
        !            47:  * Structure defining a queue for a network interface.
        !            48:  *
        !            49:  * (Would like to call this struct ``if'', but C isn't PL/1.)
        !            50:  */
        !            51: /*
        !            52:  * Interface request structure used for socket
        !            53:  * ioctl's.  All interface ioctl's must have parameter
        !            54:  * definitions which begin with ifr_name.  The
        !            55:  * remainder may be interface specific.
        !            56:  */
        !            57: #ifdef FD_SETSIZE
        !            58: #undef FD_SETSIZE
        !            59: #endif
        !            60: #define FD_SETSIZE 512
        !            61: #include <winsock.h>
        !            62: typedef char *caddr_t;
        !            63: 
        !            64: int get_winnt_interfaces();
        !            65: 
        !            66: struct ifreq {
        !            67: #define        IFNAMSIZ        16
        !            68:        char    ifr_name[IFNAMSIZ];             /* if name, e.g. "en0" */
        !            69:        struct  sockaddr ifru_addr;
        !            70:     char    nt_mask[IFNAMSIZ];      /* new field to store mask returned from nt lookup l. kahn */
        !            71: 
        !            72: #define        ifr_addr        ifru_addr       /* address */
        !            73: #define        ifr_mask        nt_mask     /* nt mask in character form */
        !            74: 
        !            75: };
        !            76: 
        !            77: /*
        !            78:  * Structure used in SIOCGIFCONF request.
        !            79:  * Used to retrieve interface configuration
        !            80:  * for machine (useful for programs which
        !            81:  * must know all networks accessible).
        !            82:  */
        !            83: struct ifconf {
        !            84:        int     ifc_len;                /* size of associated buffer */
        !            85:        union {
        !            86:                caddr_t ifcu_buf;
        !            87:                struct  ifreq *ifcu_req;
        !            88:        } ifc_ifcu;
        !            89: #define        ifc_buf ifc_ifcu.ifcu_buf       /* buffer address */
        !            90: #define        ifc_req ifc_ifcu.ifcu_req       /* array of structures returned */
        !            91: };
        !            92: 
        !            93: #ifdef __cplusplus
        !            94: }
        !            95: #endif
        !            96: 
        !            97: #endif /* _NET_IF_H */
        !            98: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>