OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [linux/] [if.h] - Diff between revs 1633 and 1765

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 1633 Rev 1765
/*
/*
 * INET         An implementation of the TCP/IP protocol suite for the LINUX
 * INET         An implementation of the TCP/IP protocol suite for the LINUX
 *              operating system.  INET is implemented using the  BSD Socket
 *              operating system.  INET is implemented using the  BSD Socket
 *              interface as the means of communication with the user level.
 *              interface as the means of communication with the user level.
 *
 *
 *              Global definitions for the INET interface module.
 *              Global definitions for the INET interface module.
 *
 *
 * Version:     @(#)if.h        1.0.2   04/18/93
 * Version:     @(#)if.h        1.0.2   04/18/93
 *
 *
 * Authors:     Original taken from Berkeley UNIX 4.3, (c) UCB 1982-1988
 * Authors:     Original taken from Berkeley UNIX 4.3, (c) UCB 1982-1988
 *              Ross Biro, <bir7@leland.Stanford.Edu>
 *              Ross Biro, <bir7@leland.Stanford.Edu>
 *              Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
 *              Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
 *
 *
 *              This program is free software; you can redistribute it and/or
 *              This program is free software; you can redistribute it and/or
 *              modify it under the terms of the GNU General Public License
 *              modify it under the terms of the GNU General Public License
 *              as published by the Free Software Foundation; either version
 *              as published by the Free Software Foundation; either version
 *              2 of the License, or (at your option) any later version.
 *              2 of the License, or (at your option) any later version.
 */
 */
#ifndef _LINUX_IF_H
#ifndef _LINUX_IF_H
#define _LINUX_IF_H
#define _LINUX_IF_H
 
 
#include <linux/types.h>                /* for "caddr_t" et al          */
#include <linux/types.h>                /* for "caddr_t" et al          */
#include <linux/socket.h>               /* for "struct sockaddr" et al  */
#include <linux/socket.h>               /* for "struct sockaddr" et al  */
 
 
/* Standard interface flags. */
/* Standard interface flags. */
#define IFF_UP          0x1             /* interface is up              */
#define IFF_UP          0x1             /* interface is up              */
#define IFF_BROADCAST   0x2             /* broadcast address valid      */
#define IFF_BROADCAST   0x2             /* broadcast address valid      */
#define IFF_DEBUG       0x4             /* turn on debugging            */
#define IFF_DEBUG       0x4             /* turn on debugging            */
#define IFF_LOOPBACK    0x8             /* is a loopback net            */
#define IFF_LOOPBACK    0x8             /* is a loopback net            */
#define IFF_POINTOPOINT 0x10            /* interface is has p-p link    */
#define IFF_POINTOPOINT 0x10            /* interface is has p-p link    */
#define IFF_NOTRAILERS  0x20            /* avoid use of trailers        */
#define IFF_NOTRAILERS  0x20            /* avoid use of trailers        */
#define IFF_RUNNING     0x40            /* resources allocated          */
#define IFF_RUNNING     0x40            /* resources allocated          */
#define IFF_NOARP       0x80            /* no ARP protocol              */
#define IFF_NOARP       0x80            /* no ARP protocol              */
#define IFF_PROMISC     0x100           /* receive all packets          */
#define IFF_PROMISC     0x100           /* receive all packets          */
/* Not supported */
/* Not supported */
#define IFF_ALLMULTI    0x200           /* receive all multicast packets*/
#define IFF_ALLMULTI    0x200           /* receive all multicast packets*/
 
 
#define IFF_MASTER      0x400           /* master of a load balancer    */
#define IFF_MASTER      0x400           /* master of a load balancer    */
#define IFF_SLAVE       0x800           /* slave of a load balancer     */
#define IFF_SLAVE       0x800           /* slave of a load balancer     */
 
 
#define IFF_MULTICAST   0x1000          /* Supports multicast           */
#define IFF_MULTICAST   0x1000          /* Supports multicast           */
#define IFF_SOFTHEADERS 0x2000          /* Device cannot construct headers
#define IFF_SOFTHEADERS 0x2000          /* Device cannot construct headers
                                         * until broadcast time. Therefore
                                         * until broadcast time. Therefore
                                         * SOCK_PACKET must call header
                                         * SOCK_PACKET must call header
                                         * construction. Private flag.
                                         * construction. Private flag.
                                         * Never visible outside of kernel.
                                         * Never visible outside of kernel.
                                         */
                                         */
 
 
