David Woodhouse 6e1330090d hw/xen: Implement XenStore watches
Starts out fairly simple: a hash table of watches based on the path.

Except there can be multiple watches on the same path, so the watch ends
up being a simple linked list, and the head of that list is in the hash
table. Which makes removal a bit of a PITA but it's not so bad; we just
special-case "I had to remove the head of the list and now I have to
replace it in / remove it from the hash table". And if we don't remove
the head, it's a simple linked-list operation.

We do need to fire watches on *deleted* nodes, so instead of just a simple
xs_node_unref() on the topmost victim, we need to recurse down and fire
watches on them all.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
2023-03-07 17:04:30 +00:00
..
2023-02-27 22:29:01 +01:00
2023-02-08 07:28:05 +01:00
2023-03-07 17:04:30 +00:00
2023-02-08 07:16:23 +01:00
2022-12-21 06:35:28 -05:00
2023-03-02 13:57:50 +01:00
2023-03-03 17:11:22 +00:00
2023-02-08 07:28:05 +01:00
2023-02-08 07:28:05 +01:00
2022-10-27 11:34:31 +01:00
2023-02-27 22:29:02 +01:00