08.11.2019 15:34, Max Reitz wrote: > We can save some LoC in xdbg_graph_add_edge() by using > bdrv_qapi_perm_to_blk_perm(). > > Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]> > --- > block.c | 29 ++++++++--------------------- > 1 file changed, 8 insertions(+), 21 deletions(-) > > diff --git a/block.c b/block.c > index 066433f3e2..ae279ff21f 100644 > --- a/block.c > +++ b/block.c > @@ -4870,36 +4870,23 @@ static void > xdbg_graph_add_node(XDbgBlockGraphConstructor *gr, void *node, > static void xdbg_graph_add_edge(XDbgBlockGraphConstructor *gr, void *parent, > const BdrvChild *child) > { > - typedef struct { > - unsigned int flag; > - BlockPermission num; > - } PermissionMap; > - > - static const PermissionMap permissions[] = { > - { BLK_PERM_CONSISTENT_READ, BLOCK_PERMISSION_CONSISTENT_READ }, > - { BLK_PERM_WRITE, BLOCK_PERMISSION_WRITE }, > - { BLK_PERM_WRITE_UNCHANGED, BLOCK_PERMISSION_WRITE_UNCHANGED }, > - { BLK_PERM_RESIZE, BLOCK_PERMISSION_RESIZE }, > - { BLK_PERM_GRAPH_MOD, BLOCK_PERMISSION_GRAPH_MOD }, > - { 0, 0 } > - }; > - const PermissionMap *p; > + BlockPermission qapi_perm; > XDbgBlockGraphEdge *edge; > > - QEMU_BUILD_BUG_ON(1UL << (ARRAY_SIZE(permissions) - 1) != BLK_PERM_ALL + > 1); > - > edge = g_new0(XDbgBlockGraphEdge, 1); > > edge->parent = xdbg_graph_node_num(gr, parent); > edge->child = xdbg_graph_node_num(gr, child->bs); > edge->name = g_strdup(child->name); > > - for (p = permissions; p->flag; p++) { > - if (p->flag & child->perm) { > - QAPI_LIST_ADD(edge->perm, p->num); > + for (qapi_perm = 0; qapi_perm < BLOCK_PERMISSION__MAX; qapi_perm++) { > + uint64_t flag = bdrv_qapi_perm_to_blk_perm(qapi_perm); > + > + if (flag & child->perm) { > + QAPI_LIST_ADD(edge->perm, qapi_perm); > } > - if (p->flag & child->shared_perm) { > - QAPI_LIST_ADD(edge->shared_perm, p->num); > + if (flag & child->shared_perm) { > + QAPI_LIST_ADD(edge->shared_perm, qapi_perm); > } > } > > -- Best regards, Vladimir
