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

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