[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH v5 3/5] Add functions for assigning ioeventfd an
From: |
Cam Macdonell |
Subject: |
[Qemu-devel] Re: [PATCH v5 3/5] Add functions for assigning ioeventfd and irqfds. |
Date: |
Mon, 10 May 2010 09:13:28 -0600 |
On Mon, May 10, 2010 at 4:43 AM, Avi Kivity <address@hidden> wrote:
> On 04/21/2010 08:53 PM, Cam Macdonell wrote:
>>
>> Generic functions to assign irqfds and ioeventfds.
>>
>>
>
> Signoff.
>
>> }
>>
>> #ifdef KVM_IOEVENTFD
>> +int kvm_set_irqfd(int fd, uint16_t vector, uint32_t gsi)
>> +{
>> + struct kvm_irqfd call = { };
>> + int r;
>> +
>> + call.fd = fd;
>> + call.gsi = gsi;
>>
>
>> +
>> + if (!kvm_enabled())
>> + return -ENOSYS;
>>
>
> Braces, here and elsewhere.
This function is unnecessary as Michael added one that does the same thing.
>
>> + r = kvm_vm_ioctl(kvm_state, KVM_IRQFD,&call);
>> +
>> + if (r< 0) {
>> + return r;
>>
>
> -errno
>
>> + }
>> + return 0;
>> +}
>> +
>> +int kvm_set_ioeventfd_mmio_long(int fd, uint32_t addr, uint32_t val, bool
>> assign)
>> +{
>> +
>> + int ret;
>> + struct kvm_ioeventfd iofd;
>> +
>> + iofd.datamatch = val;
>> + iofd.addr = addr;
>> + iofd.len = 4;
>> + iofd.flags = KVM_IOEVENTFD_FLAG_DATAMATCH;
>> + iofd.fd = fd;
>> +
>> + if (!kvm_enabled())
>> + return -ENOSYS;
>> + if (!assign)
>> + iofd.flags |= KVM_IOEVENTFD_FLAG_DEASSIGN;
>>
>
> May be more usable to have separate assign and deassign functions (that can
> call into a single internal implementation).
I believe the convention so far is to use the 'assign' flag as
Michael's patch and the PIO version kvm_set_ioeventfd_pio_word() do.
>
>> +
>> + ret = kvm_vm_ioctl(kvm_state, KVM_IOEVENTFD,&iofd);
>> +
>> + if (ret< 0) {
>> + return ret;
>>
>
> -errno
>
>> + }
>> +
>> + return 0;
>> +}
>> +
>>
>
> --
> error compiling committee.c: too many arguments to function
>
>