#ifndef __CONTEXT_H
#define __CONTEXT_H
/*
functions for managing Chip per-connection context
*/
#include "lm5710.h"
/* returns a pionter to a connections chip context*/
/* same as above but returns phys address in 64 bit pointer */
/* context pool initializer and release functions */
typedef struct _lm_4tuple_t {
} lm_4tuple_t;
/* allocate a free context by type
returns CID or -1 if none are avaliable
takes the list spinlock */
/* returns the size of a context */
/**
* sets the CDU validation data to be valid for a given cid
*
* @param pdev - the physical device handle
* @param cid - the context of this cid will be initialized with the cdu validataion data
* @param invalidate - the cdu-validation data can be set, and it can be invalidated... this parameters
* determines which it is.
* @return lm_status_t
*/
/* free a context
takes the list spinlock */
/* inserts 4 tuple to SRC mirror hash
to be called after lm_allocate_cid and before init offload ramrod
returns failure if hash is full
takes the CID lock */
lm_status_t lm_searcher_mirror_hash_insert(struct _lm_device_t *pdev, u32_t cid, lm_4tuple_t *tuple);
/* removes 4 tuple to SRC mirror hash
to be called after cfc del ramrod completion and before lm_recycle_cid
takes the CID lock */
/* lookup the protocol cookie for a given CID
does not take a lock
will assert if the CID is not allocated */
/* lookup the protocol cid_resc for a given CID
does not take a lock
will DbgBreakIf( if the CID is not allocated */
/* Find the protocol that 'cid' belongs to. */
/* lookup the slow path request manager from within
the protocol cid_resc for a given CID
does not take a lock
will DbgBreakIf( if the CID is not allocated */
typedef enum {
);
);
#endif /* __CONTEXT_H */