/*
/*
 * The ifaddr structure contains information about one address
 * The ifaddr structure contains information about one address
 * of an interface.  They are maintained by the different address
 * of an interface.  They are maintained by the different address
 * families, are allocated and attached when an address is set,
 * families, are allocated and attached when an address is set,
 * and are linked together so all addresses for an interface can
 * and are linked together so all addresses for an interface can
 * be located.
 * be located.
 */
 */
 
 
struct ifaddr
struct ifaddr
{
{
        struct sockaddr ifa_addr;       /* address of interface         */
        struct sockaddr ifa_addr;       /* address of interface         */
        union {
        union {
                struct sockaddr ifu_broadaddr;
                struct sockaddr ifu_broadaddr;
                struct sockaddr ifu_dstaddr;
                struct sockaddr ifu_dstaddr;
        } ifa_ifu;
        } ifa_ifu;
        struct iface            *ifa_ifp;       /* back-pointer to interface    */
        struct iface            *ifa_ifp;       /* back-pointer to interface    */
        struct ifaddr           *ifa_next;      /* next address for interface   */
        struct ifaddr           *ifa_next;      /* next address for interface   */
};
};
 
 
#define ifa_broadaddr   ifa_ifu.ifu_broadaddr   /* broadcast address    */
#define ifa_broadaddr   ifa_ifu.ifu_broadaddr   /* broadcast address    */
#define ifa_dstaddr     ifa_ifu.ifu_dstaddr     /* other end of link    */
#define ifa_dstaddr     ifa_ifu.ifu_dstaddr     /* other end of link    */
 
 
/*
/*
 *      Device mapping structure. I'd just gone off and designed a
 *      Device mapping structure. I'd just gone off and designed a
 *      beautiful scheme using only loadable modules with arguments
 *      beautiful scheme using only loadable modules with arguments
 *      for driver options and along come the PCMCIA people 8)
 *      for driver options and along come the PCMCIA people 8)
 *
 *
 *      Ah well. The get() side of this is good for WDSETUP, and it'll
 *      Ah well. The get() side of this is good for WDSETUP, and it'll
 *      be handy for debugging things. The set side is fine for now and
 *      be handy for debugging things. The set side is fine for now and
 *      being very small might be worth keeping for clean configuration.
 *      being very small might be worth keeping for clean configuration.
 */
 */
 
 
struct ifmap
struct ifmap
{
{
        unsigned long mem_start;
        unsigned long mem_start;
        unsigned long mem_end;
        unsigned long mem_end;
        unsigned short base_addr;
        unsigned short base_addr;
        unsigned char irq;
        unsigned char irq;
        unsigned char dma;
        unsigned char dma;
        unsigned char port;
        unsigned char port;
        /* 3 bytes spare */
        /* 3 bytes spare */
};
};
 
 
/*
/*
 * Interface request structure used for socket
 * Interface request structure used for socket
 * ioctl's.  All interface ioctl's must have parameter
 * ioctl's.  All interface ioctl's must have parameter
 * definitions which begin with ifr_name.  The
 * definitions which begin with ifr_name.  The
 * remainder may be interface specific.
 * remainder may be interface specific.
 */
 */
 
 
