| 764 | } |
| 765 | |
| 766 | static inline void |
| 767 | write_unaligned_bits(uint8_t *ptr, int len, int offset, uint32_t val) |
| 768 | { |
| 769 | uint8_t tmp; |
| 770 | unsigned int part_len; |
| 771 | |
| 772 | len = RTE_MAX(len, 0); |
| 773 | len = RTE_MIN(len, (int)(sizeof(uint32_t) * CHAR_BIT)); |
| 774 | |
| 775 | while (len > 0) { |
| 776 | part_len = RTE_MIN(CHAR_BIT, len); |
| 777 | tmp = (uint8_t)val & ((1 << part_len) - 1); |
| 778 | write_unaligned_byte(ptr, part_len, |
| 779 | offset + len - part_len, tmp); |
| 780 | len -= CHAR_BIT; |
| 781 | val >>= CHAR_BIT; |
| 782 | } |
| 783 | } |
| 784 | |
| 785 | int |
| 786 | rte_thash_adjust_tuple(struct rte_thash_ctx *ctx, |
no test coverage detected