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>