Rusty Russell 0a8a69dd77 Virtio helper routines for a descriptor ringbuffer implementation
These helper routines supply most of the virtqueue_ops for hypervisors
which want to use a ring for virtio.  Unlike the previous lguest
implementation:

1) The rings are variable sized (2^n-1 elements).
2) They have an unfortunate limit of 65535 bytes per sg element.
3) The page numbers are always 64 bit (PAE anyone?)
4) They no longer place used[] on a separate page, just a separate
   cacheline.
5) We do a modulo on a variable.  We could be tricky if we cared.
6) Interrupts and notifies are suppressed using flags within the rings.

Users need only get the ring pages and provide a notify hook (KVM
wants the guest to allocate the rings, lguest does it sanely).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Dor Laor <dor.laor@qumranet.com>
2007-10-23 15:49:55 +10:00
..
2007-10-09 19:59:16 -07:00
2007-10-17 22:51:13 +02:00
2007-10-17 08:43:03 -07:00
2007-10-10 16:53:11 -07:00
2007-10-15 17:56:36 -07:00
2007-09-11 04:22:16 -07:00
2007-10-18 14:37:20 -07:00
2007-10-10 16:51:59 -07:00
2007-10-21 02:37:45 -04:00
2007-10-17 08:42:45 -07:00
2007-10-17 08:43:07 -07:00
2007-10-18 14:37:29 -07:00
2007-10-19 11:53:42 -07:00
2007-10-19 11:53:42 -07:00
2007-07-31 10:43:05 -05:00
2007-10-16 09:42:58 -07:00
2007-10-20 03:10:57 +02:00
2007-10-19 11:53:36 -07:00
2007-10-19 11:53:36 -07:00
2007-07-10 17:18:59 -07:00
2007-10-16 09:43:13 -07:00
2007-10-17 08:42:52 -07:00
2007-07-17 10:23:04 -07:00
2007-10-19 23:07:36 +02:00
2007-10-16 09:43:09 -07:00
2007-10-21 02:37:45 -04:00
2007-10-19 11:53:36 -07:00
2007-10-20 02:01:26 +01:00
2007-07-09 08:22:54 +01:00
2007-07-09 08:23:17 +01:00
2007-10-20 02:00:58 +01:00
2007-10-18 14:37:21 -07:00
2007-07-19 10:04:54 -07:00
2007-10-22 08:13:19 -07:00
2007-10-22 08:13:20 -07:00
2007-10-17 08:42:51 -07:00
2007-06-01 08:18:29 -07:00
2007-10-22 08:13:21 -07:00
2007-10-17 08:43:02 -07:00
2007-10-17 08:42:48 -07:00
2007-10-17 08:43:01 -07:00
2007-07-18 18:29:37 -04:00
2007-10-18 14:37:31 -07:00
2007-06-18 09:48:41 -07:00
2007-07-10 00:35:17 -04:00
2007-07-09 18:51:58 +02:00
2007-10-19 11:53:42 -07:00
2007-07-19 10:04:41 -07:00
2007-10-13 23:56:33 +02:00
2007-10-16 11:21:00 +02:00
2007-10-22 00:56:52 -04:00
2007-07-16 09:05:34 -07:00
2007-10-10 16:51:59 -07:00
2007-10-17 08:42:52 -07:00
2007-07-14 18:55:06 -07:00
2007-10-10 16:52:04 -07:00
2007-10-14 12:41:52 -07:00
2007-07-16 09:05:50 -07:00
2007-10-16 09:43:01 -07:00
2007-10-18 14:37:32 -07:00
2007-07-31 15:39:41 -07:00
2007-07-11 15:03:53 +01:00
2007-10-16 09:42:49 -07:00
2007-10-17 08:42:52 -07:00
2007-10-23 15:49:54 +10:00
2007-10-17 08:42:52 -07:00
2007-10-17 08:43:01 -07:00
2007-10-19 11:53:49 -07:00
2007-07-18 08:47:40 -07:00
2007-10-12 14:51:12 -07:00
2007-10-16 09:43:10 -07:00
2007-10-13 10:18:29 +02:00
2007-09-11 22:24:45 +01:00
2007-10-18 16:21:18 -04:00
2007-07-17 10:23:03 -07:00
2007-07-17 10:23:13 -07:00
2007-07-24 12:24:59 -07:00
2007-07-16 09:05:34 -07:00
2007-07-18 08:47:45 -07:00
2007-10-19 11:53:55 -07:00
2007-10-10 16:54:03 -07:00
2007-10-17 08:42:55 -07:00
2007-10-23 15:49:54 +10:00
2007-10-19 11:53:54 -07:00
2007-07-16 09:05:42 -07:00
2007-10-19 11:53:44 -07:00
2007-07-16 09:05:51 -07:00
2007-10-19 17:19:16 -04:00
2007-10-09 17:15:11 -04:00
2007-10-17 08:42:58 -07:00
2007-10-19 11:53:34 -07:00
2007-10-19 11:53:41 -07:00
2007-10-16 09:43:02 -07:00
2007-10-18 14:37:23 -07:00
2007-10-22 02:59:49 -07:00
2007-10-22 08:13:18 -07:00
2007-10-17 08:42:44 -07:00
2007-10-19 11:53:41 -07:00
2007-10-19 11:53:41 -07:00
2007-10-17 08:43:04 -07:00
2007-07-26 11:35:21 -07:00
2007-07-16 09:05:50 -07:00
2007-10-19 11:53:41 -07:00
2007-10-17 08:42:45 -07:00
2007-07-17 10:23:03 -07:00
2007-10-17 08:42:56 -07:00
2007-10-16 09:42:53 -07:00
2007-07-18 08:47:40 -07:00
2007-10-22 08:13:20 -07:00
2007-07-21 18:37:10 -07:00
2007-05-17 05:23:06 -07:00
2007-07-16 09:05:50 -07:00
2007-10-16 09:43:17 -07:00
2007-10-19 11:53:44 -07:00
2007-10-16 09:42:50 -07:00
2007-10-19 11:53:44 -07:00
2007-07-22 11:03:37 -07:00
2007-10-17 08:43:01 -07:00
2007-05-21 21:47:27 -07:00
2007-07-16 09:05:46 -07:00
2007-07-19 10:04:49 -07:00
2007-07-16 09:05:40 -07:00
2007-07-18 08:47:40 -07:00
2007-10-18 14:37:23 -07:00
2007-10-12 14:51:12 -07:00
2007-10-15 12:59:43 -07:00
2007-10-17 08:42:53 -07:00
2007-07-20 11:23:02 -07:00
2007-10-19 11:53:42 -07:00
2007-07-18 15:57:15 -07:00
2007-09-19 11:24:18 -07:00
2007-10-23 15:49:54 +10:00
2007-10-23 15:49:54 +10:00
2007-10-23 15:49:55 +10:00
2007-10-23 15:49:54 +10:00
2007-10-23 15:49:54 +10:00
2007-07-17 10:22:59 -07:00
2007-10-17 08:42:56 -07:00
2007-10-19 11:53:34 -07:00
2007-07-09 18:52:01 +02:00
2007-10-17 08:43:02 -07:00