CAM API Documentation
 All Data Structures Files Functions Typedefs Enumerations Enumerator Groups Pages
cdstcam.h File Reference

Detailed Description

Public API for the Cached DRAM Semi-Ternary CAM (CDSTCAM).

Refer to XN-200937-SW for a high level description of this driver.

#include <stdint.h>
#include "cam.h"

Data Structures

union  cdstcam_stats
 

Typedefs

typedef uint16_t cdstcam_mask_id_t
 

Enumerations

enum  cdstcam_registers {
  CDSTCAM_REG_MISS_HANDLER,
  CDSTCAM_REG_CACHE
}
 

Functions

int cdstcam_create (const cam_arg_t *cam_arg, struct cdstcam **out_cdstcam)
 
int cdstcam_mask_alloc (struct cdstcam *cdstcam, const uint8_t mask[], cdstcam_mask_id_t *id)
 
int cdstcam_mask_free (struct cdstcam *cdstcam, cdstcam_mask_id_t id)
 
int cdstcam_insert (struct cdstcam *cdstcam, const uint8_t key[], cdstcam_mask_id_t mask, uint32_t priority, const uint8_t response[])
 
int cdstcam_update (struct cdstcam *cdstcam, const uint8_t key[], cdstcam_mask_id_t mask, const uint8_t response[])
 
int cdstcam_iterate (struct cdstcam *cdstcam, const uint8_t key[], const uint8_t key_mask[], const uint8_t response[], const uint8_t response_mask[], cdstcam_mask_id_t mask, uint32_t *pos, uint8_t out_key[], uint8_t out_response[], cdstcam_mask_id_t *out_mask, uint32_t *out_priority)
 
int cdstcam_delete (struct cdstcam *cdstcam, const uint8_t key[], cdstcam_mask_id_t mask)
 
int cdstcam_lookup (struct cdstcam *cdstcam, const uint8_t key[], uint8_t response[])
 
int cdstcam_read_and_clear_ecc_counters (struct cdstcam *cdstcam, uint32_t *corrected_single_bit_errors, uint32_t *detected_double_bit_errors)
 
int cdstcam_read_and_clear_ecc_addresses (struct cdstcam *cdstcam, uint32_t *failing_address_single_bit_error, uint32_t *failing_address_double_bit_error)
 
int cdstcam_set_ecc_test (struct cdstcam *cdstcam, bool inject_single_bit_errors, bool inject_double_bit_errors)
 
int cdstcam_get_stats (const struct cdstcam *cdstcam, uint64_t stats_group, union cdstcam_stats *stats)
 
void cdstcam_destroy (struct cdstcam *cdstcam)
 
void cdstcam_poll (struct cdstcam *cdstcam)