mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
hw/rdma: Replace QList by GQueue
RdmaProtectedQList provides a thread-safe queue of int64_t on top of a QList. rdma_protected_qlist_destroy() calls qlist_destroy_obj() directly. qlist_destroy_obj() is actually for use by qobject_destroy() only. The next commit will make that obvious. The minimal fix would be calling qobject_unref() instead. But QList is actually a bad fit here. It's designed for representing JSON arrays. We're better off with a GQueue here. Replace. Cc: Yuval Shaia <yuval.shaia.ml@gmail.com> Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20201211171152.146877-8-armbru@redhat.com>
This commit is contained in:
parent
88e25b1e6d
commit
bce800869b
4 changed files with 30 additions and 26 deletions
|
@ -28,10 +28,10 @@
|
|||
#define rdma_info_report(fmt, ...) \
|
||||
info_report("%s: " fmt, "rdma", ## __VA_ARGS__)
|
||||
|
||||
typedef struct RdmaProtectedQList {
|
||||
typedef struct RdmaProtectedGQueue {
|
||||
QemuMutex lock;
|
||||
QList *list;
|
||||
} RdmaProtectedQList;
|
||||
GQueue *list;
|
||||
} RdmaProtectedGQueue;
|
||||
|
||||
typedef struct RdmaProtectedGSList {
|
||||
QemuMutex lock;
|
||||
|
@ -40,10 +40,11 @@ typedef struct RdmaProtectedGSList {
|
|||
|
||||
void *rdma_pci_dma_map(PCIDevice *dev, dma_addr_t addr, dma_addr_t plen);
|
||||
void rdma_pci_dma_unmap(PCIDevice *dev, void *buffer, dma_addr_t len);
|
||||
void rdma_protected_qlist_init(RdmaProtectedQList *list);
|
||||
void rdma_protected_qlist_destroy(RdmaProtectedQList *list);
|
||||
void rdma_protected_qlist_append_int64(RdmaProtectedQList *list, int64_t value);
|
||||
int64_t rdma_protected_qlist_pop_int64(RdmaProtectedQList *list);
|
||||
void rdma_protected_gqueue_init(RdmaProtectedGQueue *list);
|
||||
void rdma_protected_gqueue_destroy(RdmaProtectedGQueue *list);
|
||||
void rdma_protected_gqueue_append_int64(RdmaProtectedGQueue *list,
|
||||
int64_t value);
|
||||
int64_t rdma_protected_gqueue_pop_int64(RdmaProtectedGQueue *list);
|
||||
void rdma_protected_gslist_init(RdmaProtectedGSList *list);
|
||||
void rdma_protected_gslist_destroy(RdmaProtectedGSList *list);
|
||||
void rdma_protected_gslist_append_int32(RdmaProtectedGSList *list,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue