Annotation of embedaddon/mpd/src/comp.h, revision 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>