blob: cb969ea08a6345c4d2c9b13b6b721c80a8c0fd25 [file] [log] [blame]
/* c_adapter_pcl.h
*
* Default PCL Adapter configuration.
*/
/*****************************************************************************
* Copyright (c) 2011-2020 by Rambus, Inc. and/or its subsidiaries.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*****************************************************************************/
#ifndef INCLUDE_GUARD_C_ADAPTER_PCL_H
#define INCLUDE_GUARD_C_ADAPTER_PCL_H
/*----------------------------------------------------------------------------
* This module uses (requires) the following interface(s):
*/
// Top-level Adapter configuration
#include "cs_adapter.h"
#ifndef ADAPTER_PCL_DEVICE_NAME
#define ADAPTER_PCL_DEVICE_NAME "PCL_Device"
#endif
#ifndef ADAPTER_PCL_BANK_FLOWTABLE
#define ADAPTER_PCL_BANK_FLOWTABLE 0
#endif
#ifndef ADAPTER_PCL_BANK_TRANSFORM
#define ADAPTER_PCL_BANK_TRANSFORM 0
#endif
#ifndef ADAPTER_PCL_BANK_FLOW
#define ADAPTER_PCL_BANK_FLOW 0
#endif
//#define ADAPTER_PCL_ENABLE
// This parameters enables use of the DMA banks
//#define ADAPTER_PCL_DMARESOURCE_BANKS_ENABLE
#ifndef ADAPTER_PCL_ENABLE_FLUE_CACHE
#define ADAPTER_PCL_ENABLE_FLUE_CACHE false
#endif
#ifndef ADAPTER_CS_MAX_NOF_FLOW_HASH_TABLES_TO_USE
#define ADAPTER_CS_MAX_NOF_FLOW_HASH_TABLES_TO_USE 1
#endif
#ifndef ADAPTER_PCL_FLOW_HASH_ENTRIES_COUNT
#define ADAPTER_PCL_FLOW_HASH_ENTRIES_COUNT 1024
#endif
#if defined(ADAPTER_PCL_DMARESOURCE_BANKS_ENABLE) && \
!defined(ADAPTER_PCL_FLOW_RECORD_COUNT)
#define ADAPTER_PCL_FLOW_RECORD_COUNT ADAPTER_PCL_FLOW_HASH_ENTRIES_COUNT
#endif
#if defined(ADAPTER_PCL_DMARESOURCE_BANKS_ENABLE) && \
!defined(ADAPTER_PCL_FLOW_RECORD_BYTE_COUNT)
#error "ADAPTER_PCL_FLOW_RECORD_BYTE_COUNT is not defined"
#endif
#if defined(ADAPTER_PCL_DMARESOURCE_BANKS_ENABLE) && \
!defined(ADAPTER_TRANSFORM_RECORD_COUNT)
#error "ADAPTER_TRANSFORM_RECORD_COUNT is not defined"
#endif
#if defined(ADAPTER_PCL_DMARESOURCE_BANKS_ENABLE) && \
!defined(ADAPTER_TRANSFORM_RECORD_BYTE_COUNT)
#error "ADAPTER_TRANSFORM_RECORD_BYTE_COUNT is not defined"
#endif
// Number of tries to wait until a flow can be ssafely removed.
#ifndef ADAPTER_PCL_FLOW_REMOVE_MAX_TRIES
#define ADAPTER_PCL_FLOW_REMOVE_MAX_TRIES 100
#endif
// Delay between tries to check that a flow can be safely removed.
// Delay is in milliseconds. If it is specified as zero, no delay is inserted.
#ifndef ADAPTER_PCL_FLOW_REMOVE_DELAY
#define ADAPTER_PCL_FLOW_REMOVE_DELAY 10
#endif
// Number of overflow buckets associated with hash table
// (defaults here to: number of hash table entries / 16)
#ifndef ADAPTER_PCL_FLOW_HASH_OVERFLOW_COUNT
#define ADAPTER_PCL_FLOW_HASH_OVERFLOW_COUNT \
(ADAPTER_PCL_FLOW_HASH_ENTRIES_COUNT / 16)
#endif
// Default FLUE device name
#ifndef ADAPTER_PCL_FLUE_DEFAULT_DEVICE_NAME
#define ADAPTER_PCL_FLUE_DEFAULT_DEVICE_NAME "EIP207_FLUE0"
#endif
// Maximum number of FLUE device instances to be supported
#ifndef ADAPTER_PCL_MAX_FLUE_DEVICES
#define ADAPTER_PCL_MAX_FLUE_DEVICES 1
#endif
// Device numbering: max number of final digits in device instance name
// eg. value of 1 allows 0-9, value of 2 allows 0-99
#ifndef ADAPTER_PCL_MAX_DEVICE_DIGITS
#define ADAPTER_PCL_MAX_DEVICE_DIGITS 1
#endif
#ifndef ADAPTER_PCL_LIST_ID_OFFSET
#error "ADAPTER_PCL_LIST_ID_OFFSET is not defined"
#endif
// Default DMA buffer allocation alignment is 4 bytes
#ifndef ADAPTER_PCL_DMA_ALIGNMENT_BYTE_COUNT
#define ADAPTER_PCL_DMA_ALIGNMENT_BYTE_COUNT 4
#endif
// EIP-207 flow control device ID, keep undefined if RPM for EIP-207 not used
//#define ADAPTER_PCL_RPM_EIP207_DEVICE_ID 0
#endif /* Include Guard */
/* end of file c_adapter_pcl.h */