aboutsummaryrefslogtreecommitdiff
path: root/samples/gpio-pci-idio-16.c
diff options
context:
space:
mode:
authorThanos Makatos <thanos.makatos@nutanix.com>2020-03-24 12:06:26 -0400
committerThanos Makatos <thanos.makatos@nutanix.com>2020-03-25 10:36:29 -0400
commit8435c007567fdd0a92ed1f4e8dd7b60bb09ae116 (patch)
tree67fcfe389226d546bbe67bac7bf32f3cadfdd922 /samples/gpio-pci-idio-16.c
parent9a8dddb7ed5c5d4ac0bc1ff89af795e5fe312c86 (diff)
downloadlibvfio-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.c32
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);