Compare commits
38 commits
Author | SHA1 | Date | |
---|---|---|---|
5566028388 | |||
![]() |
08b0e29280 | ||
![]() |
200277a234 | ||
01f396c440 | |||
4c50bfe7b7 | |||
57d51a77e9 | |||
![]() |
20fe81fbb2 | ||
![]() |
5e720a3d38 | ||
![]() |
bf49b0e5f5 | ||
![]() |
d689226627 | ||
![]() |
b70717b7d5 | ||
![]() |
ef8cdde7e5 | ||
![]() |
e496735580 | ||
![]() |
ebdeef9af8 | ||
![]() |
bdc9da6951 | ||
![]() |
7ee7e9ef21 | ||
![]() |
353ac80f10 | ||
![]() |
d66d95a334 | ||
![]() |
63a785dd22 | ||
![]() |
f3afdbbf26 | ||
![]() |
d9681ceee8 | ||
![]() |
fa6edefef0 | ||
![]() |
2419b8356b | ||
![]() |
f5f2296913 | ||
![]() |
6d474f19e1 | ||
![]() |
598ac3afc0 | ||
![]() |
aadbaa8475 | ||
![]() |
9db80b5f0e | ||
![]() |
d6a61cf079 | ||
![]() |
74b633ec62 | ||
![]() |
507d4632af | ||
![]() |
588a2ca177 | ||
![]() |
e533e41e2f | ||
![]() |
6077fad3e3 | ||
![]() |
fdce3d6c8a | ||
![]() |
b0f41b066b | ||
![]() |
a85426bced | ||
![]() |
35f7a3539d |
20 changed files with 1300 additions and 35 deletions
10
.gitignore
vendored
10
.gitignore
vendored
|
@ -1 +1,9 @@
|
|||
/build/
|
||||
build
|
||||
DerivedData
|
||||
.DS_Store
|
||||
*~
|
||||
*.rej
|
||||
*.orig
|
||||
cscope.*
|
||||
tags
|
||||
TAGS
|
||||
|
|
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
[submodule "lib9p"]
|
||||
path = lib9p
|
||||
url = https://github.com/jceel/lib9p.git
|
21
Makefile
21
Makefile
|
@ -49,6 +49,7 @@ XHYVE_SRC := \
|
|||
src/pci_irq.c \
|
||||
src/pci_lpc.c \
|
||||
src/pci_uart.c \
|
||||
src/pci_virtio_9p.c \
|
||||
src/pci_virtio_block.c \
|
||||
src/pci_virtio_net_tap.c \
|
||||
src/pci_virtio_net_vmnet.c \
|
||||
|
@ -67,14 +68,24 @@ FIRMWARE_SRC := \
|
|||
src/firmware/kexec.c \
|
||||
src/firmware/fbsd.c
|
||||
|
||||
LIB9P_SRC := \
|
||||
lib9p/connection.c \
|
||||
lib9p/hashtable.c \
|
||||
lib9p/log.c \
|
||||
lib9p/pack.c \
|
||||
lib9p/request.c \
|
||||
lib9p/utils.c \
|
||||
lib9p/sbuf/sbuf.c \
|
||||
lib9p/backend/fs.c
|
||||
|
||||
SRC := \
|
||||
$(VMM_SRC) \
|
||||
$(XHYVE_SRC) \
|
||||
$(FIRMWARE_SRC)
|
||||
|
||||
OBJ := $(SRC:src/%.c=build/%.o)
|
||||
OBJ := $(SRC:src/%.c=build/%.o) $(LIB9P_SRC:lib9p/%.c=build/lib9p/%.o)
|
||||
DEP := $(OBJ:%.o=%.d)
|
||||
INC := -Iinclude
|
||||
INC := -Iinclude -Ilib9p
|
||||
|
||||
CFLAGS += -DVERSION=\"$(GIT_VERSION)\"
|
||||
|
||||
|
@ -95,6 +106,11 @@ build/%.o: src/%.c
|
|||
@mkdir -p $(dir $@)
|
||||
$(VERBOSE) $(ENV) $(CC) $(CFLAGS) $(INC) $(DEF) -MMD -MT $@ -MF build/$*.d -o $@ -c $<
|
||||
|
||||
build/lib9p/%.o: lib9p/%.c
|
||||
@echo cc $<
|
||||
@mkdir -p $(dir $@)
|
||||
$(VERBOSE) $(ENV) $(CC) $(CFLAGS) $(CFLAGS_LIB9P) $(INC) $(DEF) -MMD -MT $@ -MF build/lib9p/$*.d -o $@ -c $<
|
||||
|
||||
$(TARGET).sym: $(OBJ)
|
||||
@echo ld $(notdir $@)
|
||||
$(VERBOSE) $(ENV) $(LD) $(LDFLAGS) -Xlinker $(TARGET).lto.o -o $@ $(OBJ)
|
||||
|
@ -107,3 +123,4 @@ $(TARGET): $(TARGET).sym
|
|||
|
||||
clean:
|
||||
@rm -rf build
|
||||
|
||||
|
|
29
README.md
29
README.md
|
@ -1,4 +1,4 @@
|
|||
# [xhyve.org](http://www.xhyve.org)
|
||||
# [xhyve.xyz](http://www.xhyve.xyz)
|
||||
|
||||

