Skip to content

Commit

Permalink
virtio.h: add new api virtio_has_feature()
Browse files Browse the repository at this point in the history
virtio_has_feature() can be easily used to heck if the virtio device
support a specific feature.

And assgin feature to vdev->feature for virtio device role when get
features, so the virtio device side can use virtio_has_featrue() to
check weather the virtio device support a feature.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
  • Loading branch information
CV-Bowen committed Oct 28, 2024
1 parent 9a215d0 commit d4c0152
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions lib/include/openamp/virtio.h
Original file line number Diff line number Diff line change
Expand Up @@ -437,6 +437,9 @@ static inline int virtio_get_features(struct virtio_device *vdev,
return -ENXIO;

*features = vdev->func->get_features(vdev);
if (VIRTIO_ROLE_IS_DEVICE(vdev))
vdev->features = *features;

return 0;
}

Expand Down Expand Up @@ -505,6 +508,23 @@ static inline int virtio_reset_device(struct virtio_device *vdev)
return 0;
}

/**
* @brief Check if the virtio device support a specific feature.
*
* @param vdev Pointer to device structure.
* @param feature_bit Feature bit to check.
*
* @return true if the feature is supported, otherwise false.
*/
static inline bool virtio_has_feature(struct virtio_device *vdev,
unsigned int feature_bit)
{
if (!vdev)
return false;

return (vdev->features & (1UL << feature_bit)) != 0;
}

#if defined __cplusplus
}
#endif
Expand Down

0 comments on commit d4c0152

Please sign in to comment.