summaryrefslogtreecommitdiff
path: root/sysutils/xentools3/patches/patch-bt
blob: 8e6a535c84de29c86dfae01656eebbe0c011ed83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
$NetBSD: patch-bt,v 1.1.1.1 2007/06/14 19:39:46 bouyer Exp $

--- /dev/null	2007-04-25 19:26:24.000000000 +0200
+++ xenstore/xenstored_netbsd.c	2007-04-25 19:28:19.000000000 +0200
@@ -0,0 +1,73 @@
+/******************************************************************************
+ *
+ * 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_PROC_KVA  "/dev/xsd_kva"
+#define XENSTORED_PROC_PORT "/kern/xen/xsd_port"
+
+evtchn_port_t xenbus_evtchn(void)
+{
+	int fd;
+	int rc;
+	evtchn_port_t port; 
+	char str[20]; 
+
+	fd = open(XENSTORED_PROC_PORT, O_RDONLY); 
+	if (fd == -1)
+		return -1;
+
+	rc = read(fd, str, sizeof(str)); 
+	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_PROC_KVA, 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)
+{
+}