XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Functions
virtio_ring.h File Reference
#include <linux/types.h>
#include <linux/virtio_types.h>
Include dependency graph for virtio_ring.h:

Go to the source code of this file.

Classes

struct  vring_desc
 
struct  vring_avail
 
struct  vring_used_elem
 
struct  vring_used
 
struct  vring
 
struct  vring_packed_desc_event
 
struct  vring_packed_desc
 

Macros

#define VRING_DESC_F_NEXT   1
 
#define VRING_DESC_F_WRITE   2
 
#define VRING_DESC_F_INDIRECT   4
 
#define VRING_PACKED_DESC_F_AVAIL   7
 
#define VRING_PACKED_DESC_F_USED   15
 
#define VRING_USED_F_NO_NOTIFY   1
 
#define VRING_AVAIL_F_NO_INTERRUPT   1
 
#define VRING_PACKED_EVENT_FLAG_ENABLE   0x0
 
#define VRING_PACKED_EVENT_FLAG_DISABLE   0x1
 
#define VRING_PACKED_EVENT_FLAG_DESC   0x2
 
#define VRING_PACKED_EVENT_F_WRAP_CTR   15
 
#define VIRTIO_RING_F_INDIRECT_DESC   28
 
#define VIRTIO_RING_F_EVENT_IDX   29
 
#define VRING_AVAIL_ALIGN_SIZE   2
 
#define VRING_USED_ALIGN_SIZE   4
 
#define VRING_DESC_ALIGN_SIZE   16
 
#define vring_used_event(vr)   ((vr)->avail->ring[(vr)->num])
 
#define vring_avail_event(vr)   (*(__virtio16 *)&(vr)->used->ring[(vr)->num])
 

Functions

struct vring_used_elem __attribute__ ((aligned(VRING_USED_ALIGN_SIZE))) vring_used_elem_t
 
struct vring_desc __attribute__ ((aligned(VRING_DESC_ALIGN_SIZE))) vring_desc_t
 
struct vring_avail __attribute__ ((aligned(VRING_AVAIL_ALIGN_SIZE))) vring_avail_t
 

Macro Definition Documentation

◆ VIRTIO_RING_F_EVENT_IDX

#define VIRTIO_RING_F_EVENT_IDX   29

◆ VIRTIO_RING_F_INDIRECT_DESC

#define VIRTIO_RING_F_INDIRECT_DESC   28

◆ VRING_AVAIL_ALIGN_SIZE

#define VRING_AVAIL_ALIGN_SIZE   2

◆ vring_avail_event

#define vring_avail_event (   vr)    (*(__virtio16 *)&(vr)->used->ring[(vr)->num])

◆ VRING_AVAIL_F_NO_INTERRUPT

#define VRING_AVAIL_F_NO_INTERRUPT   1

◆ VRING_DESC_ALIGN_SIZE

#define VRING_DESC_ALIGN_SIZE   16

◆ VRING_DESC_F_INDIRECT

#define VRING_DESC_F_INDIRECT   4

◆ VRING_DESC_F_NEXT

#define VRING_DESC_F_NEXT   1

◆ VRING_DESC_F_WRITE

#define VRING_DESC_F_WRITE   2

◆ VRING_PACKED_DESC_F_AVAIL

#define VRING_PACKED_DESC_F_AVAIL   7

◆ VRING_PACKED_DESC_F_USED

#define VRING_PACKED_DESC_F_USED   15

◆ VRING_PACKED_EVENT_F_WRAP_CTR

#define VRING_PACKED_EVENT_F_WRAP_CTR   15

◆ VRING_PACKED_EVENT_FLAG_DESC

#define VRING_PACKED_EVENT_FLAG_DESC   0x2

◆ VRING_PACKED_EVENT_FLAG_DISABLE

#define VRING_PACKED_EVENT_FLAG_DISABLE   0x1

◆ VRING_PACKED_EVENT_FLAG_ENABLE

#define VRING_PACKED_EVENT_FLAG_ENABLE   0x0

◆ VRING_USED_ALIGN_SIZE

#define VRING_USED_ALIGN_SIZE   4

◆ vring_used_event

#define vring_used_event (   vr)    ((vr)->avail->ring[(vr)->num])

◆ VRING_USED_F_NO_NOTIFY

#define VRING_USED_F_NO_NOTIFY   1

Function Documentation

◆ __attribute__() [1/3]

struct vring_avail __attribute__ ( (aligned(VRING_AVAIL_ALIGN_SIZE))  )

◆ __attribute__() [2/3]

struct vring_desc __attribute__ ( (aligned(VRING_DESC_ALIGN_SIZE))  )

◆ __attribute__() [3/3]

struct vring_used_elem __attribute__ ( (aligned(VRING_USED_ALIGN_SIZE))  )