/* Macros to read the computed fields */
#define ULP_COMP_FLD_IDX_RD(params, idx) \
- rte_be_to_cpu_32((params)->comp_fld[(idx)])
+ rte_be_to_cpu_64((params)->comp_fld[(idx)])
#define ULP_COMP_FLD_IDX_WR(params, idx, val) \
- ((params)->comp_fld[(idx)] = rte_cpu_to_be_32((val)))
+ ((params)->comp_fld[(idx)] = rte_cpu_to_be_64((uint64_t)(val)))
/*
* Making the blob statically sized to 128 bytes for now.
* The blob must be initialized with ulp_blob_init prior to using.
* The offset of the data is updated after each push of data.
* NULL returned on error, pointer pushed value otherwise.
*/
-uint32_t
+int32_t
ulp_blob_push_encap(struct ulp_blob *blob,
uint8_t *data,
uint32_t datalen);
ulp_blob_append(struct ulp_blob *dst, struct ulp_blob *src,
uint16_t src_offset, uint16_t src_len);
+/*
+ * Perform the blob buffer copy.
+ * This api makes the src blob merged to the dst blob.
+ *
+ * dst [in] The destination blob, the blob to be merged.
+ * src [in] The src blob.
+ *
+ * returns 0 on success.
+ */
+int32_t
+ulp_blob_buffer_copy(struct ulp_blob *dst, struct ulp_blob *src);
+
/*
* Read data from the operand
*
uint8_t *val,
uint16_t bitlen);
-/*
- * copy the buffer in the encap format which is 2 bytes.
- * The MSB of the src is placed at the LSB of dst.
- *
- * dst [out] The destination buffer
- * src [in] The source buffer dst
- * size[in] size of the buffer.
- * align[in] The alignment is either 8 or 16.
- */
-void
-ulp_encap_buffer_copy(uint8_t *dst,
- const uint8_t *src,
- uint16_t size,
- uint16_t align);
-
/*
* Check the buffer is empty
*
uint32_t ulp_bitmap_is_ones(uint8_t *bitmap, int32_t size);
/* Function to check if bitmap is not zero. Return 1 on success */
-uint32_t ulp_bitmap_notzero(uint8_t *bitmap, int32_t size);
+uint32_t ulp_bitmap_notzero(const uint8_t *bitmap, int32_t size);
/* returns 0 if input is power of 2 */
int32_t ulp_util_is_power_of_2(uint64_t x);