File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / mpd / src / phys.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Nov 1 09:56:12 2016 UTC (7 years, 8 months ago) by misho
Branches: mpd, MAIN
CVS tags: v5_8p7, v5_8p1_cross, v5_8p1, v5_8, HEAD
mpd 5.8

    1: 
    2: /*
    3:  * phys.h
    4:  *
    5:  * Written by Archie Cobbs <archie@freebsd.org>
    6:  * Copyright (c) 1995-1999 Whistle Communications, Inc. All rights reserved.
    7:  * See ``COPYRIGHT.whistle''
    8:  */
    9: 
   10: #ifndef _PHYS_H_
   11: #define _PHYS_H_
   12: 
   13: #include "mbuf.h"
   14: #include "msg.h"
   15: 
   16: /*
   17:  * DEFINITIONS
   18:  */
   19: 
   20:   enum {
   21:     PHYS_STATE_DOWN = 0,
   22:     PHYS_STATE_CONNECTING,
   23:     PHYS_STATE_READY,
   24:     PHYS_STATE_UP
   25:   };
   26: 
   27:   /* Descriptor for a given type of physical layer */
   28:   struct phystype {
   29:     const char	*name;				/* Name of device type */
   30:     const char	*descr;				/* Description of device type */
   31:     u_short	mtu, mru;			/* Not incl. addr/ctrl/fcs */
   32:     int		tmpl;				/* This type is template, not an instance */
   33:     int		(*tinit)(void);			/* Initialize device type info */
   34:     void	(*tshutdown)(void);		/* Destroy device type info */
   35:     int		(*init)(Link l);		/* Initialize device info */
   36:     int		(*inst)(Link l, Link lt);	/* Instantiate device */
   37:     void	(*open)(Link l);		/* Initiate connection */
   38:     void	(*close)(Link l);		/* Disconnect */
   39:     void	(*update)(Link l);		/* Update config */
   40:     void	(*shutdown)(Link l);	/* Destroy all nodes */
   41:     void	(*showstat)(Context ctx);	/* Shows type specific stats */
   42:     int		(*originate)(Link l);	/* We originated connection? */
   43:     int		(*issync)(Link l);		/* Link is synchronous */
   44:     int		(*setaccm)(Link l, u_int32_t xmit, u_int32_t recv);	/* Set async accm */
   45:     int		(*setcallingnum)(Link l, void *buf); 
   46: 						/* sets the calling number */
   47:     int		(*setcallednum)(Link l, void *buf); 
   48: 						/* sets the called number */
   49:     int		(*selfname)(Link l, void *buf, size_t buf_len); 
   50: 						/* returns the self-name */
   51:     int		(*peername)(Link l, void *buf, size_t buf_len); 
   52: 						/* returns the peer-name */
   53:     int		(*selfaddr)(Link l, void *buf, size_t buf_len); 
   54: 						/* returns the self-address (IP, MAC, whatever) */
   55:     int		(*peeraddr)(Link l, void *buf, size_t buf_len); 
   56: 						/* returns the peer-address (IP, MAC, whatever) */
   57:     int		(*peerport)(Link l, void *buf, size_t buf_len); 
   58: 						/* returns the peer-port */
   59:     int		(*peermacaddr)(Link l, void *buf, size_t buf_len);
   60: 						/* returns the peer MAC address */
   61:     int		(*peeriface)(Link l, void *buf, size_t buf_len);
   62: 						/* returns the peer interface */
   63:     int		(*callingnum)(Link l, void *buf, size_t buf_len); 
   64: 						/* returns the calling number (IP, MAC, whatever) */
   65:     int		(*callednum)(Link l, void *buf, size_t buf_len); 
   66: 						/* returns the called number (IP, MAC, whatever) */
   67:     u_short	(*getmtu)(Link l, int conf);	/* returns actual MTU */
   68:     u_short	(*getmru)(Link l, int conf);	/* returns actual MRU */
   69:   };
   70:   typedef struct phystype	*PhysType;
   71: 
   72: /*
   73:  * VARIABLES
   74:  */
   75: 
   76:   extern const PhysType	gPhysTypes[];
   77:   extern const char *gPhysStateNames[];
   78: 
   79: /*
   80:  * FUNCTIONS
   81:  */
   82: 
   83:   extern int		PhysOpenCmd(Context ctx);
   84:   extern void		PhysOpen(Link l);
   85:   extern int		PhysCloseCmd(Context ctx);
   86:   extern void		PhysClose(Link l);
   87:   extern void		PhysUp(Link l);
   88:   extern void		PhysDown(Link l, const char *reason, const char *details);
   89:   extern void		PhysIncoming(Link l);
   90:   extern int		PhysGetUpperHook(Link l, char *path, char *hook);
   91: 
   92:   extern int		PhysSetAccm(Link l, uint32_t xmit, u_int32_t recv);
   93:   extern int		PhysSetCallingNum(Link l, char *buf);
   94:   extern int		PhysSetCalledNum(Link l, char *buf);
   95:   extern int		PhysGetSelfName(Link l, char *buf, size_t buf_len);
   96:   extern int		PhysGetPeerName(Link l, char *buf, size_t buf_len);
   97:   extern int		PhysGetSelfAddr(Link l, char *buf, size_t buf_len);
   98:   extern int		PhysGetPeerAddr(Link l, char *buf, size_t buf_len);
   99:   extern int		PhysGetPeerPort(Link l, char *buf, size_t buf_len);
  100:   extern int		PhysGetPeerMacAddr(Link l, char *buf, size_t buf_len);
  101:   extern int		PhysGetPeerIface(Link l, char *buf, size_t buf_len);
  102:   extern int		PhysGetCallingNum(Link l, char *buf, size_t buf_len);
  103:   extern int		PhysGetCalledNum(Link l, char *buf, size_t buf_len);
  104:   extern u_short	PhysGetMtu(Link l, int conf);
  105:   extern u_short	PhysGetMru(Link l, int conf);
  106:   extern int		PhysIsBusy(Link l);
  107:  
  108:   extern int		PhysInit(Link l);
  109:   extern int		PhysInst(Link l, Link lt);
  110:   extern int		PhysGet(Link l);
  111:   extern void		PhysShutdown(Link l);
  112:   extern void		PhysSetDeviceType(Link l, char *typename);
  113:   extern int		PhysGetOriginate(Link l);
  114:   extern int		PhysIsSync(Link l);
  115:   extern int		PhysStat(Context ctx, int ac, char *av[], void *arg);
  116: 
  117: #endif
  118: 

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