diff options
author | Eric Blake <eblake@redhat.com> | 2023-06-08 08:56:37 -0500 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2023-07-19 15:26:13 -0500 |
commit | bfe04d0a7d5e8a4f4c9014ee7622af2056685974 (patch) | |
tree | 3d3a227cacfa83af30af271e695d327953952954 /nbd/common.c | |
parent | 70fa99f445a6fabe4b46f188cc665cd469cd8293 (diff) | |
download | qemu-bfe04d0a7d5e8a4f4c9014ee7622af2056685974.zip qemu-bfe04d0a7d5e8a4f4c9014ee7622af2056685974.tar.gz qemu-bfe04d0a7d5e8a4f4c9014ee7622af2056685974.tar.bz2 |
nbd: Use enum for various negotiation modes
Deciphering the hard-coded list of integer return values from
nbd_start_negotiate() will only get more confusing when adding support
for 64-bit extended headers. Better is to name things in an enum.
Although the function in question is private to client.c, putting the
enum in a public header and including an enum-to-string conversion
will allow its use in more places in upcoming patches.
The enum is intentionally laid out so that operators like <= can be
used to group multiple modes with similar characteristics, and where
the least powerful mode has value 0, even though this patch does not
exploit that. No semantic change intended.
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-ID: <20230608135653.2918540-9-eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Diffstat (limited to 'nbd/common.c')
-rw-r--r-- | nbd/common.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/nbd/common.c b/nbd/common.c index ddfe7d1..989fbe5 100644 --- a/nbd/common.c +++ b/nbd/common.c @@ -248,3 +248,20 @@ int nbd_errno_to_system_errno(int err) } return ret; } + + +const char *nbd_mode_lookup(NBDMode mode) +{ + switch (mode) { + case NBD_MODE_OLDSTYLE: + return "oldstyle"; + case NBD_MODE_EXPORT_NAME: + return "export name only"; + case NBD_MODE_SIMPLE: + return "simple headers"; + case NBD_MODE_STRUCTURED: + return "structured replies"; + default: + return "<unknown>"; + } +} |