On 22.05.2017 09:54, Shally Verma wrote:
> Signed-off-by: Shally Verma <sve...@cavium.com>
> Signed-off-by: Mahipal Challa <mcha...@cavium.com>

> +/**
> + * Comp API operation return codes
> + *
> + */
> +typedef enum {
> +     /** Operation completed successfully*/
> +     ODP_COMP_ERR_NONE,
> +     /** Invalid user data pointers*/
> +     ODP_COMP_ERR_DATA_PTR,
> +     /** Invalid input data size*/
> +     ODP_COMP_ERR_DATA_SIZE,
> +     /**  Compression and/or hash Algo failure*/
> +     ODP_COMP_ERR_ALGO_FAIL,
> +     /** Operation paused due to insufficient output buffer.
> +     *
> +     * This is not an error condition. On seeing this situation,
> +     * Implementation should maintain context of in-progress operation and
> +     * application should call packet processing API again with valid
> +     * output buffer but no other altercation to operation params

Probably you've ment alteration here?

> +     * (odp_comp_op_param_t).
> +     *
> +     * if using async mode, application should either make sure to
> +     * provide sufficient output buffer size OR maintain relevant
> +     * context (or ordering) information with respect to each input packet
> +     * enqueued for processing
> +     *
> +     */
> +     ODP_COMP_ERR_OUT_OF_SPACE,
> +     /** Error if operation has been requested in an invalid state */
> +     ODP_COMP_ERR_INV_STATE,
> +     /** Error if API call does not input params or mode. */
> +     ODP_COMP_ERR_NOT_SUPPORTED
> +} odp_comp_err_t;

[...]

> +typedef struct odp_comp_capability_t {
> +     /** Maximum number of  sessions*/
> +     uint32_t max_sessions;
> +
> +     /** Supported compression algorithms*/
> +     odp_comp_algos_t comps;
> +
> +     /** Supported hash algorithms*/
> +     odp_comp_hash_algos_t   hash;
> +
> +     /** Support level for synchrnous operation mode (ODP_COMP_SYNC)
> +     *   User should set odp_comp_session_param_t:mode based on
> +     *   support level as indicated by this param.
> +     *   true - mode supported,
> +     *   false - mode not supported

True/false part is no longer relevant

> +     */
> +     odp_support_t  sync;
> +
> +     /** Support level for asynchrnous operation mode (ODP_COMP_ASYNC)
> +     *   User should set odp_comp_session_param_t:mode param based on
> +     *   support level as indicated by this param.
> +     *   true - mode supported,
> +     *   false - mode not supported

Same

> +     *
> +     */
> +     odp_support_t async;
> +} odp_comp_capability_t;
> +
> +/**
> + * Hash algorithm capabilities
> + *
> + */
> +typedef struct odp_comp_hash_alg_capability_t {
> +     /** Digest length in bytes */
> +     uint32_t digest_len;
> +} odp_comp_hash_alg_capability_t;
> +
> +/**
> + * Compression algorithm capabilities
> + * structure for each algorithm.
> + *
> + */
> +typedef struct odp_comp_alg_capability_t {
> +     /** Boolean indicating alg support dictionary load
> +     *
> +     * true: yes
> +     * false : no
> +     *
> +     * dictionary , if supported, consists of a pointer to character
> +     * array
> +     */
> +     odp_bool_t support_dict;

Can you switch to odp_support_t here?

> +/**
> + * Comp API algorithm specific parameters
> + *
> + */
> +typedef struct odp_comp_alg_param_t {
> +     struct comp_alg_def_param {
> +             /** compression level where
> +                 ODP_COMP_LEVEL_MIN <= level <= ODP_COMP_LEVEL_MAX
> +             */
> +             odp_comp_level_t level;
> +             /** huffman code to use */
> +             odp_comp_huffman_code_t comp_code;
> +     } deflate;
> +     struct comp_alg_zlib_param {
> +                     /** deflate algo params */
> +                     struct comp_alg_def_param def;
> +     } zlib;
> +} odp_comp_alg_param_t;

Would it be more logical to change this to union?

> +
> +/**
> + * Comp API data range specifier
> + *
> + */
> +typedef union odp_comp_data_t {
> +     struct odp_comp_pkt {
> +             /** Offset from beginning of input */
> +             odp_packet_t packet;
> +
> +             /** Length of data to operate on */
> +             odp_packet_data_range_t data_range;
> +     } packet;
> +} odp_comp_data_t;

The plan is probably to support buf+len here?
I have to think about this.

-- 
With best wishes
Dmitry

Reply via email to