diff options
author | Thanos Makatos <thanos.makatos@nutanix.com> | 2020-03-24 12:06:26 -0400 |
---|---|---|
committer | Thanos Makatos <thanos.makatos@nutanix.com> | 2020-03-25 10:36:29 -0400 |
commit | 8435c007567fdd0a92ed1f4e8dd7b60bb09ae116 (patch) | |
tree | 67fcfe389226d546bbe67bac7bf32f3cadfdd922 /samples/gpio-pci-idio-16.c | |
parent | 9a8dddb7ed5c5d4ac0bc1ff89af795e5fe312c86 (diff) | |
download | libvfio-user-8435c007567fdd0a92ed1f4e8dd7b60bb09ae116.zip libvfio-user-8435c007567fdd0a92ed1f4e8dd7b60bb09ae116.tar.gz libvfio-user-8435c007567fdd0a92ed1f4e8dd7b60bb09ae116.tar.bz2 |
introduce vfio-over-socket transport
Signed-off-by: Thanos Makatos <thanos.makatos@nutanix.com>
Diffstat (limited to 'samples/gpio-pci-idio-16.c')
-rw-r--r-- | samples/gpio-pci-idio-16.c | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/samples/gpio-pci-idio-16.c b/samples/gpio-pci-idio-16.c index 285b600..bf35e49 100644 --- a/samples/gpio-pci-idio-16.c +++ b/samples/gpio-pci-idio-16.c @@ -36,9 +36,16 @@ #include <stdio.h> #include <err.h> #include <stdlib.h> +#include <unistd.h> #include "../lib/muser.h" +static void +_log(void *pvt, char const *msg) +{ + fprintf(stderr, "gpio: %s", msg); +} + ssize_t bar2_access(void *pvt, char * const buf, size_t count, loff_t offset, const bool is_write) @@ -51,15 +58,34 @@ bar2_access(void *pvt, char * const buf, size_t count, loff_t offset, return count; } -int main(int argc, char **argv) +int main(int argc, char *argv[]) { int ret; + bool trans_sock = false, verbose = false; + char opt; + + while ((opt = getopt(argc, argv, "sv")) != -1) { + switch (opt) { + case 's': + trans_sock = true; + break; + case 'v': + verbose = true; + break; + default: /* '?' */ + fprintf(stderr, "Usage: %s [-s] [-d] UUID\n", argv[0]); + exit(EXIT_FAILURE); + } + } - if (argc != 2) { + if (optind >= argc) { err(EXIT_FAILURE, "missing MUSER device UUID"); } lm_dev_info_t dev_info = { + .trans = trans_sock ? LM_TRANS_SOCK : LM_TRANS_KERNEL, + .log = verbose ? _log : NULL, + .log_lvl = LM_DBG, .pci_info = { .id = {.vid = 0x494F, .did = 0x0DC8 }, .reg_info[LM_DEV_BAR2_REG_IDX] = { @@ -69,7 +95,7 @@ int main(int argc, char **argv) }, .irq_count[LM_DEV_INTX_IRQ_IDX] = 1, }, - .uuid = argv[1], + .uuid = argv[optind], }; ret = lm_ctx_run(&dev_info); |