|
||||
<!-- https://thenounproject.com/term/squirrel/57718/ -->
|
||||
|
@ -28,15 +28,15 @@ If you have homebrew, then simply:
|
|||
|
||||
The `--HEAD` in the brew command ensures that you always get the latest changes, even if the homebrew database is not yet updated. If for any reason you don't want that simply do `brew install xhyve` .
|
||||
|
||||
if not then:
|
||||
if not then:
|
||||
|
||||
Building
|
||||
--------
|
||||
$ git clone https://github.com/mist64/xhyve
|
||||
$ git clone https://github.com/xhyve-xyz/xhyve.git
|
||||
$ cd xhyve
|
||||
$ make
|
||||
$ xcodebuild
|
||||
|
||||
The resulting binary will be in build/xhyve
|
||||
The resulting binary will be in build/Release/xhyve
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
@ -66,6 +66,7 @@ It exposes the following peripherals to virtual machines:
|
|||
- VirtIO block device
|
||||
- VirtIO networking
|
||||
- VirtIO RNG
|
||||
- VirtIO filesystem sharing
|
||||
|
||||
Notably absent are sound, USB, HID and any kind of graphics support. With a focus on server virtualization this is not strictly a requirement. bhyve may gain desktop virtualization capabilities in the future but this doesn't seem to be a priority.
|
||||
|
||||
|
@ -152,7 +153,7 @@ xhyve architecture
|
|||
------------------------------┼------------------------------
|
||||
|syscall xnu kernel
|
||||
V
|
||||
|
||||
|
||||
VMX host
|
||||
VMX nested paging
|
||||
|
||||
|
@ -181,6 +182,22 @@ instead of:
|
|||
|
||||
Where *X* is your tap device, i.e. */dev/tapX*.
|
||||
|
||||
File Sharing
|
||||
------
|
||||
You can setup shared folders between OS X and your guest by using the `virtio-9p` device.
|
||||
9P / VirtFS is a shared FS protocol introduced by Bell's Plan 9 OS.
|
||||
More information is available in the [KVM wiki](http://www.linux-kvm.org/page/9p_virtio).
|
||||
|
||||
Adding a VirtFS device to your VM:
|
||||
|
||||
$ xhyve -s 5,virtio-9p,hostshare=/Users/example/shared,ro ...
|
||||
|
||||
Inside the Linux VM:
|
||||
|
||||
$ mount -t 9p -o trans=virtio,version=9p2000.L hostshare /tmp/host_files
|
||||
|
||||
The `hostshare` identifier can be changed to support multiple mounts.
|
||||
|
||||
Issues
|
||||
------
|
||||
If you are, or were, running any version of VirtualBox, prior to 4.3.30 or 5.0,
|
||||
|
|
|
@ -47,6 +47,11 @@ CFLAGS_DIAG := \
|
|||
CFLAGS_DBG := \
|
||||
-g
|
||||
|
||||
CFLAGS_LIB9P := \
|
||||
-Wno-padded \
|
||||
-Wno-gnu-zero-variadic-macro-arguments \
|
||||
-Wno-format-nonliteral
|
||||
|
||||
CFLAGS := \
|
||||
-arch x86_64 \
|
||||
-x c \
|
||||
|
|
|
@ -217,6 +217,7 @@ struct vring_used {
|
|||
#define VIRTIO_DEV_NET 0x1000
|
||||
#define VIRTIO_DEV_BLOCK 0x1001
|
||||
#define VIRTIO_DEV_RANDOM 0x1002
|
||||
#define VIRTIO_DEV_9P 0x1009
|
||||
|
||||
/*
|
||||
* PCI config space constants.
|
||||
|
|
1
lib9p
Submodule
1
lib9p
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit ddfdba40793f4bd2e988d4832cfadbf71ab7d024
|
|
@ -48,7 +48,7 @@
|
|||
|
||||
static int listen_fd, conn_fd;
|
||||
|
||||
static struct sockaddr_in sin;
|
||||
static struct sockaddr_in saddrin;
|
||||
|
||||
static int
|
||||
dbg_handler(UNUSED int vcpu, int in, UNUSED int port, int bytes, uint32_t *eax,
|
||||
|
@ -123,12 +123,12 @@ init_dbgport(int sport)
|
|||
exit(1);
|
||||
}
|
||||
|
||||
sin.sin_len = sizeof(sin);
|
||||
sin.sin_family = AF_INET;
|
||||
sin.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||
sin.sin_port = htons(sport);
|
||||
saddrin.sin_len = sizeof(saddrin);
|
||||
saddrin.sin_family = AF_INET;
|
||||
saddrin.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||
saddrin.sin_port = htons(sport);
|
||||
|
||||
if (bind(listen_fd, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
|
||||
if (bind(listen_fd, (struct sockaddr *)&saddrin, sizeof(saddrin)) < 0) {
|
||||
perror("bind");
|
||||
exit(1);
|
||||
}
|
||||
|
|
276
src/pci_virtio_9p.c
Normal file
276
src/pci_virtio_9p.c
Normal file
|
@ -0,0 +1,276 @@
|
|||
/*-
|
||||
* Copyright (c) 2016 Jakub Klama <jceel@FreeBSD.org>
|
||||
* Copyright (c) 2016 iXsystems Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer
|
||||
* in this position and unchanged.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* virtio filesystem passtrough using 9p protocol.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/uio.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <assert.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wpadded"
|
||||
#include <lib9p.h>
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
#include <xhyve/xhyve.h>
|
||||
#include <xhyve/pci_emul.h>
|
||||
#include <xhyve/virtio.h>
|
||||
|
||||
|
||||
#define VT9P_RINGSZ 64
|
||||
|
||||
static int pci_vt9p_debug = 0;
|
||||
#define DPRINTF(params) if (pci_vt9p_debug) printf params
|
||||
|
||||
/*
|
||||
* Per-device softc
|
||||
*/
|
||||
struct pci_vt9p_softc {
|
||||
struct virtio_softc vsc_vs;
|
||||
struct vqueue_info vsc_vq;
|
||||
pthread_mutex_t vsc_mtx;
|
||||
uint64_t vsc_cfg;
|
||||
uint64_t vsc_features;
|
||||
char * vsc_rootpath;
|
||||
struct pci_vt9p_config * vsc_config;
|
||||
struct l9p_backend * vsc_fs_backend;
|
||||
struct l9p_server * vsc_server;
|
||||
struct l9p_connection * vsc_conn;
|
||||
};
|
||||
|
||||
struct pci_vt9p_request {
|
||||
struct iovec * vsr_iov;
|
||||
size_t vsr_niov;
|
||||
size_t vsr_respidx;
|
||||
size_t vsr_iolen;
|
||||
};
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wzero-length-array"
|
||||
struct pci_vt9p_config {
|
||||
uint16_t tag_len;
|
||||
char tag[0];
|
||||
};
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
static void pci_vt9p_reset(void *);
|
||||
static void pci_vt9p_notify(void *, struct vqueue_info *);
|
||||
static int pci_vt9p_cfgread(void *, int, int, uint32_t *);
|
||||
static void pci_vt9p_neg_features(void *, uint64_t);
|
||||
|
||||
static struct virtio_consts vt9p_vi_consts = {
|
||||
"vt9p", /* our name */
|
||||
1, /* we support 1 virtqueue */
|
||||
0, /* config reg size */
|
||||
pci_vt9p_reset, /* reset */
|
||||
pci_vt9p_notify, /* device-wide qnotify */
|
||||
pci_vt9p_cfgread, /* read virtio config */
|
||||
NULL, /* write virtio config */
|
||||
pci_vt9p_neg_features, /* apply negotiated features */
|
||||
(1 << 0), /* our capabilities */
|
||||
};
|
||||
|
||||
|
||||
static void
|
||||
pci_vt9p_reset(void *vsc)
|
||||
{
|
||||
struct pci_vt9p_softc *sc;
|
||||
|
||||
sc = vsc;
|
||||
|
||||
DPRINTF(("vt9p: device reset requested !\n"));
|
||||
vi_reset_dev(&sc->vsc_vs);
|
||||
}
|
||||
|
||||
static void
|
||||
pci_vt9p_neg_features(void *vsc, uint64_t negotiated_features)
|
||||
{
|
||||
struct pci_vt9p_softc *sc = vsc;
|
||||
|
||||
sc->vsc_features = negotiated_features;
|
||||
}
|
||||
|
||||
static int
|
||||
pci_vt9p_cfgread(void *vsc, int offset, int size, uint32_t *retval)
|
||||
{
|
||||
struct pci_vt9p_softc *sc = vsc;
|
||||
void *ptr;
|
||||
|
||||
ptr = (uint8_t *)sc->vsc_config + offset;
|
||||
memcpy(retval, ptr, size);
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
pci_vt9p_get_buffer(struct l9p_request *req, struct iovec *iov, size_t *niov,
|
||||
void *arg __unused)
|
||||
{
|
||||
struct pci_vt9p_request *preq = req->lr_aux;
|
||||
size_t n = preq->vsr_niov - preq->vsr_respidx;
|
||||
|
||||
memcpy(iov, preq->vsr_iov + preq->vsr_respidx, n * sizeof(struct iovec));
|
||||
*niov = n;
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
pci_vt9p_send(struct l9p_request *req, const struct iovec *iov __unused,
|
||||
const size_t niov __unused, const size_t iolen, void *arg __unused)
|
||||
{
|
||||
struct pci_vt9p_request *preq = req->lr_aux;
|
||||
|
||||
preq->vsr_iolen = iolen;
|
||||
return (0);
|
||||
}
|
||||
|
||||
static void
|
||||
pci_vt9p_notify(void *vsc, struct vqueue_info *vq)
|
||||
{
|
||||
struct iovec iov[8];
|
||||
struct pci_vt9p_softc *sc;
|
||||
struct pci_vt9p_request preq;
|
||||
uint16_t idx, i;
|
||||
uint16_t flags[8];
|
||||
int n;
|
||||
|
||||
sc = vsc;
|
||||
|
||||
while (vq_has_descs(vq)) {
|
||||
n = vq_getchain(vq, &idx, iov, 8, flags);
|
||||
preq.vsr_iov = iov;
|
||||
preq.vsr_niov = (size_t)n;
|
||||
preq.vsr_respidx = 0;
|
||||
|
||||
/* Count readable descriptors */
|
||||
for (i = 0; i < n; i++) {
|
||||
if (flags[i] & VRING_DESC_F_WRITE)
|
||||
break;
|
||||
|
||||
preq.vsr_respidx++;
|
||||
}
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
DPRINTF(("vt9p: vt9p_notify(): desc%d base=%p, len=%zu, flags=0x%04x\r\n", i, iov[i].iov_base, iov[i].iov_len, flags[i]));
|
||||
|
||||
l9p_connection_recv(sc->vsc_conn, iov, preq.vsr_respidx, &preq);
|
||||
|
||||
/*
|
||||
* Release this chain and handle more
|
||||
*/
|
||||
vq_relchain(vq, idx, (uint32_t)preq.vsr_iolen);
|
||||
}
|
||||
vq_endchains(vq, 1); /* Generate interrupt if appropriate. */
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
pci_vt9p_init(struct pci_devinst *pi, char *opts)
|
||||
{
|
||||
struct pci_vt9p_softc *sc;
|
||||
char *opt;
|
||||
char *sharename = NULL;
|
||||
char *rootpath = NULL;
|
||||
|
||||
if (opts == NULL) {
|
||||
printf("virtio-9p: share name and path required\n");
|
||||
return (1);
|
||||
}
|
||||
|
||||
sc = calloc(1, sizeof(struct pci_vt9p_softc));
|
||||
sc->vsc_config = calloc(1, sizeof(struct pci_vt9p_config) + 128);
|
||||
|
||||
while ((opt = strsep(&opts, ",")) != NULL) {
|
||||
if (sharename == NULL) {
|
||||
sharename = strsep(&opt, "=");
|
||||
rootpath = strdup(opt);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (strcmp(opt, "ro") == 0)
|
||||
DPRINTF(("read-only mount requested\r\n"));
|
||||
}
|
||||
|
||||
sc->vsc_config->tag_len = (uint16_t)strlen(sharename);
|
||||
strncpy(sc->vsc_config->tag, sharename, strlen(sharename));
|
||||
|
||||
if (l9p_backend_fs_init(&sc->vsc_fs_backend, rootpath) != 0) {
|
||||
errno = ENXIO;
|
||||
return (1);
|
||||
}
|
||||
|
||||
if (l9p_server_init(&sc->vsc_server, sc->vsc_fs_backend) != 0) {
|
||||
errno = ENXIO;
|
||||
return (1);
|
||||
}
|
||||
|
||||
if (l9p_connection_init(sc->vsc_server, &sc->vsc_conn) != 0) {
|
||||
errno = EIO;
|
||||
return (1);
|
||||
}
|
||||
|
||||
l9p_connection_on_send_response(sc->vsc_conn, pci_vt9p_send, NULL);
|
||||
l9p_connection_on_get_response_buffer(sc->vsc_conn, pci_vt9p_get_buffer, NULL);
|
||||
|
||||
vi_softc_linkup(&sc->vsc_vs, &vt9p_vi_consts, sc, pi, &sc->vsc_vq);
|
||||
sc->vsc_vs.vs_mtx = &sc->vsc_mtx;
|
||||
|
||||
sc->vsc_vq.vq_qsize = VT9P_RINGSZ;
|
||||
|
||||
/* initialize config space */
|
||||
pci_set_cfgdata16(pi, PCIR_DEVICE, VIRTIO_DEV_9P);
|
||||
pci_set_cfgdata16(pi, PCIR_VENDOR, VIRTIO_VENDOR);
|
||||
pci_set_cfgdata8(pi, PCIR_CLASS, PCIC_STORAGE);
|
||||
pci_set_cfgdata16(pi, PCIR_SUBDEV_0, VIRTIO_TYPE_9P);
|
||||
pci_set_cfgdata16(pi, PCIR_SUBVEND_0, VIRTIO_VENDOR);
|
||||
|
||||
if (vi_intr_init(&sc->vsc_vs, 1, fbsdrun_virtio_msix()))
|
||||
return (1);
|
||||
vi_set_io_bar(&sc->vsc_vs, 0);
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
static struct pci_devemu pci_dev_9p = {
|
||||
.pe_emu = "virtio-9p",
|
||||
.pe_init = pci_vt9p_init,
|
||||
.pe_barwrite = vi_pci_write,
|
||||
.pe_barread = vi_pci_read
|
||||
};
|
||||
PCI_EMUL_SET(pci_dev_9p);
|
|
@ -90,6 +90,7 @@ struct fifo {
|
|||
struct ttyfd {
|
||||
bool opened;
|
||||
int fd; /* tty device file descriptor */
|
||||
char *name; /* slave pty name when using autopty*/
|
||||
struct termios tio_orig, tio_new; /* I/O Terminals */
|
||||
};
|
||||
|
||||
|
@ -330,11 +331,11 @@ uart_drain(int fd, enum ev_type ev, void *arg)
|
|||
struct uart_softc *sc;
|
||||
int ch;
|
||||
|
||||
sc = arg;
|
||||
sc = arg;
|
||||
|
||||
assert(fd == sc->tty.fd);
|
||||
assert(ev == EVF_READ);
|
||||
|
||||
|
||||
/*
|
||||
* This routine is called in the context of the mevent thread
|
||||
* to take out the softc lock to protect against concurrent
|
||||
|
@ -362,7 +363,7 @@ uart_write(struct uart_softc *sc, int offset, uint8_t value)
|
|||
uint8_t msr;
|
||||
|
||||
pthread_mutex_lock(&sc->mtx);
|
||||
|
||||
|
||||
/*
|
||||
* Take care of the special case DLAB accesses first
|
||||
*/
|
||||
|
@ -371,7 +372,7 @@ uart_write(struct uart_softc *sc, int offset, uint8_t value)
|
|||
sc->dll = value;
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
||||
if (offset == REG_DLH) {
|
||||
sc->dlh = value;
|
||||
goto done;
|
||||
|
@ -501,7 +502,7 @@ uart_read(struct uart_softc *sc, int offset)
|
|||
reg = sc->dll;
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
||||
if (offset == REG_DLH) {
|
||||
reg = sc->dlh;
|
||||
goto done;
|
||||
|
@ -519,7 +520,7 @@ uart_read(struct uart_softc *sc, int offset)
|
|||
iir = (sc->fcr & FCR_ENABLE) ? IIR_FIFO_MASK : 0;
|
||||
|
||||
intr_reason = (uint8_t) uart_intr_reason(sc);
|
||||
|
||||
|
||||
/*
|
||||
* Deal with side effects of reading the IIR register
|
||||
*/
|
||||
|
@ -623,7 +624,7 @@ uart_tty_backend(struct uart_softc *sc, const char *opts)
|
|||
sc->tty.opened = true;
|
||||
retval = 0;
|
||||
}
|
||||
|
||||
|
||||
return (retval);
|
||||
}
|
||||
|
||||
|
@ -631,27 +632,49 @@ int
|
|||
uart_set_backend(struct uart_softc *sc, const char *opts)
|
||||
{
|
||||
int retval;
|
||||
int ptyfd;
|
||||
char *ptyname;
|
||||
|
||||
retval = -1;
|
||||
|
||||
if (opts == NULL)
|
||||
return (0);
|
||||
|
||||
if (strcmp("stdio", opts) == 0) {
|
||||
if (!uart_stdio) {
|
||||
sc->tty.fd = STDIN_FILENO;
|
||||
sc->tty.opened = true;
|
||||
uart_stdio = true;
|
||||
retval = 0;
|
||||
if (strcmp("stdio", opts) == 0 && !uart_stdio) {
|
||||
sc->tty.fd = STDIN_FILENO;
|
||||
sc->tty.opened = true;
|
||||
uart_stdio = true;
|
||||
retval = fcntl(sc->tty.fd, F_SETFL, O_NONBLOCK);
|
||||
} else if (strcmp("autopty", opts) == 0) {
|
||||
if ((ptyfd = open("/dev/ptmx", O_RDWR | O_NONBLOCK)) == -1) {
|
||||
fprintf(stderr, "error opening /dev/ptmx char device");
|
||||
return retval;
|
||||
}
|
||||
|
||||
if ((ptyname = ptsname(ptyfd)) == NULL) {
|
||||
perror("ptsname: error getting name for slave pseudo terminal");
|
||||
return retval;
|
||||
}
|
||||
|
||||
if ((retval = grantpt(ptyfd)) == -1) {
|
||||
perror("error setting up ownership and permissions on slave pseudo terminal");
|
||||
return retval;
|
||||
}
|
||||
|
||||
if ((retval = unlockpt(ptyfd)) == -1) {
|
||||
perror("error unlocking slave pseudo terminal, to allow its usage");
|
||||
return retval;
|
||||
}
|
||||
|
||||
fprintf(stdout, "Hook up a terminal emulator to %s in order to access your VM\n", ptyname);
|
||||
sc->tty.fd = ptyfd;
|
||||
sc->tty.name = ptyname;
|
||||
sc->tty.opened = true;
|
||||
retval = 0;
|
||||
} else if (uart_tty_backend(sc, opts) == 0) {
|
||||
retval = 0;
|
||||
}
|
||||
|
||||
/* Make the backend file descriptor non-blocking */
|
||||
if (retval == 0)
|
||||
retval = fcntl(sc->tty.fd, F_SETFL, O_NONBLOCK);
|
||||
|
||||
if (retval == 0)
|
||||
uart_opentty(sc);
|
||||
|
||||
|
|
18
src/xhyve-Info.plist
Normal file
18
src/xhyve-Info.plist
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
</dict>
|
||||
</plist>
|
10
src/xhyve-entitlements.plist
Normal file
10
src/xhyve-entitlements.plist
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.network.client</key>
|
||||
<true/>
|
||||
<key>com.apple.security.network.server</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
73
src/xhyve.c
73
src/xhyve.c
|
@ -31,6 +31,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <err.h>
|
||||
#include <fcntl.h>
|
||||
#include <libgen.h>
|
||||
#include <unistd.h>
|
||||
#include <assert.h>
|
||||
|
@ -80,6 +81,7 @@ char *vmname = "vm";
|
|||
int guest_ncpus;
|
||||
int print_mac;
|
||||
char *guest_uuid_str;
|
||||
static char *pidfile;
|
||||
|
||||
static int guest_vmexit_on_hlt, guest_vmexit_on_pause;
|
||||
static int virtio_msix = 1;
|
||||
|
@ -125,13 +127,14 @@ usage(int code)
|
|||
{
|
||||
|
||||
fprintf(stderr,
|
||||
"Usage: %s [-behuwxMACHPWY] [-c vcpus] [-g <gdb port>] [-l <lpc>]\n"
|
||||
"Usage: %s [-behuwxMACHPWY] [-c vcpus] [-F <pidfile>] [-g <gdb port>] [-l <lpc>]\n"
|
||||
" %*s [-m mem] [-p vcpu:hostcpu] [-s <pci>] [-U uuid] -f <fw>\n"
|
||||
" -A: create ACPI tables\n"
|
||||
" -c: # cpus (default 1)\n"
|
||||
" -C: include guest memory in core file\n"
|
||||
" -e: exit on unhandled I/O access\n"
|
||||
" -f: firmware\n"
|
||||
" -F: pidfile\n"
|
||||
" -g: gdb port\n"
|
||||
" -h: help\n"
|
||||
" -H: vmexit from the guest on hlt\n"
|
||||
|
@ -159,7 +162,7 @@ show_version()
|
|||
fprintf(stderr, "%s: %s\n\n%s\n",progname, VERSION,
|
||||
"xhyve is a port of FreeBSD's bhyve hypervisor to OS X that\n"
|
||||
"works entirely in userspace and has no other dependencies.\n\n"
|
||||
"Homepage: https://github.com/mist64/xhyve\n"
|
||||
"Homepage: http://www.xhyve.xyz\n"
|
||||
"License: BSD\n");
|
||||
exit(0);
|
||||
}
|
||||
|
@ -775,6 +778,61 @@ fail:
|
|||
return -1;
|
||||
}
|
||||
|
||||
static void
|
||||
remove_pidfile()
|
||||
{
|
||||
int error;
|
||||
|
||||
if (pidfile == NULL)
|
||||
return;
|
||||
|
||||
error = unlink(pidfile);
|
||||
if (error < 0)
|
||||
fprintf(stderr, "Failed to remove pidfile\n");
|
||||
}
|
||||
|
||||
static int
|
||||
setup_pidfile()
|
||||
{
|
||||
int f, error, pid;
|
||||
char pid_str[21];
|
||||
|
||||
if (pidfile == NULL)
|
||||
return 0;
|
||||
|
||||
pid = getpid();
|
||||
|
||||
error = sprintf(pid_str, "%d", pid);
|
||||
if (error < 0)
|
||||
goto fail;
|
||||
|
||||
f = open(pidfile, O_CREAT|O_EXCL|O_WRONLY, 0644);
|
||||
if (f < 0)
|
||||
goto fail;
|
||||
|
||||
error = atexit(remove_pidfile);
|
||||
if (error < 0) {
|
||||
close(f);
|
||||
remove_pidfile();
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (0 > (write(f, (void*)pid_str, strlen(pid_str)))) {
|
||||
close(f);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
error = close(f);
|
||||
if (error < 0)
|
||||
goto fail;
|
||||
|
||||
return 0;
|
||||
|
||||
fail:
|
||||
fprintf(stderr, "Failed to set up pidfile\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
|
@ -795,7 +853,7 @@ main(int argc, char *argv[])
|
|||
rtc_localtime = 1;
|
||||
fw = 0;
|
||||
|
||||
while ((c = getopt(argc, argv, "behvuwxMACHPWY:f:g:c:s:m:l:U:")) != -1) {
|
||||
while ((c = getopt(argc, argv, "behvuwxMACHPWY:f:F:g:c:s:m:l:U:")) != -1) {
|
||||
switch (c) {
|
||||
case 'A':
|
||||
acpi = 1;
|
||||
|
@ -816,6 +874,9 @@ main(int argc, char *argv[])
|
|||
fw = 1;
|
||||
break;
|
||||
}
|
||||
case 'F':
|
||||
pidfile = optarg;
|
||||
break;
|
||||
case 'g':
|
||||
gdb_port = atoi(optarg);
|
||||
break;
|
||||
|
@ -907,6 +968,12 @@ main(int argc, char *argv[])
|
|||
exit(1);
|
||||
}
|
||||
|
||||
error = setup_pidfile();
|
||||
if (error) {
|
||||
fprintf(stderr, "pidfile error %d\n", error);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
init_mem();
|
||||
init_inout();
|
||||
pci_irq_init();
|
||||
|
|
51
xcconfigs/common.xcconfig
Normal file
51
xcconfigs/common.xcconfig
Normal file
|
@ -0,0 +1,51 @@
|
|||
MACOSX_DEPLOYMENT_TARGET = 10.10
|
||||
CURRENT_PROJECT_VERSION = 0.2.0
|
||||
|
||||
INSTALL_PREFIX = /opt/xhyve
|
||||
|
||||
CODE_SIGN_IDENTITY = -
|
||||
|
||||
VERSIONING_SYSTEM = apple-generic
|
||||
|
||||
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
|
||||
PREBINDING = NO
|
||||
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES
|
||||
CLANG_ENABLE_OBJC_ARC = YES
|
||||
CLANG_ENABLE_MODULES = YES
|
||||
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11
|
||||
GCC_NO_COMMON_BLOCKS = YES
|
||||
GCC_OPTIMIZATION_LEVEL = s
|
||||
|
||||
OTHER_CFLAGS_common = -fstrict-aliasing
|
||||
OTHER_CFLAGS = $(inherited) $(OTHER_CFLAGS_common)
|
||||
OTHER_LDFLAGS_common =
|
||||
OTHER_LDFLAGS = $(inherited) $(OTHER_LDFLAGS_common)
|
||||
GCC_PREPROCESSOR_DEFINITIONS_common =
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) $(GCC_PREPROCESSOR_DEFINITIONS_common)
|
||||
|
||||
HEADER_SEARCH_PATHS = $(SRCROOT)/include $(inherited)
|
||||
|
||||
WARNING_CFLAGS = -Weverything -Wall -Wno-error=deprecated -Wno-unknown-warning-option -Wno-reserved-id-macro -Wno-missing-variable-declarations -pedantic
|
||||
GCC_TREAT_WARNINGS_AS_ERRORS = YES
|
||||
CLANG_WARN_BOOL_CONVERSION = YES
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES
|
||||
CLANG_WARN_EMPTY_BODY = YES
|
||||
CLANG_WARN_ENUM_CONVERSION = YES
|
||||
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES
|
||||
CLANG_WARN_INT_CONVERSION = YES
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR
|
||||
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE
|
||||
GCC_WARN_UNUSED_FUNCTION = YES
|
||||
GCC_WARN_UNUSED_LABEL = YES
|
||||
GCC_WARN_UNUSED_PARAMETER = YES
|
||||
GCC_WARN_UNUSED_VARIABLE = YES
|
||||
|
||||
LLVM_LTO = YES
|
10
xcconfigs/common_asan.xcconfig
Normal file
10
xcconfigs/common_asan.xcconfig
Normal file
|
@ -0,0 +1,10 @@
|
|||
#include "common_debug.xcconfig"
|
||||
|
||||
OTHER_CFLAGS_asan = $(OTHER_CFLAGS_common) -fsanitize=address
|
||||
OTHER_CFLAGS = $(inherited) $(OTHER_CFLAGS_asan)
|
||||
|
||||
OTHER_LDFLAGS_asan = $(OTHER_LDFLAGS_debug) -fsanitize=address
|
||||
OTHER_LDFLAGS = $(inherited) $(OTHER_LDFLAGS_asan)
|
||||
|
||||
GCC_PREPROCESSOR_DEFINITIONS_asan = $(GCC_PREPROCESSOR_DEFINITIONS_debug)
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) $(GCC_PREPROCESSOR_DEFINITIONS_asan)
|
17
xcconfigs/common_debug.xcconfig
Normal file
17
xcconfigs/common_debug.xcconfig
Normal file
|
@ -0,0 +1,17 @@
|
|||
#include "common.xcconfig"
|
||||
|
||||
COPY_PHASE_STRIP = NO
|
||||
STRIP_INSTALLED_PRODUCT = NO
|
||||
|
||||
GCC_OPTIMIZATION_LEVEL = 0
|
||||
LLVM_LTO = NO
|
||||
|
||||
OTHER_CFLAGS_debug = $(OTHER_CFLAGS_common) -fno-inline
|
||||
OTHER_CFLAGS = $(inherited) $(OTHER_CFLAGS_debug)
|
||||
|
||||
OTHER_LDFLAGS_debug = $(OTHER_LDFLAGS_common)
|
||||
OTHER_LDFLAGS = $(inherited) $(OTHER_LDFLAGS_debug)
|
||||
|
||||
GCC_PREPROCESSOR_DEFINITIONS_asan = $(GCC_PREPROCESSOR_DEFINITIONS_common) XHYVE_CONFIG_ASSERT
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) $(GCC_PREPROCESSOR_DEFINITIONS_common)
|
||||
|
12
xcconfigs/xhyve.xcconfig
Normal file
12
xcconfigs/xhyve.xcconfig
Normal file
|
@ -0,0 +1,12 @@
|
|||
CODE_SIGN_ENTITLEMENTS = src/xhyve-entitlements.plist
|
||||
OTHER_CODE_SIGN_FLAGS = -o library
|
||||
|
||||
PRODUCT_BUNDLE_IDENTIFIER = xyz.xhyve.xhyve
|
||||
|
||||
INFOPLIST_FILE = src/xhyve-Info.plist
|
||||
CREATE_INFOPLIST_SECTION_IN_BINARY = YES
|
||||
|
||||
OTHER_CFLAGS = $(inherited) -include xhyve-version.h -fvisibility=hidden
|
||||
|
||||
INSTALL_PATH = $(INSTALL_PREFIX)/bin
|
||||
MAN_INSTALL_PATH = $(INSTALL_PREFIX)/share/man
|
11
xcscripts/version.sh
Executable file
11
xcscripts/version.sh
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e -x
|
||||
|
||||
if [[ -d "${SRCROOT}/.git" ]] ; then
|
||||
VERSION=$(GIT_DIR="${SRCROOT}"/.git git describe --abbrev=6 --dirty --always --tags)
|
||||
else
|
||||
VERSION="v${CURRENT_PROJECT_VERSION}"
|
||||
fi
|
||||
|
||||
echo "#define VERSION \"${VERSION}\"" > "${DERIVED_FILE_DIR}/xhyve-version.h"
|
2
xhyve.xcodeproj/.gitignore
vendored
Normal file
2
xhyve.xcodeproj/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
project.xcworkspace
|
||||
xcuserdata
|
716
xhyve.xcodeproj/project.pbxproj
Normal file
716
xhyve.xcodeproj/project.pbxproj
Normal file
|
@ -0,0 +1,716 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
3F3FF9E91BF7C63A004C89A1 /* Hypervisor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F3FF9E81BF7C63A004C89A1 /* Hypervisor.framework */; };
|
||||
3F3FFA5D1BF7C6A7004C89A1 /* acpitbl.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA1F1BF7C6A7004C89A1 /* acpitbl.c */; };
|
||||
3F3FFA5E1BF7C6A7004C89A1 /* atkbdc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA201BF7C6A7004C89A1 /* atkbdc.c */; };
|
||||
3F3FFA5F1BF7C6A7004C89A1 /* block_if.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA211BF7C6A7004C89A1 /* block_if.c */; };
|
||||
3F3FFA601BF7C6A7004C89A1 /* consport.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA221BF7C6A7004C89A1 /* consport.c */; };
|
||||
3F3FFA611BF7C6A7004C89A1 /* dbgport.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA231BF7C6A7004C89A1 /* dbgport.c */; };
|
||||
3F3FFA621BF7C6A7004C89A1 /* fbsd.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA261BF7C6A7004C89A1 /* fbsd.c */; };
|
||||
3F3FFA631BF7C6A7004C89A1 /* kexec.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA271BF7C6A7004C89A1 /* kexec.c */; };
|
||||
3F3FFA641BF7C6A7004C89A1 /* inout.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA281BF7C6A7004C89A1 /* inout.c */; };
|
||||
3F3FFA651BF7C6A7004C89A1 /* ioapic.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA291BF7C6A7004C89A1 /* ioapic.c */; };
|
||||
3F3FFA661BF7C6A7004C89A1 /* md5c.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA2A1BF7C6A7004C89A1 /* md5c.c */; };
|
||||
3F3FFA671BF7C6A7004C89A1 /* mem.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA2B1BF7C6A7004C89A1 /* mem.c */; };
|
||||
3F3FFA681BF7C6A7004C89A1 /* mevent.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA2C1BF7C6A7004C89A1 /* mevent.c */; };
|
||||
3F3FFA6A1BF7C6A7004C89A1 /* mptbl.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA2E1BF7C6A7004C89A1 /* mptbl.c */; };
|
||||
3F3FFA6B1BF7C6A7004C89A1 /* pci_ahci.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA2F1BF7C6A7004C89A1 /* pci_ahci.c */; };
|
||||
3F3FFA6C1BF7C6A7004C89A1 /* pci_emul.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA301BF7C6A7004C89A1 /* pci_emul.c */; };
|
||||
3F3FFA6D1BF7C6A7004C89A1 /* pci_hostbridge.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA311BF7C6A7004C89A1 /* pci_hostbridge.c */; };
|
||||
3F3FFA6E1BF7C6A7004C89A1 /* pci_irq.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA321BF7C6A7004C89A1 /* pci_irq.c */; };
|
||||
3F3FFA6F1BF7C6A7004C89A1 /* pci_lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA331BF7C6A7004C89A1 /* pci_lpc.c */; };
|
||||
3F3FFA701BF7C6A7004C89A1 /* pci_uart.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA341BF7C6A7004C89A1 /* pci_uart.c */; };
|
||||
3F3FFA711BF7C6A7004C89A1 /* pci_virtio_block.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA351BF7C6A7004C89A1 /* pci_virtio_block.c */; };
|
||||
3F3FFA721BF7C6A7004C89A1 /* pci_virtio_net_tap.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA361BF7C6A7004C89A1 /* pci_virtio_net_tap.c */; };
|
||||
3F3FFA731BF7C6A7004C89A1 /* pci_virtio_net_vmnet.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA371BF7C6A7004C89A1 /* pci_virtio_net_vmnet.c */; };
|
||||
3F3FFA741BF7C6A7004C89A1 /* pci_virtio_rnd.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA381BF7C6A7004C89A1 /* pci_virtio_rnd.c */; };
|
||||
3F3FFA751BF7C6A7004C89A1 /* pm.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA391BF7C6A7004C89A1 /* pm.c */; };
|
||||
3F3FFA761BF7C6A7004C89A1 /* post.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA3A1BF7C6A7004C89A1 /* post.c */; };
|
||||
3F3FFA771BF7C6A7004C89A1 /* rtc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA3B1BF7C6A7004C89A1 /* rtc.c */; };
|
||||
3F3FFA781BF7C6A7004C89A1 /* smbiostbl.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA3C1BF7C6A7004C89A1 /* smbiostbl.c */; };
|
||||
3F3FFA791BF7C6A7004C89A1 /* task_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA3D1BF7C6A7004C89A1 /* task_switch.c */; };
|
||||
3F3FFA7A1BF7C6A7004C89A1 /* uart_emul.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA3E1BF7C6A7004C89A1 /* uart_emul.c */; };
|
||||
3F3FFA7B1BF7C6A7004C89A1 /* virtio.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA3F1BF7C6A7004C89A1 /* virtio.c */; };
|
||||
3F3FFA7C1BF7C6A7004C89A1 /* vmcs.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA421BF7C6A7004C89A1 /* vmcs.c */; };
|
||||
3F3FFA7D1BF7C6A7004C89A1 /* vmx.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA431BF7C6A7004C89A1 /* vmx.c */; };
|
||||
3F3FFA7E1BF7C6A7004C89A1 /* vmx_msr.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA441BF7C6A7004C89A1 /* vmx_msr.c */; };
|
||||
3F3FFA7F1BF7C6A7004C89A1 /* vatpic.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA461BF7C6A7004C89A1 /* vatpic.c */; };
|
||||
3F3FFA801BF7C6A7004C89A1 /* vatpit.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA471BF7C6A7004C89A1 /* vatpit.c */; };
|
||||
3F3FFA811BF7C6A7004C89A1 /* vhpet.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA481BF7C6A7004C89A1 /* vhpet.c */; };
|
||||
3F3FFA821BF7C6A7004C89A1 /* vioapic.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA491BF7C6A7004C89A1 /* vioapic.c */; };
|
||||
3F3FFA831BF7C6A7004C89A1 /* vlapic.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA4A1BF7C6A7004C89A1 /* vlapic.c */; };
|
||||
3F3FFA841BF7C6A7004C89A1 /* vpmtmr.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA4B1BF7C6A7004C89A1 /* vpmtmr.c */; };
|
||||
3F3FFA851BF7C6A7004C89A1 /* vrtc.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA4C1BF7C6A7004C89A1 /* vrtc.c */; };
|
||||
3F3FFA861BF7C6A7004C89A1 /* vmm.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA4D1BF7C6A7004C89A1 /* vmm.c */; };
|
||||
3F3FFA871BF7C6A7004C89A1 /* vmm_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA4E1BF7C6A7004C89A1 /* vmm_api.c */; };
|
||||
3F3FFA881BF7C6A7004C89A1 /* vmm_callout.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA4F1BF7C6A7004C89A1 /* vmm_callout.c */; };
|
||||
3F3FFA891BF7C6A7004C89A1 /* vmm_host.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA501BF7C6A7004C89A1 /* vmm_host.c */; };
|
||||
3F3FFA8A1BF7C6A7004C89A1 /* vmm_instruction_emul.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA511BF7C6A7004C89A1 /* vmm_instruction_emul.c */; };
|
||||
3F3FFA8B1BF7C6A7004C89A1 /* vmm_ioport.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA521BF7C6A7004C89A1 /* vmm_ioport.c */; };
|
||||
3F3FFA8C1BF7C6A7004C89A1 /* vmm_lapic.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA531BF7C6A7004C89A1 /* vmm_lapic.c */; };
|
||||
3F3FFA8D1BF7C6A7004C89A1 /* vmm_mem.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA541BF7C6A7004C89A1 /* vmm_mem.c */; };
|
||||
3F3FFA8E1BF7C6A7004C89A1 /* vmm_stat.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA551BF7C6A7004C89A1 /* vmm_stat.c */; };
|
||||
3F3FFA8F1BF7C6A7004C89A1 /* vmm_util.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA561BF7C6A7004C89A1 /* vmm_util.c */; };
|
||||
3F3FFA901BF7C6A7004C89A1 /* x86.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA571BF7C6A7004C89A1 /* x86.c */; };
|
||||
3F3FFA911BF7C6A7004C89A1 /* xhyve.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA5A1BF7C6A7004C89A1 /* xhyve.c */; };
|
||||
3F3FFA921BF7C6A7004C89A1 /* xmsr.c in Sources */ = {isa = PBXBuildFile; fileRef = 3F3FFA5B1BF7C6A7004C89A1 /* xmsr.c */; };
|
||||
3F3FFA971BF7CC0E004C89A1 /* xhyve.1 in Install Man Pages */ = {isa = PBXBuildFile; fileRef = 3F3FF9E41BF7C5DC004C89A1 /* xhyve.1 */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
3F1934901BF7C0D40099CC46 /* Install Man Pages */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "$(MAN_INSTALL_PATH)/man1";
|
||||
dstSubfolderSpec = 0;
|
||||
files = (
|
||||
3F3FFA971BF7CC0E004C89A1 /* xhyve.1 in Install Man Pages */,
|
||||
);
|
||||
name = "Install Man Pages";
|
||||
runOnlyForDeploymentPostprocessing = 1;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
3F1934921BF7C0D40099CC46 /* xhyve */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = xhyve; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
3F3FF9E01BF7C5D5004C89A1 /* common.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = common.xcconfig; sourceTree = "<group>"; };
|
||||
3F3FF9E11BF7C5D5004C89A1 /* common_asan.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = common_asan.xcconfig; sourceTree = "<group>"; };
|
||||
3F3FF9E21BF7C5D5004C89A1 /* common_debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = common_debug.xcconfig; sourceTree = "<group>"; };
|
||||
3F3FF9E31BF7C5D5004C89A1 /* xhyve.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = xhyve.xcconfig; sourceTree = "<group>"; };
|
||||
3F3FF9E41BF7C5DC004C89A1 /* xhyve.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = xhyve.1; sourceTree = SOURCE_ROOT; };
|
||||
3F3FF9E61BF7C5F9004C89A1 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
|
||||
3F3FF9E81BF7C63A004C89A1 /* Hypervisor.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Hypervisor.framework; path = /System/Library/Frameworks/Hypervisor.framework; sourceTree = SDKROOT; };
|
||||
3F3FFA1E1BF7C6A7004C89A1 /* acpi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = acpi.c; sourceTree = "<group>"; };
|
||||
3F3FFA1F1BF7C6A7004C89A1 /* acpitbl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = acpitbl.c; sourceTree = "<group>"; };
|
||||
3F3FFA201BF7C6A7004C89A1 /* atkbdc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = atkbdc.c; sourceTree = "<group>"; };
|
||||
3F3FFA211BF7C6A7004C89A1 /* block_if.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = block_if.c; sourceTree = "<group>"; };
|
||||
3F3FFA221BF7C6A7004C89A1 /* consport.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = consport.c; sourceTree = "<group>"; };
|
||||
3F3FFA231BF7C6A7004C89A1 /* dbgport.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dbgport.c; sourceTree = "<group>"; };
|
||||
3F3FFA241BF7C6A7004C89A1 /* dsdt.asl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dsdt.asl; sourceTree = "<group>"; };
|
||||
3F3FFA261BF7C6A7004C89A1 /* fbsd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fbsd.c; sourceTree = "<group>"; };
|
||||
3F3FFA271BF7C6A7004C89A1 /* kexec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = kexec.c; sourceTree = "<group>"; };
|
||||
3F3FFA281BF7C6A7004C89A1 /* inout.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = inout.c; sourceTree = "<group>"; };
|
||||
3F3FFA291BF7C6A7004C89A1 /* ioapic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ioapic.c; sourceTree = "<group>"; };
|
||||
3F3FFA2A1BF7C6A7004C89A1 /* md5c.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = md5c.c; sourceTree = "<group>"; };
|
||||
3F3FFA2B1BF7C6A7004C89A1 /* mem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mem.c; sourceTree = "<group>"; };
|
||||
3F3FFA2C1BF7C6A7004C89A1 /* mevent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mevent.c; sourceTree = "<group>"; };
|
||||
3F3FFA2D1BF7C6A7004C89A1 /* mevent_test.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mevent_test.c; sourceTree = "<group>"; };
|
||||
3F3FFA2E1BF7C6A7004C89A1 /* mptbl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mptbl.c; sourceTree = "<group>"; };
|
||||
3F3FFA2F1BF7C6A7004C89A1 /* pci_ahci.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pci_ahci.c; sourceTree = "<group>"; };
|
||||
3F3FFA301BF7C6A7004C89A1 /* pci_emul.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pci_emul.c; sourceTree = "<group>"; };
|
||||
3F3FFA311BF7C6A7004C89A1 /* pci_hostbridge.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pci_hostbridge.c; sourceTree = "<group>"; };
|
||||
3F3FFA321BF7C6A7004C89A1 /* pci_irq.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pci_irq.c; sourceTree = "<group>"; };
|
||||
3F3FFA331BF7C6A7004C89A1 /* pci_lpc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pci_lpc.c; sourceTree = "<group>"; };
|
||||
3F3FFA341BF7C6A7004C89A1 /* pci_uart.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pci_uart.c; sourceTree = "<group>"; };
|
||||
3F3FFA351BF7C6A7004C89A1 /* pci_virtio_block.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pci_virtio_block.c; sourceTree = "<group>"; };
|
||||
3F3FFA361BF7C6A7004C89A1 /* pci_virtio_net_tap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pci_virtio_net_tap.c; sourceTree = "<group>"; };
|
||||
3F3FFA371BF7C6A7004C89A1 /* pci_virtio_net_vmnet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pci_virtio_net_vmnet.c; sourceTree = "<group>"; };
|
||||
3F3FFA381BF7C6A7004C89A1 /* pci_virtio_rnd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pci_virtio_rnd.c; sourceTree = "<group>"; };
|
||||
3F3FFA391BF7C6A7004C89A1 /* pm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pm.c; sourceTree = "<group>"; };
|
||||
3F3FFA3A1BF7C6A7004C89A1 /* post.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = post.c; sourceTree = "<group>"; };
|
||||
3F3FFA3B1BF7C6A7004C89A1 /* rtc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rtc.c; sourceTree = "<group>"; };
|
||||
3F3FFA3C1BF7C6A7004C89A1 /* smbiostbl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = smbiostbl.c; sourceTree = "<group>"; };
|
||||
3F3FFA3D1BF7C6A7004C89A1 /* task_switch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = task_switch.c; sourceTree = "<group>"; };
|
||||
3F3FFA3E1BF7C6A7004C89A1 /* uart_emul.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uart_emul.c; sourceTree = "<group>"; };
|
||||
3F3FFA3F1BF7C6A7004C89A1 /* virtio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = virtio.c; sourceTree = "<group>"; };
|
||||
3F3FFA421BF7C6A7004C89A1 /* vmcs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vmcs.c; sourceTree = "<group>"; };
|
||||
3F3FFA431BF7C6A7004C89A1 /* vmx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vmx.c; sourceTree = "<group>"; };
|
||||
3F3FFA441BF7C6A7004C89A1 /* vmx_msr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vmx_msr.c; sourceTree = "<group>"; };
|
||||
3F3FFA461BF7C6A7004C89A1 /* vatpic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vatpic.c; sourceTree = "<group>"; };
|
||||
3F3FFA471BF7C6A7004C89A1 /* vatpit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vatpit.c; sourceTree = "<group>"; };
|
||||
3F3FFA481BF7C6A7004C89A1 /* vhpet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vhpet.c; sourceTree = "<group>"; };
|
||||
3F3FFA491BF7C6A7004C89A1 /* vioapic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vioapic.c; sourceTree = "<group>"; };
|
||||
3F3FFA4A1BF7C6A7004C89A1 /* vlapic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vlapic.c; sourceTree = "<group>"; };
|
||||
3F3FFA4B1BF7C6A7004C89A1 /* vpmtmr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vpmtmr.c; sourceTree = "<group>"; };
|
||||
3F3FFA4C1BF7C6A7004C89A1 /* vrtc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vrtc.c; sourceTree = "<group>"; };
|
||||
3F3FFA4D1BF7C6A7004C89A1 /* vmm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vmm.c; sourceTree = "<group>"; };
|
||||
3F3FFA4E1BF7C6A7004C89A1 /* vmm_api.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vmm_api.c; sourceTree = "<group>"; };
|
||||
3F3FFA4F1BF7C6A7004C89A1 /* vmm_callout.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vmm_callout.c; sourceTree = "<group>"; };
|
||||
3F3FFA501BF7C6A7004C89A1 /* vmm_host.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vmm_host.c; sourceTree = "<group>"; };
|
||||
3F3FFA511BF7C6A7004C89A1 /* vmm_instruction_emul.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vmm_instruction_emul.c; sourceTree = "<group>"; };
|
||||
3F3FFA521BF7C6A7004C89A1 /* vmm_ioport.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vmm_ioport.c; sourceTree = "<group>"; };
|
||||
3F3FFA531BF7C6A7004C89A1 /* vmm_lapic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vmm_lapic.c; sourceTree = "<group>"; };
|
||||
3F3FFA541BF7C6A7004C89A1 /* vmm_mem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vmm_mem.c; sourceTree = "<group>"; };
|
||||
3F3FFA551BF7C6A7004C89A1 /* vmm_stat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vmm_stat.c; sourceTree = "<group>"; };
|
||||
3F3FFA561BF7C6A7004C89A1 /* vmm_util.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vmm_util.c; sourceTree = "<group>"; };
|
||||
3F3FFA571BF7C6A7004C89A1 /* x86.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = x86.c; sourceTree = "<group>"; };
|
||||
3F3FFA581BF7C6A7004C89A1 /* xhyve-entitlements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "xhyve-entitlements.plist"; path = "src/xhyve-entitlements.plist"; sourceTree = "<group>"; };
|
||||
3F3FFA591BF7C6A7004C89A1 /* xhyve-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "xhyve-Info.plist"; path = "src/xhyve-Info.plist"; sourceTree = "<group>"; };
|
||||
3F3FFA5A1BF7C6A7004C89A1 /* xhyve.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xhyve.c; sourceTree = "<group>"; };
|
||||
3F3FFA5B1BF7C6A7004C89A1 /* xmsr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xmsr.c; sourceTree = "<group>"; };
|
||||
3F3FFA961BF7CBFF004C89A1 /* version.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = version.sh; sourceTree = "<group>"; };
|
||||
3FB6515C1BF7CD4500ED886F /* acpi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = acpi.h; sourceTree = "<group>"; };
|
||||
3FB6515D1BF7CD4500ED886F /* ahci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ahci.h; sourceTree = "<group>"; };
|
||||
3FB6515E1BF7CD4500ED886F /* block_if.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = block_if.h; sourceTree = "<group>"; };
|
||||
3FB6515F1BF7CD4500ED886F /* dbgport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dbgport.h; sourceTree = "<group>"; };
|
||||
3FB651611BF7CD4500ED886F /* fbsd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fbsd.h; sourceTree = "<group>"; };
|
||||
3FB651621BF7CD4500ED886F /* kexec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = kexec.h; sourceTree = "<group>"; };
|
||||
3FB651631BF7CD4500ED886F /* inout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = inout.h; sourceTree = "<group>"; };
|
||||
3FB651641BF7CD4500ED886F /* ioapic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ioapic.h; sourceTree = "<group>"; };
|
||||
3FB651651BF7CD4500ED886F /* mem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mem.h; sourceTree = "<group>"; };
|
||||
3FB651661BF7CD4500ED886F /* mevent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mevent.h; sourceTree = "<group>"; };
|
||||
3FB651671BF7CD4500ED886F /* mptbl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mptbl.h; sourceTree = "<group>"; };
|
||||
3FB651681BF7CD4500ED886F /* pci_emul.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pci_emul.h; sourceTree = "<group>"; };
|
||||
3FB651691BF7CD4500ED886F /* pci_irq.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pci_irq.h; sourceTree = "<group>"; };
|
||||
3FB6516A1BF7CD4500ED886F /* pci_lpc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pci_lpc.h; sourceTree = "<group>"; };
|
||||
3FB6516B1BF7CD4500ED886F /* rtc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rtc.h; sourceTree = "<group>"; };
|
||||
3FB6516C1BF7CD4500ED886F /* smbiostbl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = smbiostbl.h; sourceTree = "<group>"; };
|
||||
3FB6516E1BF7CD4500ED886F /* acpi_hpet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = acpi_hpet.h; sourceTree = "<group>"; };
|
||||
3FB6516F1BF7CD4500ED886F /* apicreg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = apicreg.h; sourceTree = "<group>"; };
|
||||
3FB651701BF7CD4500ED886F /* ata.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ata.h; sourceTree = "<group>"; };
|
||||
3FB651711BF7CD4500ED886F /* atomic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = atomic.h; sourceTree = "<group>"; };
|
||||
3FB651721BF7CD4500ED886F /* bitset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bitset.h; sourceTree = "<group>"; };
|
||||
3FB651731BF7CD4500ED886F /* cpuset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cpuset.h; sourceTree = "<group>"; };
|
||||
3FB651741BF7CD4500ED886F /* i8253reg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = i8253reg.h; sourceTree = "<group>"; };
|
||||
3FB651751BF7CD4500ED886F /* i8259.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = i8259.h; sourceTree = "<group>"; };
|
||||
3FB651761BF7CD4500ED886F /* linker_set.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = linker_set.h; sourceTree = "<group>"; };
|
||||
3FB651771BF7CD4500ED886F /* md5.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = md5.h; sourceTree = "<group>"; };
|
||||
3FB651781BF7CD4500ED886F /* misc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = misc.h; sourceTree = "<group>"; };
|
||||
3FB651791BF7CD4500ED886F /* mptable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mptable.h; sourceTree = "<group>"; };
|
||||
3FB6517A1BF7CD4500ED886F /* ns16550.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ns16550.h; sourceTree = "<group>"; };
|
||||
3FB6517B1BF7CD4500ED886F /* pcireg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pcireg.h; sourceTree = "<group>"; };
|
||||
3FB6517C1BF7CD4500ED886F /* psl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = psl.h; sourceTree = "<group>"; };
|
||||
3FB6517D1BF7CD4500ED886F /* rtc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rtc.h; sourceTree = "<group>"; };
|
||||
3FB6517E1BF7CD4500ED886F /* segments.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = segments.h; sourceTree = "<group>"; };
|
||||
3FB6517F1BF7CD4500ED886F /* specialreg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = specialreg.h; sourceTree = "<group>"; };
|
||||
3FB651801BF7CD4500ED886F /* timerreg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = timerreg.h; sourceTree = "<group>"; };
|
||||
3FB651811BF7CD4500ED886F /* tree.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = tree.h; sourceTree = "<group>"; };
|
||||
3FB651821BF7CD4500ED886F /* uuid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = uuid.h; sourceTree = "<group>"; };
|
||||
3FB651831BF7CD4500ED886F /* uart_emul.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = uart_emul.h; sourceTree = "<group>"; };
|
||||
3FB651841BF7CD4500ED886F /* virtio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = virtio.h; sourceTree = "<group>"; };
|
||||
3FB651871BF7CD4500ED886F /* vmcs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmcs.h; sourceTree = "<group>"; };
|
||||
3FB651881BF7CD4500ED886F /* vmx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmx.h; sourceTree = "<group>"; };
|
||||
3FB651891BF7CD4500ED886F /* vmx_controls.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmx_controls.h; sourceTree = "<group>"; };
|
||||
3FB6518A1BF7CD4500ED886F /* vmx_msr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmx_msr.h; sourceTree = "<group>"; };
|
||||
3FB6518C1BF7CD4500ED886F /* vatpic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vatpic.h; sourceTree = "<group>"; };
|
||||
3FB6518D1BF7CD4500ED886F /* vatpit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vatpit.h; sourceTree = "<group>"; };
|
||||
3FB6518E1BF7CD4500ED886F /* vhpet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vhpet.h; sourceTree = "<group>"; };
|
||||
3FB6518F1BF7CD4500ED886F /* vioapic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vioapic.h; sourceTree = "<group>"; };
|
||||
3FB651901BF7CD4500ED886F /* vlapic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vlapic.h; sourceTree = "<group>"; };
|
||||
3FB651911BF7CD4500ED886F /* vlapic_priv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vlapic_priv.h; sourceTree = "<group>"; };
|
||||
3FB651921BF7CD4500ED886F /* vpmtmr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vpmtmr.h; sourceTree = "<group>"; };
|
||||
3FB651931BF7CD4500ED886F /* vrtc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vrtc.h; sourceTree = "<group>"; };
|
||||
3FB651941BF7CD4500ED886F /* vmm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmm.h; sourceTree = "<group>"; };
|
||||
3FB651951BF7CD4500ED886F /* vmm_api.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmm_api.h; sourceTree = "<group>"; };
|
||||
3FB651961BF7CD4500ED886F /* vmm_callout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmm_callout.h; sourceTree = "<group>"; };
|
||||
3FB651971BF7CD4500ED886F /* vmm_common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmm_common.h; sourceTree = "<group>"; };
|
||||
3FB651981BF7CD4500ED886F /* vmm_host.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmm_host.h; sourceTree = "<group>"; };
|
||||
3FB651991BF7CD4500ED886F /* vmm_instruction_emul.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmm_instruction_emul.h; sourceTree = "<group>"; };
|
||||
3FB6519A1BF7CD4500ED886F /* vmm_ioport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmm_ioport.h; sourceTree = "<group>"; };
|
||||
3FB6519B1BF7CD4500ED886F /* vmm_ktr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmm_ktr.h; sourceTree = "<group>"; };
|
||||
3FB6519C1BF7CD4500ED886F /* vmm_lapic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmm_lapic.h; sourceTree = "<group>"; };
|
||||
3FB6519D1BF7CD4500ED886F /* vmm_mem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmm_mem.h; sourceTree = "<group>"; };
|
||||
3FB6519E1BF7CD4500ED886F /* vmm_stat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmm_stat.h; sourceTree = "<group>"; };
|
||||
3FB6519F1BF7CD4500ED886F /* vmm_util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vmm_util.h; sourceTree = "<group>"; };
|
||||
3FB651A01BF7CD4500ED886F /* x86.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = x86.h; sourceTree = "<group>"; };
|
||||
3FB651A11BF7CD4500ED886F /* xhyve.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xhyve.h; sourceTree = "<group>"; };
|
||||
3FB651A21BF7CD4500ED886F /* xmsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xmsr.h; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
3F19348F1BF7C0D40099CC46 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
3F3FF9E91BF7C63A004C89A1 /* Hypervisor.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
3F1934891BF7C0D40099CC46 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3FB6515A1BF7CD4500ED886F /* include */,
|
||||
3F3FFA1D1BF7C6A7004C89A1 /* src */,
|
||||
3F3FF9E51BF7C5ED004C89A1 /* Documentation */,
|
||||
3F3FF9E71BF7C5FF004C89A1 /* Build Support */,
|
||||
3F1934931BF7C0D40099CC46 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3F1934931BF7C0D40099CC46 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3F1934921BF7C0D40099CC46 /* xhyve */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3F3FF9DF1BF7C5D5004C89A1 /* xcconfigs */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3F3FFA951BF7CBFF004C89A1 /* xcscripts */,
|
||||
3F3FF9E01BF7C5D5004C89A1 /* common.xcconfig */,
|
||||
3F3FF9E11BF7C5D5004C89A1 /* common_asan.xcconfig */,
|
||||
3F3FF9E21BF7C5D5004C89A1 /* common_debug.xcconfig */,
|
||||
3F3FF9E31BF7C5D5004C89A1 /* xhyve.xcconfig */,
|
||||
);
|
||||
path = xcconfigs;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3F3FF9E51BF7C5ED004C89A1 /* Documentation */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3F3FF9E61BF7C5F9004C89A1 /* README.md */,
|
||||
3F3FF9E41BF7C5DC004C89A1 /* xhyve.1 */,
|
||||
);
|
||||
name = Documentation;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3F3FF9E71BF7C5FF004C89A1 /* Build Support */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3F3FFA581BF7C6A7004C89A1 /* xhyve-entitlements.plist */,
|
||||
3F3FFA591BF7C6A7004C89A1 /* xhyve-Info.plist */,
|
||||
3F3FF9EA1BF7C64C004C89A1 /* Linked Frameworks */,
|
||||
3F3FF9DF1BF7C5D5004C89A1 /* xcconfigs */,
|
||||
);
|
||||
name = "Build Support";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3F3FF9EA1BF7C64C004C89A1 /* Linked Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3F3FF9E81BF7C63A004C89A1 /* Hypervisor.framework */,
|
||||
);
|
||||
name = "Linked Frameworks";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3F3FFA1D1BF7C6A7004C89A1 /* src */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3F3FFA251BF7C6A7004C89A1 /* firmware */,
|
||||
3F3FFA401BF7C6A7004C89A1 /* vmm */,
|
||||
3F3FFA1E1BF7C6A7004C89A1 /* acpi.c */,
|
||||
3F3FFA1F1BF7C6A7004C89A1 /* acpitbl.c */,
|
||||
3F3FFA201BF7C6A7004C89A1 /* atkbdc.c */,
|
||||
3F3FFA211BF7C6A7004C89A1 /* block_if.c */,
|
||||
3F3FFA221BF7C6A7004C89A1 /* consport.c */,
|
||||
3F3FFA231BF7C6A7004C89A1 /* dbgport.c */,
|
||||
3F3FFA241BF7C6A7004C89A1 /* dsdt.asl */,
|
||||
3F3FFA281BF7C6A7004C89A1 /* inout.c */,
|
||||
3F3FFA291BF7C6A7004C89A1 /* ioapic.c */,
|
||||
3F3FFA2A1BF7C6A7004C89A1 /* md5c.c */,
|
||||
3F3FFA2B1BF7C6A7004C89A1 /* mem.c */,
|
||||
3F3FFA2C1BF7C6A7004C89A1 /* mevent.c */,
|
||||
3F3FFA2D1BF7C6A7004C89A1 /* mevent_test.c */,
|
||||
3F3FFA2E1BF7C6A7004C89A1 /* mptbl.c */,
|
||||
3F3FFA2F1BF7C6A7004C89A1 /* pci_ahci.c */,
|
||||
3F3FFA301BF7C6A7004C89A1 /* pci_emul.c */,
|
||||
3F3FFA311BF7C6A7004C89A1 /* pci_hostbridge.c */,
|
||||
3F3FFA321BF7C6A7004C89A1 /* pci_irq.c */,
|
||||
3F3FFA331BF7C6A7004C89A1 /* pci_lpc.c */,
|
||||
3F3FFA341BF7C6A7004C89A1 /* pci_uart.c */,
|
||||
3F3FFA351BF7C6A7004C89A1 /* pci_virtio_block.c */,
|
||||
3F3FFA361BF7C6A7004C89A1 /* pci_virtio_net_tap.c */,
|
||||
3F3FFA371BF7C6A7004C89A1 /* pci_virtio_net_vmnet.c */,
|
||||
3F3FFA381BF7C6A7004C89A1 /* pci_virtio_rnd.c */,
|
||||
3F3FFA391BF7C6A7004C89A1 /* pm.c */,
|
||||
3F3FFA3A1BF7C6A7004C89A1 /* post.c */,
|
||||
3F3FFA3B1BF7C6A7004C89A1 /* rtc.c */,
|
||||
3F3FFA3C1BF7C6A7004C89A1 /* smbiostbl.c */,
|
||||
3F3FFA3D1BF7C6A7004C89A1 /* task_switch.c */,
|
||||
3F3FFA3E1BF7C6A7004C89A1 /* uart_emul.c */,
|
||||
3F3FFA3F1BF7C6A7004C89A1 /* virtio.c */,
|
||||
3F3FFA5A1BF7C6A7004C89A1 /* xhyve.c */,
|
||||
3F3FFA5B1BF7C6A7004C89A1 /* xmsr.c */,
|
||||
);
|
||||
path = src;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3F3FFA251BF7C6A7004C89A1 /* firmware */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3F3FFA261BF7C6A7004C89A1 /* fbsd.c */,
|
||||
3F3FFA271BF7C6A7004C89A1 /* kexec.c */,
|
||||
);
|
||||
path = firmware;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3F3FFA401BF7C6A7004C89A1 /* vmm */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3F3FFA411BF7C6A7004C89A1 /* intel */,
|
||||
3F3FFA451BF7C6A7004C89A1 /* io */,
|
||||
3F3FFA4D1BF7C6A7004C89A1 /* vmm.c */,
|
||||
3F3FFA4E1BF7C6A7004C89A1 /* vmm_api.c */,
|
||||
3F3FFA4F1BF7C6A7004C89A1 /* vmm_callout.c */,
|
||||
3F3FFA501BF7C6A7004C89A1 /* vmm_host.c */,
|
||||
3F3FFA511BF7C6A7004C89A1 /* vmm_instruction_emul.c */,
|
||||
3F3FFA521BF7C6A7004C89A1 /* vmm_ioport.c */,
|
||||
3F3FFA531BF7C6A7004C89A1 /* vmm_lapic.c */,
|
||||
3F3FFA541BF7C6A7004C89A1 /* vmm_mem.c */,
|
||||
3F3FFA551BF7C6A7004C89A1 /* vmm_stat.c */,
|
||||
3F3FFA561BF7C6A7004C89A1 /* vmm_util.c */,
|
||||
3F3FFA571BF7C6A7004C89A1 /* x86.c */,
|
||||
);
|
||||
path = vmm;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3F3FFA411BF7C6A7004C89A1 /* intel */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3F3FFA421BF7C6A7004C89A1 /* vmcs.c */,
|
||||
3F3FFA431BF7C6A7004C89A1 /* vmx.c */,
|
||||
3F3FFA441BF7C6A7004C89A1 /* vmx_msr.c */,
|
||||
);
|
||||
path = intel;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3F3FFA451BF7C6A7004C89A1 /* io */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3F3FFA461BF7C6A7004C89A1 /* vatpic.c */,
|
||||
3F3FFA471BF7C6A7004C89A1 /* vatpit.c */,
|
||||
3F3FFA481BF7C6A7004C89A1 /* vhpet.c */,
|
||||
3F3FFA491BF7C6A7004C89A1 /* vioapic.c */,
|
||||
3F3FFA4A1BF7C6A7004C89A1 /* vlapic.c */,
|
||||
3F3FFA4B1BF7C6A7004C89A1 /* vpmtmr.c */,
|
||||
3F3FFA4C1BF7C6A7004C89A1 /* vrtc.c */,
|
||||
);
|
||||
path = io;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3F3FFA951BF7CBFF004C89A1 /* xcscripts */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3F3FFA961BF7CBFF004C89A1 /* version.sh */,
|
||||
);
|
||||
path = xcscripts;
|
||||
sourceTree = SOURCE_ROOT;
|
||||
};
|
||||
3FB6515A1BF7CD4500ED886F /* include */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3FB6515B1BF7CD4500ED886F /* xhyve */,
|
||||
);
|
||||
path = include;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3FB6515B1BF7CD4500ED886F /* xhyve */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3FB6515C1BF7CD4500ED886F /* acpi.h */,
|
||||
3FB6515D1BF7CD4500ED886F /* ahci.h */,
|
||||
3FB6515E1BF7CD4500ED886F /* block_if.h */,
|
||||
3FB6515F1BF7CD4500ED886F /* dbgport.h */,
|
||||
3FB651601BF7CD4500ED886F /* firmware */,
|
||||
3FB651631BF7CD4500ED886F /* inout.h */,
|
||||
3FB651641BF7CD4500ED886F /* ioapic.h */,
|
||||
3FB651651BF7CD4500ED886F /* mem.h */,
|
||||
3FB651661BF7CD4500ED886F /* mevent.h */,
|
||||
3FB651671BF7CD4500ED886F /* mptbl.h */,
|
||||
3FB651681BF7CD4500ED886F /* pci_emul.h */,
|
||||
3FB651691BF7CD4500ED886F /* pci_irq.h */,
|
||||
3FB6516A1BF7CD4500ED886F /* pci_lpc.h */,
|
||||
3FB6516B1BF7CD4500ED886F /* rtc.h */,
|
||||
3FB6516C1BF7CD4500ED886F /* smbiostbl.h */,
|
||||
3FB6516D1BF7CD4500ED886F /* support */,
|
||||
3FB651831BF7CD4500ED886F /* uart_emul.h */,
|
||||
3FB651841BF7CD4500ED886F /* virtio.h */,
|
||||
3FB651851BF7CD4500ED886F /* vmm */,
|
||||
3FB651A11BF7CD4500ED886F /* xhyve.h */,
|
||||
3FB651A21BF7CD4500ED886F /* xmsr.h */,
|
||||
);
|
||||
path = xhyve;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3FB651601BF7CD4500ED886F /* firmware */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3FB651611BF7CD4500ED886F /* fbsd.h */,
|
||||
3FB651621BF7CD4500ED886F /* kexec.h */,
|
||||
);
|
||||
path = firmware;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3FB6516D1BF7CD4500ED886F /* support */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3FB6516E1BF7CD4500ED886F /* acpi_hpet.h */,
|
||||
3FB6516F1BF7CD4500ED886F /* apicreg.h */,
|
||||
3FB651701BF7CD4500ED886F /* ata.h */,
|
||||
3FB651711BF7CD4500ED886F /* atomic.h */,
|
||||
3FB651721BF7CD4500ED886F /* bitset.h */,
|
||||
3FB651731BF7CD4500ED886F /* cpuset.h */,
|
||||
3FB651741BF7CD4500ED886F /* i8253reg.h */,
|
||||
3FB651751BF7CD4500ED886F /* i8259.h */,
|
||||
3FB651761BF7CD4500ED886F /* linker_set.h */,
|
||||
3FB651771BF7CD4500ED886F /* md5.h */,
|
||||
3FB651781BF7CD4500ED886F /* misc.h */,
|
||||
3FB651791BF7CD4500ED886F /* mptable.h */,
|
||||
3FB6517A1BF7CD4500ED886F /* ns16550.h */,
|
||||
3FB6517B1BF7CD4500ED886F /* pcireg.h */,
|
||||
3FB6517C1BF7CD4500ED886F /* psl.h */,
|
||||
3FB6517D1BF7CD4500ED886F /* rtc.h */,
|
||||
3FB6517E1BF7CD4500ED886F /* segments.h */,
|
||||
3FB6517F1BF7CD4500ED886F /* specialreg.h */,
|
||||
3FB651801BF7CD4500ED886F /* timerreg.h */,
|
||||
3FB651811BF7CD4500ED886F /* tree.h */,
|
||||
3FB651821BF7CD4500ED886F /* uuid.h */,
|
||||
);
|
||||
path = support;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3FB651851BF7CD4500ED886F /* vmm */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3FB651861BF7CD4500ED886F /* intel */,
|
||||
3FB6518B1BF7CD4500ED886F /* io */,
|
||||
3FB651941BF7CD4500ED886F /* vmm.h */,
|
||||
3FB651951BF7CD4500ED886F /* vmm_api.h */,
|
||||
3FB651961BF7CD4500ED886F /* vmm_callout.h */,
|
||||
3FB651971BF7CD4500ED886F /* vmm_common.h */,
|
||||
3FB651981BF7CD4500ED886F /* vmm_host.h */,
|
||||
3FB651991BF7CD4500ED886F /* vmm_instruction_emul.h */,
|
||||
3FB6519A1BF7CD4500ED886F /* vmm_ioport.h */,
|
||||
3FB6519B1BF7CD4500ED886F /* vmm_ktr.h */,
|
||||
3FB6519C1BF7CD4500ED886F /* vmm_lapic.h */,
|
||||
3FB6519D1BF7CD4500ED886F /* vmm_mem.h */,
|
||||
3FB6519E1BF7CD4500ED886F /* vmm_stat.h */,
|
||||
3FB6519F1BF7CD4500ED886F /* vmm_util.h */,
|
||||
3FB651A01BF7CD4500ED886F /* x86.h */,
|
||||
);
|
||||
path = vmm;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3FB651861BF7CD4500ED886F /* intel */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3FB651871BF7CD4500ED886F /* vmcs.h */,
|
||||
3FB651881BF7CD4500ED886F /* vmx.h */,
|
||||
3FB651891BF7CD4500ED886F /* vmx_controls.h */,
|
||||
3FB6518A1BF7CD4500ED886F /* vmx_msr.h */,
|
||||
);
|
||||
path = intel;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3FB6518B1BF7CD4500ED886F /* io */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3FB6518C1BF7CD4500ED886F /* vatpic.h */,
|
||||
3FB6518D1BF7CD4500ED886F /* vatpit.h */,
|
||||
3FB6518E1BF7CD4500ED886F /* vhpet.h */,
|
||||
3FB6518F1BF7CD4500ED886F /* vioapic.h */,
|
||||
3FB651901BF7CD4500ED886F /* vlapic.h */,
|
||||
3FB651911BF7CD4500ED886F /* vlapic_priv.h */,
|
||||
3FB651921BF7CD4500ED886F /* vpmtmr.h */,
|
||||
3FB651931BF7CD4500ED886F /* vrtc.h */,
|
||||
);
|
||||
path = io;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
3F1934911BF7C0D40099CC46 /* xhyve */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3F1934991BF7C0D40099CC46 /* Build configuration list for PBXNativeTarget "xhyve" */;
|
||||
buildPhases = (
|
||||
3F3FFA981BF7CC1F004C89A1 /* xhyve-version.h */,
|
||||
3F19348E1BF7C0D40099CC46 /* Sources */,
|
||||
3F19348F1BF7C0D40099CC46 /* Frameworks */,
|
||||
3F1934901BF7C0D40099CC46 /* Install Man Pages */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = xhyve;
|
||||
productName = xhyve;
|
||||
productReference = 3F1934921BF7C0D40099CC46 /* xhyve */;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
3F19348A1BF7C0D40099CC46 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0730;
|
||||
ORGANIZATIONNAME = "Jeremy Sequoia";
|
||||
TargetAttributes = {
|
||||
3F1934911BF7C0D40099CC46 = {
|
||||
CreatedOnToolsVersion = 7.3;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 3F19348D1BF7C0D40099CC46 /* Build configuration list for PBXProject "xhyve" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 3F1934891BF7C0D40099CC46;
|
||||
productRefGroup = 3F1934931BF7C0D40099CC46 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
3F1934911BF7C0D40099CC46 /* xhyve */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
3F3FFA981BF7CC1F004C89A1 /* xhyve-version.h */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "xhyve-version.h";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/bash;
|
||||
shellScript = "${SRCROOT}/xcscripts/version.sh";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
3F19348E1BF7C0D40099CC46 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
3F3FFA751BF7C6A7004C89A1 /* pm.c in Sources */,
|
||||
3F3FFA721BF7C6A7004C89A1 /* pci_virtio_net_tap.c in Sources */,
|
||||
3F3FFA6F1BF7C6A7004C89A1 /* pci_lpc.c in Sources */,
|
||||
3F3FFA7C1BF7C6A7004C89A1 /* vmcs.c in Sources */,
|
||||
3F3FFA851BF7C6A7004C89A1 /* vrtc.c in Sources */,
|
||||
3F3FFA921BF7C6A7004C89A1 /* xmsr.c in Sources */,
|
||||
3F3FFA7A1BF7C6A7004C89A1 /* uart_emul.c in Sources */,
|
||||
3F3FFA8A1BF7C6A7004C89A1 /* vmm_instruction_emul.c in Sources */,
|
||||
3F3FFA841BF7C6A7004C89A1 /* vpmtmr.c in Sources */,
|
||||
3F3FFA801BF7C6A7004C89A1 /* vatpit.c in Sources */,
|
||||
3F3FFA901BF7C6A7004C89A1 /* x86.c in Sources */,
|
||||
3F3FFA631BF7C6A7004C89A1 /* kexec.c in Sources */,
|
||||
3F3FFA5F1BF7C6A7004C89A1 /* block_if.c in Sources */,
|
||||
3F3FFA8E1BF7C6A7004C89A1 /* vmm_stat.c in Sources */,
|
||||
3F3FFA7F1BF7C6A7004C89A1 /* vatpic.c in Sources */,
|
||||
3F3FFA651BF7C6A7004C89A1 /* ioapic.c in Sources */,
|
||||
3F3FFA781BF7C6A7004C89A1 /* smbiostbl.c in Sources */,
|
||||
3F3FFA621BF7C6A7004C89A1 /* fbsd.c in Sources */,
|
||||
3F3FFA5E1BF7C6A7004C89A1 /* atkbdc.c in Sources */,
|
||||
3F3FFA661BF7C6A7004C89A1 /* md5c.c in Sources */,
|
||||
3F3FFA6C1BF7C6A7004C89A1 /* pci_emul.c in Sources */,
|
||||
3F3FFA701BF7C6A7004C89A1 /* pci_uart.c in Sources */,
|
||||
3F3FFA7E1BF7C6A7004C89A1 /* vmx_msr.c in Sources */,
|
||||
3F3FFA5D1BF7C6A7004C89A1 /* acpitbl.c in Sources */,
|
||||
3F3FFA641BF7C6A7004C89A1 /* inout.c in Sources */,
|
||||
3F3FFA771BF7C6A7004C89A1 /* rtc.c in Sources */,
|
||||
3F3FFA8B1BF7C6A7004C89A1 /* vmm_ioport.c in Sources */,
|
||||
3F3FFA671BF7C6A7004C89A1 /* mem.c in Sources */,
|
||||
3F3FFA8F1BF7C6A7004C89A1 /* vmm_util.c in Sources */,
|
||||
3F3FFA791BF7C6A7004C89A1 /* task_switch.c in Sources */,
|
||||
3F3FFA6B1BF7C6A7004C89A1 /* pci_ahci.c in Sources */,
|
||||
3F3FFA6E1BF7C6A7004C89A1 /* pci_irq.c in Sources */,
|
||||
3F3FFA8D1BF7C6A7004C89A1 /* vmm_mem.c in Sources */,
|
||||
3F3FFA7D1BF7C6A7004C89A1 /* vmx.c in Sources */,
|
||||
3F3FFA7B1BF7C6A7004C89A1 /* virtio.c in Sources */,
|
||||
3F3FFA611BF7C6A7004C89A1 /* dbgport.c in Sources */,
|
||||
3F3FFA6A1BF7C6A7004C89A1 /* mptbl.c in Sources */,
|
||||
3F3FFA6D1BF7C6A7004C89A1 /* pci_hostbridge.c in Sources */,
|
||||
3F3FFA881BF7C6A7004C89A1 /* vmm_callout.c in Sources */,
|
||||
3F3FFA811BF7C6A7004C89A1 /* vhpet.c in Sources */,
|
||||
3F3FFA861BF7C6A7004C89A1 /* vmm.c in Sources */,
|
||||
3F3FFA911BF7C6A7004C89A1 /* xhyve.c in Sources */,
|
||||
3F3FFA831BF7C6A7004C89A1 /* vlapic.c in Sources */,
|
||||
3F3FFA741BF7C6A7004C89A1 /* pci_virtio_rnd.c in Sources */,
|
||||
3F3FFA761BF7C6A7004C89A1 /* post.c in Sources */,
|
||||
3F3FFA601BF7C6A7004C89A1 /* consport.c in Sources */,
|
||||
3F3FFA681BF7C6A7004C89A1 /* mevent.c in Sources */,
|
||||
3F3FFA8C1BF7C6A7004C89A1 /* vmm_lapic.c in Sources */,
|
||||
3F3FFA731BF7C6A7004C89A1 /* pci_virtio_net_vmnet.c in Sources */,
|
||||
3F3FFA891BF7C6A7004C89A1 /* vmm_host.c in Sources */,
|
||||
3F3FFA821BF7C6A7004C89A1 /* vioapic.c in Sources */,
|
||||
3F3FFA711BF7C6A7004C89A1 /* pci_virtio_block.c in Sources */,
|
||||
3F3FFA871BF7C6A7004C89A1 /* vmm_api.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
3F1934971BF7C0D40099CC46 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 3F3FF9E21BF7C5D5004C89A1 /* common_debug.xcconfig */;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3F1934981BF7C0D40099CC46 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 3F3FF9E01BF7C5D5004C89A1 /* common.xcconfig */;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
3F19349A1BF7C0D40099CC46 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 3F3FF9E31BF7C5D5004C89A1 /* xhyve.xcconfig */;
|
||||
buildSettings = {
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3F19349B1BF7C0D40099CC46 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 3F3FF9E31BF7C5D5004C89A1 /* xhyve.xcconfig */;
|
||||
buildSettings = {
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
3F3FFA931BF7C7B1004C89A1 /* ASan */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 3F3FF9E11BF7C5D5004C89A1 /* common_asan.xcconfig */;
|
||||
buildSettings = {
|
||||
};
|
||||
name = ASan;
|
||||
};
|
||||
3F3FFA941BF7C7B1004C89A1 /* ASan */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 3F3FF9E31BF7C5D5004C89A1 /* xhyve.xcconfig */;
|
||||
buildSettings = {
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = ASan;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
3F19348D1BF7C0D40099CC46 /* Build configuration list for PBXProject "xhyve" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3F1934971BF7C0D40099CC46 /* Debug */,
|
||||
3F3FFA931BF7C7B1004C89A1 /* ASan */,
|
||||
3F1934981BF7C0D40099CC46 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
3F1934991BF7C0D40099CC46 /* Build configuration list for PBXNativeTarget "xhyve" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3F19349A1BF7C0D40099CC46 /* Debug */,
|
||||
3F3FFA941BF7C7B1004C89A1 /* ASan */,
|
||||
3F19349B1BF7C0D40099CC46 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 3F19348A1BF7C0D40099CC46 /* Project object */;
|
||||
}
|
Loading…
Add table
Reference in a new issue