struct ifreq
struct ifreq
{
{
#define IFHWADDRLEN     6
#define IFHWADDRLEN     6
#define IFNAMSIZ        16
#define IFNAMSIZ        16
        union
        union
        {
        {
                char    ifrn_name[IFNAMSIZ];            /* if name, e.g. "en0" */
                char    ifrn_name[IFNAMSIZ];            /* if name, e.g. "en0" */
        } ifr_ifrn;
        } ifr_ifrn;
 
 
        union {
        union {
                struct  sockaddr ifru_addr;
                struct  sockaddr ifru_addr;
                struct  sockaddr ifru_dstaddr;
                struct  sockaddr ifru_dstaddr;
                struct  sockaddr ifru_broadaddr;
                struct  sockaddr ifru_broadaddr;
                struct  sockaddr ifru_netmask;
                struct  sockaddr ifru_netmask;
                struct  sockaddr ifru_hwaddr;
                struct  sockaddr ifru_hwaddr;
                short   ifru_flags;
                short   ifru_flags;
                int     ifru_metric;
                int     ifru_metric;
                int     ifru_mtu;
                int     ifru_mtu;
                struct  ifmap ifru_map;
                struct  ifmap ifru_map;
                char    ifru_slave[IFNAMSIZ];   /* Just fits the size */
                char    ifru_slave[IFNAMSIZ];   /* Just fits the size */
                caddr_t ifru_data;
                caddr_t ifru_data;
        } ifr_ifru;
        } ifr_ifru;
};
};
 
 
#define ifr_name        ifr_ifrn.ifrn_name      /* interface name       */
#define ifr_name        ifr_ifrn.ifrn_name      /* interface name       */
#define ifr_hwaddr      ifr_ifru.ifru_hwaddr    /* MAC address          */
#define ifr_hwaddr      ifr_ifru.ifru_hwaddr    /* MAC address          */
#define ifr_addr        ifr_ifru.ifru_addr      /* address              */
#define ifr_addr        ifr_ifru.ifru_addr      /* address              */
#define ifr_dstaddr     ifr_ifru.ifru_dstaddr   /* other end of p-p lnk */
#define ifr_dstaddr     ifr_ifru.ifru_dstaddr   /* other end of p-p lnk */
#define ifr_broadaddr   ifr_ifru.ifru_broadaddr /* broadcast address    */
#define ifr_broadaddr   ifr_ifru.ifru_broadaddr /* broadcast address    */
#define ifr_netmask     ifr_ifru.ifru_netmask   /* interface net mask   */
#define ifr_netmask     ifr_ifru.ifru_netmask   /* interface net mask   */
#define ifr_flags       ifr_ifru.ifru_flags     /* flags                */
#define ifr_flags       ifr_ifru.ifru_flags     /* flags                */
#define ifr_metric      ifr_ifru.ifru_metric    /* metric               */
#define ifr_metric      ifr_ifru.ifru_metric    /* metric               */
#define ifr_mtu         ifr_ifru.ifru_mtu       /* mtu                  */
#define ifr_mtu         ifr_ifru.ifru_mtu       /* mtu                  */
#define ifr_map         ifr_ifru.ifru_map       /* device map           */
#define ifr_map         ifr_ifru.ifru_map       /* device map           */
#define ifr_slave       ifr_ifru.ifru_slave     /* slave device         */
#define ifr_slave       ifr_ifru.ifru_slave     /* slave device         */
#define ifr_data        ifr_ifru.ifru_data      /* for use by interface */
#define ifr_data        ifr_ifru.ifru_data      /* for use by interface */
 
 
/*
/*
 * Structure used in SIOCGIFCONF request.
 * Structure used in SIOCGIFCONF request.
 * Used to retrieve interface configuration
 * Used to retrieve interface configuration
 * for machine (useful for programs which
 * for machine (useful for programs which
 * must know all networks accessible).
 * must know all networks accessible).
 */
 */
 
 
struct ifconf
struct ifconf
{
{
        int     ifc_len;                        /* size of buffer       */
        int     ifc_len;                        /* size of buffer       */
        union
        union
        {
        {
                caddr_t ifcu_buf;
                caddr_t ifcu_buf;
                struct  ifreq *ifcu_req;
                struct  ifreq *ifcu_req;
        } ifc_ifcu;
        } ifc_ifcu;
};
};
#define ifc_buf ifc_ifcu.ifcu_buf               /* buffer address       */
#define ifc_buf ifc_ifcu.ifcu_buf               /* buffer address       */
#define ifc_req ifc_ifcu.ifcu_req               /* array of structures  */
#define ifc_req ifc_ifcu.ifcu_req               /* array of structures  */
 
 
#endif /* _LINUX_IF_H */
#endif /* _LINUX_IF_H */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.