From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>,
Ian Campbell <ian.campbell@citrix.com>,
Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH RFC 10/23] xenstored: add the FreeBSD xenstored interface
Date: Wed, 16 Apr 2014 16:13:19 +0200 [thread overview]
Message-ID: <1397657612-57277-11-git-send-email-roger.pau@citrix.com> (raw)
In-Reply-To: <1397657612-57277-1-git-send-email-roger.pau@citrix.com>
This patch adds FreeBSD support to xenstored, by implementing the
FreeBSD interface to /dev/xen/xenstored.
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
---
tools/xenstore/Makefile | 1 +
tools/xenstore/xenstored_freebsd.c | 72 ++++++++++++++++++++++++++++++++++++
tools/xenstore/xs_lib.c | 2 +
3 files changed, 75 insertions(+), 0 deletions(-)
create mode 100644 tools/xenstore/xenstored_freebsd.c
diff --git a/tools/xenstore/Makefile b/tools/xenstore/Makefile
index 262f401..0b2b2c7 100644
--- a/tools/xenstore/Makefile
+++ b/tools/xenstore/Makefile
@@ -14,6 +14,7 @@ CLIENTS += xenstore-write xenstore-ls xenstore-watch
XENSTORED_OBJS = xenstored_core.o xenstored_watch.o xenstored_domain.o xenstored_transaction.o xs_lib.o talloc.o utils.o tdb.o hashtable.o
XENSTORED_OBJS_$(CONFIG_Linux) = xenstored_linux.o xenstored_posix.o
+XENSTORED_OBJS_$(CONFIG_FreeBSD) = xenstored_freebsd.o xenstored_posix.o
XENSTORED_OBJS_$(CONFIG_SunOS) = xenstored_solaris.o xenstored_posix.o xenstored_probes.o
XENSTORED_OBJS_$(CONFIG_NetBSD) = xenstored_netbsd.o xenstored_posix.o
XENSTORED_OBJS_$(CONFIG_MiniOS) = xenstored_minios.o
diff --git a/tools/xenstore/xenstored_freebsd.c b/tools/xenstore/xenstored_freebsd.c
new file mode 100644
index 0000000..f4e5fc2
--- /dev/null
+++ b/tools/xenstore/xenstored_freebsd.c
@@ -0,0 +1,72 @@
+/******************************************************************************
+ *
+ * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ *
+ * Copyright (C) 2005 Rusty Russell IBM Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <sys/mman.h>
+
+#include "xenstored_core.h"
+
+#define XENSTORED_DEV "/dev/xen/xenstored"
+
+evtchn_port_t xenbus_evtchn(void)
+{
+ int fd;
+ int rc;
+ evtchn_port_t port;
+ char str[20];
+
+ fd = open(XENSTORED_DEV, O_RDONLY);
+ if (fd == -1)
+ return -1;
+
+ rc = read(fd, str, sizeof(str) - 1);
+ if (rc == -1)
+ {
+ int err = errno;
+ close(fd);
+ errno = err;
+ return -1;
+ }
+
+ str[rc] = '\0';
+ port = strtoul(str, NULL, 0);
+
+ close(fd);
+ return port;
+}
+
+void *xenbus_map(void)
+{
+ int fd;
+ void *addr;
+
+ fd = open(XENSTORED_DEV, O_RDWR);
+ if (fd == -1)
+ return NULL;
+
+ addr = mmap(NULL, getpagesize(), PROT_READ|PROT_WRITE,
+ MAP_SHARED, fd, 0);
+
+ if (addr == MAP_FAILED)
+ addr = NULL;
+
+ close(fd);
+
+ return addr;
+}
+
+void xenbus_notify_running(void)
+{
+}
diff --git a/tools/xenstore/xs_lib.c b/tools/xenstore/xs_lib.c
index f7076cc..dfbeff1 100644
--- a/tools/xenstore/xs_lib.c
+++ b/tools/xenstore/xs_lib.c
@@ -84,6 +84,8 @@ const char *xs_domain_dev(void)
return "/proc/xen/xenbus";
#elif defined(__NetBSD__)
return "/kern/xen/xenbus";
+#elif defined(__FreeBSD__)
+ return "/dev/xen/xenstore";
#else
return "/dev/xen/xenbus";
#endif
--
1.7.7.5 (Apple Git-26)
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2014-04-16 14:24 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-16 14:13 [PATCH RFC 00/23] tools: add support for FreeBSD Roger Pau Monne
2014-04-16 14:13 ` [PATCH RFC 01/23] build: set FreeBSD specific build variables Roger Pau Monne
2014-04-17 16:20 ` Ian Jackson
2014-04-28 14:27 ` Ian Campbell
2014-04-16 14:13 ` [PATCH RFC 02/23] configure: make the libaio test non-fatal on OSes different than Linux Roger Pau Monne
2014-04-17 16:21 ` Ian Jackson
2014-04-22 14:30 ` Roger Pau Monné
2014-04-28 14:28 ` Ian Campbell
2014-04-16 14:13 ` [PATCH RFC 03/23] include: import FreeBSD headers for evtchn and privcmd devices Roger Pau Monne
2014-04-17 16:16 ` Ian Jackson
2014-04-22 14:35 ` Roger Pau Monné
2014-04-22 14:39 ` Ian Campbell
2014-04-28 14:29 ` Ian Campbell
2014-04-16 14:13 ` [PATCH RFC 04/23] libxc: add support for FreeBSD Roger Pau Monne
2014-04-17 16:30 ` Ian Jackson
2014-04-17 16:39 ` Ian Campbell
2014-04-17 17:18 ` Ian Jackson
2014-04-16 14:13 ` [PATCH RFC 05/23] libxc: remove usage of "daylight" variable Roger Pau Monne
2014-04-17 16:44 ` Ian Jackson
2014-04-28 14:32 ` Ian Campbell
2014-04-16 14:13 ` [PATCH RFC 06/23] libxc: remove include of malloc.h Roger Pau Monne
2014-04-17 16:44 ` Ian Jackson
2014-04-16 14:13 ` [PATCH RFC 07/23] libelf: add defines for bswap_* functions for FreeBSD Roger Pau Monne
2014-04-17 16:45 ` Ian Jackson
2014-04-28 14:34 ` Ian Campbell
2014-04-16 14:13 ` [PATCH RFC 08/23] configure: add checks for endian.h and sys/endian.h Roger Pau Monne
2014-04-17 16:46 ` Ian Jackson
2014-04-16 14:13 ` [PATCH RFC 09/23] lz4: add support for OSes that don't have asm/unaligned.h Roger Pau Monne
2014-04-17 17:00 ` Ian Jackson
2014-04-22 14:46 ` Roger Pau Monné
2014-04-22 15:25 ` Ian Jackson
2014-04-22 15:55 ` Ian Campbell
2014-04-22 16:40 ` Roger Pau Monné
2014-04-22 22:27 ` Yann Collet
2014-04-23 8:53 ` Ian Campbell
2014-04-23 9:06 ` Roger Pau Monné
2014-04-23 9:09 ` Ian Campbell
2014-04-23 16:18 ` Roger Pau Monné
2014-04-24 8:28 ` Ian Campbell
2014-04-24 9:19 ` Roger Pau Monné
2014-04-24 9:38 ` Ian Campbell
2014-04-16 14:13 ` Roger Pau Monne [this message]
2014-04-17 17:02 ` [PATCH RFC 10/23] xenstored: add the FreeBSD xenstored interface Ian Jackson
2014-04-22 14:50 ` Roger Pau Monné
2014-04-22 15:45 ` Ian Jackson
2014-04-16 14:13 ` [PATCH RFC 11/23] xenstore: add some missing headers Roger Pau Monne
2014-04-17 17:03 ` Ian Jackson
2014-04-16 14:13 ` [PATCH RFC 12/23] console: add FreeBSD includes Roger Pau Monne
2014-04-17 17:05 ` Ian Jackson
2014-04-16 14:13 ` [PATCH RFC 13/23] init: add FreeBSD xencommons init script Roger Pau Monne
2014-04-28 14:36 ` Ian Campbell
2014-06-02 11:53 ` Roger Pau Monné
2014-06-02 13:50 ` Ian Campbell
2014-04-16 14:13 ` [PATCH RFC 14/23] hotplug: add FreeBSD vif-bridge Roger Pau Monne
2014-04-28 14:39 ` Ian Campbell
2014-06-02 11:56 ` Roger Pau Monné
2014-06-02 13:52 ` Ian Campbell
2014-06-02 14:46 ` Roger Pau Monné
2014-06-02 15:08 ` Ian Campbell
2014-04-16 14:13 ` [PATCH RFC 15/23] libxl: add support for OS-specific names to backend interfaces Roger Pau Monne
2014-04-17 17:06 ` Ian Jackson
2014-04-16 14:13 ` [PATCH RFC 16/23] libxl: add FreeBSD OS support Roger Pau Monne
2014-04-17 17:10 ` Ian Jackson
2014-04-22 14:55 ` Roger Pau Monné
2014-04-16 14:13 ` [PATCH RFC 17/23] libxl: add support for FreeBSD uuid implementation Roger Pau Monne
2014-04-17 17:11 ` Ian Jackson
2014-04-22 15:09 ` Roger Pau Monné
2014-04-16 14:13 ` [PATCH RFC 18/23] libxl: only include utmp.h if it's present Roger Pau Monne
2014-04-17 17:13 ` Ian Jackson
2014-04-17 17:21 ` Roger Pau Monné
2014-04-17 18:26 ` Ian Jackson
2014-04-16 14:13 ` [PATCH RFC 19/23] hvmloader: remove size_t typedef and include stddef.h Roger Pau Monne
2014-04-28 14:43 ` Ian Campbell
2014-06-02 12:13 ` Roger Pau Monné
2014-06-02 13:53 ` Ian Campbell
2014-04-16 14:13 ` [PATCH RFC 20/23] xenstat: add a dummy FreeBSD implementation Roger Pau Monne
2014-04-17 17:15 ` Ian Jackson
2014-04-17 17:25 ` Roger Pau Monné
2014-04-17 18:26 ` Ian Jackson
2014-04-28 14:45 ` Ian Campbell
2014-04-16 14:13 ` [PATCH RFC 21/23] gdbsx: remove cast from ioctl Roger Pau Monne
2014-04-17 17:17 ` Ian Jackson
2014-04-28 14:46 ` Ian Campbell
2014-04-28 19:42 ` Mukesh Rathor
2014-04-16 14:13 ` [PATCH RFC 22/23] build: export CC value to SeaBIOS Roger Pau Monne
2014-04-28 14:47 ` Ian Campbell
2014-04-16 14:13 ` [PATCH RFC 23/23] build: export linker emulation parameter " Roger Pau Monne
2014-04-28 14:50 ` Ian Campbell
2014-04-17 8:55 ` [PATCH RFC 00/23] tools: add support for FreeBSD Roger Pau Monné
2014-05-02 13:00 ` Ian Campbell
2014-05-02 13:02 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1397657612-57277-11-git-send-email-roger.pau@citrix.com \
--to=roger.pau@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=ian.campbell@citrix.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).