Annotation of embedaddon/mpd/src/comp.h, revision 1.1.1.1
1.1 misho 1:
2: /*
3: * comp.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 _COMP_H_
11: #define _COMP_H_
12:
13: /*
14: * DEFINITIONS
15: */
16:
17: #define COMP_DIR_XMIT 1
18: #define COMP_DIR_RECV 2
19:
20: /* Compression type descriptor */
21: struct ccpstate;
22:
23: struct comptype {
24: const char *name;
25: u_char type;
26: u_char mode;
27: /*
28: * This function should initialize internal state according
29: * to the direction parameter (recv or xmit or both).
30: */
31: int (*Init)(Bund b, int dir);
32: /*
33: * Reset any type-specific configuration options to their defaults.
34: */
35: int (*Configure)(Bund b);
36: /*
37: * Do the opposite of Configure
38: */
39: void (*UnConfigure)(Bund b);
40: /*
41: * This returns a string describing the configuration (optional).
42: */
43: char *(*Describe)(Bund b, int dir, char *buf, size_t len);
44: /*
45: * Given that "size" is our MTU, return the maximum length frame
46: * we can compress without the result being longer than "size".
47: */
48: int (*SubtractBloat)(Bund b, int size);
49: /*
50: * Do the opposite of Init: ie., free memory, etc.
51: */
52: void (*Cleanup)(Bund b, int dir);
53: /*
54: * This should add the type-specific stuff for a config-request
55: * to the building config-request packet
56: */
57: u_char *(*BuildConfigReq)(Bund b, u_char *cp, int *ok);
58: /*
59: * This should decode type-specific config request stuff.
60: */
61: void (*DecodeConfig)(Fsm fp, FsmOption opt, int mode);
62: /*
63: * This should return an mbuf containing type-specific reset-request
64: * contents if any, or else NULL.
65: */
66: Mbuf (*SendResetReq)(Bund b);
67: /*
68: * Receive type-specific reset-request contents (possibly NULL).
69: * Should return contents of reset-ack (NULL for empty). If no
70: * reset-ack is desired, set *noAck to non-zero.
71: */
72: Mbuf (*RecvResetReq)(Bund b, int id, Mbuf bp, int *noAck);
73: /*
74: * Receive type-specific reset-ack contents (possibly NULL).
75: */
76: void (*RecvResetAck)(Bund b, int id, Mbuf bp);
77: /*
78: * Return true if compression was successfully negotiated in
79: * the indicated direction.
80: */
81: int (*Negotiated)(Bund b, int dir);
82: /*
83: * Prints current compressor status
84: */
85: int (*Stat)(Context ctx, int dir);
86: /*
87: * For compression methods which is not implemented in kernel
88: * here is support for user level functions.
89: */
90: Mbuf (*Compress)(Bund b, Mbuf plain);
91: Mbuf (*Decompress)(Bund b, Mbuf comp);
92: };
93: typedef const struct comptype *CompType;
94:
95: #endif
96:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>