Lines Matching refs:blob
213 ulp_blob_init(struct ulp_blob *blob, in ulp_blob_init() argument
218 if (!blob || bitlen > (8 * sizeof(blob->data))) { in ulp_blob_init()
222 blob->bitlen = bitlen; in ulp_blob_init()
223 blob->byte_order = order; in ulp_blob_init()
224 blob->write_idx = 0; in ulp_blob_init()
225 memset(blob->data, 0, sizeof(blob->data)); in ulp_blob_init()
246 ulp_blob_push(struct ulp_blob *blob, in ulp_blob_push() argument
253 if (!blob || datalen > (uint32_t)(blob->bitlen - blob->write_idx)) { in ulp_blob_push()
258 if (blob->byte_order == BNXT_ULP_BYTE_ORDER_BE) in ulp_blob_push()
259 rc = ulp_bs_push_msb(blob->data, in ulp_blob_push()
260 blob->write_idx, in ulp_blob_push()
264 rc = ulp_bs_push_lsb(blob->data, in ulp_blob_push()
265 blob->write_idx, in ulp_blob_push()
272 blob->write_idx += datalen; in ulp_blob_push()
292 ulp_blob_insert(struct ulp_blob *blob, uint32_t offset, in ulp_blob_insert() argument
300 if (!blob || datalen > (uint32_t)(blob->bitlen - blob->write_idx) || in ulp_blob_insert()
301 offset > blob->write_idx) { in ulp_blob_insert()
306 mov_len = blob->write_idx - offset; in ulp_blob_insert()
315 memcpy(local_data, &blob->data[ULP_BITS_2_BYTE_NR(offset)], in ulp_blob_insert()
317 blob->write_idx = offset; in ulp_blob_insert()
318 if (blob->byte_order == BNXT_ULP_BYTE_ORDER_BE) in ulp_blob_insert()
319 rc = ulp_bs_push_msb(blob->data, in ulp_blob_insert()
320 blob->write_idx, in ulp_blob_insert()
324 rc = ulp_bs_push_lsb(blob->data, in ulp_blob_insert()
325 blob->write_idx, in ulp_blob_insert()
333 memcpy(&blob->data[ULP_BITS_2_BYTE_NR(offset + datalen)], local_data, in ulp_blob_insert()
335 blob->write_idx += (mov_len + datalen); in ulp_blob_insert()
353 ulp_blob_push_64(struct ulp_blob *blob, in ulp_blob_push_64() argument
362 if (!blob || !data || in ulp_blob_push_64()
363 datalen > (uint32_t)(blob->bitlen - blob->write_idx)) { in ulp_blob_push_64()
368 rc = ulp_blob_push(blob, &val[8 - size], datalen); in ulp_blob_push_64()
389 ulp_blob_push_32(struct ulp_blob *blob, in ulp_blob_push_32() argument
402 rc = ulp_blob_push(blob, &val[sizeof(uint32_t) - size], datalen); in ulp_blob_push_32()
423 ulp_blob_push_encap(struct ulp_blob *blob, in ulp_blob_push_encap() argument
431 if (!blob || !data || in ulp_blob_push_encap()
432 datalen > (uint32_t)(blob->bitlen - blob->write_idx)) { in ulp_blob_push_encap()
438 (blob->write_idx % ULP_BYTE_2_BITS(sizeof(uint64_t))); in ulp_blob_push_encap()
451 if (!ulp_blob_push(blob, val, size)) { in ulp_blob_push_encap()
472 ulp_blob_pad_push(struct ulp_blob *blob, in ulp_blob_pad_push() argument
475 if (datalen > (uint32_t)(blob->bitlen - blob->write_idx)) { in ulp_blob_pad_push()
480 blob->write_idx += datalen; in ulp_blob_pad_push()
542 ulp_blob_pull(struct ulp_blob *blob, uint8_t *data, uint32_t data_size, in ulp_blob_pull() argument
546 if (!blob || (offset + len) > blob->bitlen || in ulp_blob_pull()
552 if (blob->byte_order == BNXT_ULP_BYTE_ORDER_BE) { in ulp_blob_pull()
556 ulp_bs_pull_lsb(blob->data, data, data_size, offset, len); in ulp_blob_pull()
571 ulp_blob_data_get(struct ulp_blob *blob, in ulp_blob_data_get() argument
575 if (!blob) { in ulp_blob_data_get()
579 *datalen = blob->write_idx; in ulp_blob_data_get()
580 return blob->data; in ulp_blob_data_get()
592 ulp_blob_encap_swap_idx_set(struct ulp_blob *blob) in ulp_blob_encap_swap_idx_set() argument
595 if (!blob) { in ulp_blob_encap_swap_idx_set()
599 blob->encap_swap_idx = blob->write_idx; in ulp_blob_encap_swap_idx_set()
610 ulp_blob_perform_encap_swap(struct ulp_blob *blob) in ulp_blob_perform_encap_swap() argument
616 if (!blob) { in ulp_blob_perform_encap_swap()
620 idx = ULP_BITS_2_BYTE_NR(blob->encap_swap_idx); in ulp_blob_perform_encap_swap()
621 end_idx = ULP_BITS_2_BYTE(blob->write_idx); in ulp_blob_perform_encap_swap()
624 blob->write_idx += ULP_BYTE_2_BITS(roundoff - end_idx); in ulp_blob_perform_encap_swap()
629 temp_val_1 = blob->data[idx + i]; in ulp_blob_perform_encap_swap()
630 temp_val_2 = blob->data[idx + i + 1]; in ulp_blob_perform_encap_swap()
631 blob->data[idx + i] = blob->data[idx + 6 - i]; in ulp_blob_perform_encap_swap()
632 blob->data[idx + i + 1] = blob->data[idx + 7 - i]; in ulp_blob_perform_encap_swap()
633 blob->data[idx + 7 - i] = temp_val_2; in ulp_blob_perform_encap_swap()
634 blob->data[idx + 6 - i] = temp_val_1; in ulp_blob_perform_encap_swap()
650 ulp_blob_perform_byte_reverse(struct ulp_blob *blob) in ulp_blob_perform_byte_reverse() argument
656 if (!blob) { in ulp_blob_perform_byte_reverse()
661 num = ULP_BITS_2_BYTE_NR(blob->write_idx); in ulp_blob_perform_byte_reverse()
663 xchar = blob->data[idx]; in ulp_blob_perform_byte_reverse()
664 blob->data[idx] = blob->data[(num - 1) - idx]; in ulp_blob_perform_byte_reverse()
665 blob->data[(num - 1) - idx] = xchar; in ulp_blob_perform_byte_reverse()
679 ulp_blob_perform_64B_word_swap(struct ulp_blob *blob) in ulp_blob_perform_64B_word_swap() argument
686 if (!blob) { in ulp_blob_perform_64B_word_swap()
690 num = ULP_BITS_2_BYTE(blob->write_idx); in ulp_blob_perform_64B_word_swap()
693 xchar = blob->data[i + j]; in ulp_blob_perform_64B_word_swap()
694 blob->data[i + j] = blob->data[i + j + word_size]; in ulp_blob_perform_64B_word_swap()
695 blob->data[i + j + word_size] = xchar; in ulp_blob_perform_64B_word_swap()
710 ulp_blob_perform_64B_byte_swap(struct ulp_blob *blob) in ulp_blob_perform_64B_byte_swap() argument
717 if (!blob) { in ulp_blob_perform_64B_byte_swap()
721 num = ULP_BITS_2_BYTE(blob->write_idx); in ulp_blob_perform_64B_byte_swap()
724 xchar = blob->data[i + j]; in ulp_blob_perform_64B_byte_swap()
725 blob->data[i + j] = blob->data[i + offset - j]; in ulp_blob_perform_64B_byte_swap()
726 blob->data[i + offset - j] = xchar; in ulp_blob_perform_64B_byte_swap()