Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*
  2  * Defines for synchronous PPP/Cisco link level subroutines.
  3  *
  4  * Copyright (C) 1994 Cronyx Ltd.
  5  * Author: Serge Vakulenko, <vak@zebub.msk.su>
  6  *
  7  * This software is distributed with NO WARRANTIES, not even the implied
  8  * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  9  *
 10  * Authors grant any other persons or organizations permission to use
 11  * or modify this software as long as this message is kept with the software,
 12  * all derivative works or modified versions.
 13  *
 14  * Version 1.7, Wed Jun  7 22:12:02 MSD 1995
 15  *
 16  *
 17  *
 18  */
 19 
 20 #ifndef _SYNCPPP_H_
 21 #define _SYNCPPP_H_ 1
 22 
 23 #ifdef __KERNEL__
 24 struct slcp {
 25         u16     state;          /* state machine */
 26         u32     magic;          /* local magic number */
 27         u_char  echoid;         /* id of last keepalive echo request */
 28         u_char  confid;         /* id of last configuration request */
 29 };
 30 
 31 struct sipcp {
 32         u16     state;          /* state machine */
 33         u_char  confid;         /* id of last configuration request */
 34 };
 35 
 36 struct sppp 
 37 {
 38         struct sppp *   pp_next;        /* next interface in keepalive list */
 39         u32             pp_flags;       /* use Cisco protocol instead of PPP */
 40         u16             pp_alivecnt;    /* keepalive packets counter */
 41         u16             pp_loopcnt;     /* loopback detection counter */
 42         u32             pp_seq;         /* local sequence number */
 43         u32             pp_rseq;        /* remote sequence number */
 44         struct slcp     lcp;            /* LCP params */
 45         struct sipcp    ipcp;           /* IPCP params */
 46         u32             ibytes,obytes;  /* Bytes in/out */
 47         u32             ipkts,opkts;    /* Packets in/out */
 48         struct timer_list       pp_timer;
 49         struct net_device       *pp_if;
 50         char            pp_link_state;  /* Link status */
 51         spinlock_t      lock;
 52 };
 53 
 54 struct ppp_device
 55 {       
 56         struct net_device *dev; /* Network device pointer */
 57         struct sppp sppp;       /* Synchronous PPP */
 58 };
 59 
 60 static inline struct sppp *sppp_of(struct net_device *dev) 
 61 {
 62         struct ppp_device **ppp = dev->priv;
 63         BUG_ON((*ppp)->dev != dev);
 64         return &(*ppp)->sppp;
 65 }
 66 
 67 #define PP_KEEPALIVE    0x01    /* use keepalive protocol */
 68 #define PP_CISCO        0x02    /* use Cisco protocol instead of PPP */
 69 #define PP_TIMO         0x04    /* cp_timeout routine active */
 70 #define PP_DEBUG        0x08
 71 
 72 #define PPP_MTU          1500    /* max. transmit unit */
 73 
 74 #define LCP_STATE_CLOSED        0       /* LCP state: closed (conf-req sent) */
 75 #define LCP_STATE_ACK_RCVD      1       /* LCP state: conf-ack received */
 76 #define LCP_STATE_ACK_SENT      2       /* LCP state: conf-ack sent */
 77 #define LCP_STATE_OPENED        3       /* LCP state: opened */
 78 
 79 #define IPCP_STATE_CLOSED       0       /* IPCP state: closed (conf-req sent) */
 80 #define IPCP_STATE_ACK_RCVD     1       /* IPCP state: conf-ack received */
 81 #define IPCP_STATE_ACK_SENT     2       /* IPCP state: conf-ack sent */
 82 #define IPCP_STATE_OPENED       3       /* IPCP state: opened */
 83 
 84 #define SPPP_LINK_DOWN          0       /* link down - no keepalive */
 85 #define SPPP_LINK_UP            1       /* link is up - keepalive ok */
 86 
 87 void sppp_attach (struct ppp_device *pd);
 88 void sppp_detach (struct net_device *dev);
 89 int sppp_do_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd);
 90 struct sk_buff *sppp_dequeue (struct net_device *dev);
 91 int sppp_isempty (struct net_device *dev);
 92 void sppp_flush (struct net_device *dev);
 93 int sppp_open (struct net_device *dev);
 94 int sppp_reopen (struct net_device *dev);
 95 int sppp_close (struct net_device *dev);
 96 #endif
 97 
 98 #define SPPPIOCCISCO    (SIOCDEVPRIVATE)
 99 #define SPPPIOCPPP      (SIOCDEVPRIVATE+1)
100 #define SPPPIOCDEBUG    (SIOCDEVPRIVATE+2)
101 #define SPPPIOCSFLAGS   (SIOCDEVPRIVATE+3)
102 #define SPPPIOCGFLAGS   (SIOCDEVPRIVATE+4)
103 
104 #endif /* _SYNCPPP_H_ */
105 
  This page was automatically generated by the LXR engine.