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>