File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / mpd / src / util.h
Revision 1.1.1.3 (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:  * util.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 _UTIL_H_
   11: #define _UTIL_H_
   12: 
   13: #include "ip.h"
   14: #include <net/ethernet.h>
   15: #include <osreldate.h>
   16:   /*-
   17:    * The following macro is used to update an
   18:    * internet checksum.  "acc" is a 32-bit
   19:    * accumulation of all the changes to the
   20:    * checksum (adding in old 16-bit words and
   21:    * subtracting out new words), and "cksum"
   22:    * is the checksum value to be updated.
   23:    */
   24:   #define ADJUST_CHECKSUM(acc, cksum) { \
   25:     acc += cksum; \
   26:     if (acc < 0) { \
   27:       acc = -acc; \
   28:       acc = (acc >> 16) + (acc & 0xffff); \
   29:       acc += acc >> 16; \
   30:       cksum = (u_short) ~acc; \
   31:     } else { \
   32:       acc = (acc >> 16) + (acc & 0xffff); \
   33:       acc += acc >> 16; \
   34:       cksum = (u_short) acc; \
   35:     } \
   36:   }
   37: 
   38:   #define MAX_U_INT32 0xffffffffU
   39: 
   40:   #define IFCONF_BUFFSIZE	16384
   41:   #define IFCONF_BUFFMAXSIZE	1048576
   42: 
   43:   struct configfile {
   44:     char		*label;
   45:     off_t		seek;
   46:     int			linenum;
   47:     struct configfile	*next;
   48:   };
   49: 
   50:   struct configfiles {
   51:     char		*filename;
   52:     struct configfile	*sections;
   53:     struct configfiles	*next;
   54:   };
   55: /*
   56:  * FUNCTIONS
   57:  */
   58: 
   59:   extern FILE		*OpenConfFile(const char *name, struct configfile **cf);
   60:   extern int		SeekToLabel(FILE *fp, const char *label, int *lineNum, struct configfile *cf);
   61: 
   62:   extern char		*ReadFullLine(FILE *fp, int *lineNum, char *result, int resultlen);
   63:   extern int		ReadFile(const char *filename, const char *target,
   64: 				int (*func)(Context ctx, int ac, char *av[], const char *file, int line), Context ctx);
   65:   extern int		ParseLine(char *line, char *vec[], int max_args, int copy);
   66:   extern void		FreeArgs(int ac, char *av[]);
   67: 
   68:   extern int		TcpGetListenPort(struct u_addr *addr, in_port_t port, int block);
   69:   extern int		TcpAcceptConnection(int sock, struct sockaddr_storage *addr, int block);
   70:   extern int		GetInetSocket(int type, struct u_addr *addr, in_port_t port, int block, char *ebuf, size_t len);
   71: 
   72: #ifdef PHYSTYPE_MODEM
   73:   extern int		OpenSerialDevice(const char *label, const char *path, int baudrate);
   74:   extern int		ExclusiveOpenDevice(const char *label, const char *path);
   75:   extern void		ExclusiveCloseDevice(const char *label, int fd, const char *path);
   76: #endif
   77: 
   78:   extern int		PIDCheck(const char *lockfile, int killem);
   79: 
   80:   extern void		LengthenArray(void *arrayp, size_t esize,
   81: 				int *alenp, const char *type);
   82: 
   83:   extern int		ExecCmd(int log, const char *label, const char *fmt, ...)
   84: 				__printflike(3, 4);
   85:   extern int		ExecCmdNosh(int log, const char *label, const char *fmt, ...)
   86: 				__printflike(3, 4);
   87:   extern void		ShowMesg(int log, const char *pref, const char *buf, int len);
   88:   extern char		*Bin2Hex(const unsigned char *bin, size_t len);
   89:   extern u_char		*Hex2Bin(char *hexstr);
   90: #ifndef USE_NG_PRED1
   91:   extern u_short	Crc16(u_short fcs, u_char *cp, int len);
   92: #endif
   93:   extern u_long		GenerateMagic(void);
   94: 
   95:   extern int		GetAnyIpAddress(struct u_addr *ipaddr, const char *ifname);
   96:   extern int		GetEther(struct u_addr *addr,
   97: 			    struct sockaddr_dl *hwaddr);
   98:   extern int		GetPeerEther(struct u_addr *addr, struct sockaddr_dl *hwaddr);
   99:   extern void     	ppp_util_ascify(char *buf, size_t max,
  100: 			    const char *bytes, size_t len);
  101: #ifndef	HAVE_NTOA_R
  102:   extern char		*ether_ntoa_r(const struct ether_addr *n, char *a);
  103: #endif
  104: 
  105: #endif

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