| 742 | } |
| 743 | |
| 744 | int vnic_dev_spec(struct vnic_dev *vdev, unsigned int offset, size_t size, |
| 745 | void *value) |
| 746 | { |
| 747 | uint64_t a0, a1; |
| 748 | int wait = 1000; |
| 749 | int err; |
| 750 | |
| 751 | a0 = offset; |
| 752 | a1 = size; |
| 753 | |
| 754 | err = vnic_dev_cmd(vdev, CMD_DEV_SPEC, &a0, &a1, wait); |
| 755 | |
| 756 | switch (size) { |
| 757 | case 1: |
| 758 | *(uint8_t *)value = (uint8_t)a0; |
| 759 | break; |
| 760 | case 2: |
| 761 | *(uint16_t *)value = (uint16_t)a0; |
| 762 | break; |
| 763 | case 4: |
| 764 | *(uint32_t *)value = (uint32_t)a0; |
| 765 | break; |
| 766 | case 8: |
| 767 | *(uint64_t *)value = a0; |
| 768 | break; |
| 769 | default: |
| 770 | BUG(); |
| 771 | break; |
| 772 | } |
| 773 | |
| 774 | return err; |
| 775 | } |
| 776 | |
| 777 | int vnic_dev_stats_clear(struct vnic_dev *vdev) |
| 778 | { |
no test coverage detected