Annotation of embedaddon/mpd/src/util.h, revision 1.1

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

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