mirror of https://github.com/xqemu/xqemu.git
Support for DragonFly BSD (Hasso Tepper)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6746 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
9399f095bd
commit
c5e97233e8
|
@ -29,7 +29,7 @@
|
|||
#ifndef _WIN32
|
||||
#ifdef __sun__
|
||||
#define _POSIX_PTHREAD_SEMANTICS 1
|
||||
#elif defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||
#elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
#include <pthread.h>
|
||||
#endif
|
||||
#include <signal.h>
|
||||
|
|
|
@ -63,6 +63,11 @@
|
|||
#include <sys/dkio.h>
|
||||
#endif
|
||||
|
||||
#ifdef __DragonFly__
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/diskslice.h>
|
||||
#endif
|
||||
|
||||
//#define DEBUG_FLOPPY
|
||||
|
||||
//#define DEBUG_BLOCK
|
||||
|
@ -762,6 +767,15 @@ static int64_t raw_getlength(BlockDriverState *bs)
|
|||
if (!fstat(fd, &sb) && (S_IFCHR & sb.st_mode)) {
|
||||
#ifdef DIOCGMEDIASIZE
|
||||
if (ioctl(fd, DIOCGMEDIASIZE, (off_t *)&size))
|
||||
#elif defined(DIOCGPART)
|
||||
{
|
||||
struct partinfo pi;
|
||||
if (ioctl(fd, DIOCGPART, &pi) == 0)
|
||||
size = pi.media_size;
|
||||
else
|
||||
size = 0;
|
||||
}
|
||||
if (size == 0)
|
||||
#endif
|
||||
#ifdef CONFIG_COCOA
|
||||
size = LONG_LONG_MAX;
|
||||
|
|
2
block.c
2
block.c
|
@ -35,8 +35,10 @@
|
|||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/ioctl.h>
|
||||
#ifndef __DragonFly__
|
||||
#include <sys/disk.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define SECTOR_BITS 9
|
||||
#define SECTOR_SIZE (1 << SECTOR_BITS)
|
||||
|
|
|
@ -229,6 +229,15 @@ if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
|
|||
kqemu="yes"
|
||||
fi
|
||||
;;
|
||||
DragonFly)
|
||||
bsd="yes"
|
||||
audio_drv_list="oss"
|
||||
audio_possible_drivers="oss sdl esd pa"
|
||||
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
|
||||
kqemu="yes"
|
||||
fi
|
||||
aio="no"
|
||||
;;
|
||||
NetBSD)
|
||||
bsd="yes"
|
||||
audio_drv_list="oss"
|
||||
|
|
2
exec.c
2
exec.c
|
@ -454,7 +454,7 @@ static void code_gen_alloc(unsigned long tb_size)
|
|||
exit(1);
|
||||
}
|
||||
}
|
||||
#elif defined(__FreeBSD__)
|
||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
{
|
||||
int flags;
|
||||
void *addr = NULL;
|
||||
|
|
2
net.c
2
net.c
|
@ -54,7 +54,7 @@
|
|||
#include <sys/select.h>
|
||||
#ifdef _BSD
|
||||
#include <sys/stat.h>
|
||||
#ifdef __FreeBSD__
|
||||
#if defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
#include <libutil.h>
|
||||
#else
|
||||
#include <util.h>
|
||||
|
|
4
osdep.c
4
osdep.c
|
@ -92,7 +92,7 @@ static void *kqemu_vmalloc(size_t size)
|
|||
void *ptr;
|
||||
|
||||
/* no need (?) for a dummy file on OpenBSD/FreeBSD */
|
||||
#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||
#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
int map_anon = MAP_ANON;
|
||||
#else
|
||||
int map_anon = 0;
|
||||
|
@ -159,7 +159,7 @@ static void *kqemu_vmalloc(size_t size)
|
|||
}
|
||||
size = (size + 4095) & ~4095;
|
||||
ftruncate(phys_ram_fd, phys_ram_size + size);
|
||||
#endif /* !(__OpenBSD__ || __FreeBSD__) */
|
||||
#endif /* !(__OpenBSD__ || __FreeBSD__ || __DragonFly__) */
|
||||
ptr = mmap(NULL,
|
||||
size,
|
||||
PROT_WRITE | PROT_READ, map_anon | MAP_SHARED,
|
||||
|
|
14
qemu-char.c
14
qemu-char.c
|
@ -67,6 +67,10 @@
|
|||
#include <libutil.h>
|
||||
#include <dev/ppbus/ppi.h>
|
||||
#include <dev/ppbus/ppbconf.h>
|
||||
#elif defined(__DragonFly__)
|
||||
#include <libutil.h>
|
||||
#include <dev/misc/ppi/ppi.h>
|
||||
#include <bus/ppbus/ppbconf.h>
|
||||
#else
|
||||
#include <util.h>
|
||||
#endif
|
||||
|
@ -806,7 +810,7 @@ void cfmakeraw (struct termios *termios_p)
|
|||
#endif
|
||||
|
||||
#if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \
|
||||
|| defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
|| defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
|
||||
typedef struct {
|
||||
int fd;
|
||||
|
@ -934,7 +938,7 @@ static CharDriverState *qemu_chr_open_pty(void)
|
|||
PtyCharDriver *s;
|
||||
struct termios tty;
|
||||
int slave_fd, len;
|
||||
#if defined(__OpenBSD__)
|
||||
#if defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
char pty_name[PATH_MAX];
|
||||
#define q_ptsname(x) pty_name
|
||||
#else
|
||||
|
@ -1280,7 +1284,7 @@ static CharDriverState *qemu_chr_open_pp(const char *filename)
|
|||
}
|
||||
#endif /* __linux__ */
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
#if defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
static int pp_ioctl(CharDriverState *chr, int cmd, void *arg)
|
||||
{
|
||||
int fd = (int)chr->opaque;
|
||||
|
@ -2153,13 +2157,13 @@ CharDriverState *qemu_chr_open(const char *label, const char *filename, void (*i
|
|||
if (strstart(filename, "/dev/parport", NULL)) {
|
||||
chr = qemu_chr_open_pp(filename);
|
||||
} else
|
||||
#elif defined(__FreeBSD__)
|
||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
if (strstart(filename, "/dev/ppi", NULL)) {
|
||||
chr = qemu_chr_open_pp(filename);
|
||||
} else
|
||||
#endif
|
||||
#if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \
|
||||
|| defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
|| defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
if (strstart(filename, "/dev/", NULL)) {
|
||||
chr = qemu_chr_open_tty(filename);
|
||||
} else
|
||||
|
|
2
savevm.c
2
savevm.c
|
@ -54,7 +54,7 @@
|
|||
#include <sys/select.h>
|
||||
#ifdef _BSD
|
||||
#include <sys/stat.h>
|
||||
#ifdef __FreeBSD__
|
||||
#if defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
#include <libutil.h>
|
||||
#else
|
||||
#include <util.h>
|
||||
|
|
10
usb-bsd.c
10
usb-bsd.c
|
@ -34,7 +34,11 @@
|
|||
#undef USB_SPEED_LOW
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
#ifndef __DragonFly__
|
||||
#include <dev/usb/usb.h>
|
||||
#else
|
||||
#include <bus/usb/usb.h>
|
||||
#endif
|
||||
#include <signal.h>
|
||||
|
||||
/* This value has maximum potential at 16.
|
||||
|
@ -68,7 +72,7 @@ static int ensure_ep_open(USBHostDevice *dev, int ep, int mode)
|
|||
ep = UE_GET_ADDR(ep);
|
||||
|
||||
if (dev->ep_fd[ep] < 0) {
|
||||
#ifdef __FreeBSD__
|
||||
#if defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
snprintf(buf, sizeof(buf) - 1, "%s.%d", dev->devpath, ep);
|
||||
#else
|
||||
snprintf(buf, sizeof(buf) - 1, "%s.%02d", dev->devpath, ep);
|
||||
|
@ -321,7 +325,7 @@ USBDevice *usb_host_device_open(const char *devname)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
#if defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
snprintf(ctlpath, PATH_MAX, "/dev/%s", bus_info.udi_devnames[0]);
|
||||
#else
|
||||
snprintf(ctlpath, PATH_MAX, "/dev/%s.00", bus_info.udi_devnames[0]);
|
||||
|
@ -411,7 +415,7 @@ static int usb_host_scan(void *opaque, USBScanFunc *func)
|
|||
if (strncmp(bus_info.udi_devnames[0], "ugen", 4) != 0)
|
||||
continue;
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
#if defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
snprintf(devbuf, sizeof(devbuf) - 1, "/dev/%s", bus_info.udi_devnames[0]);
|
||||
#else
|
||||
snprintf(devbuf, sizeof(devbuf) - 1, "/dev/%s.00", bus_info.udi_devnames[0]);
|
||||
|
|
8
vl.c
8
vl.c
|
@ -55,7 +55,7 @@
|
|||
#include <sys/select.h>
|
||||
#ifdef _BSD
|
||||
#include <sys/stat.h>
|
||||
#ifdef __FreeBSD__
|
||||
#if defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
#include <libutil.h>
|
||||
#else
|
||||
#include <util.h>
|
||||
|
@ -759,7 +759,8 @@ static int use_rt_clock;
|
|||
static void init_get_clock(void)
|
||||
{
|
||||
use_rt_clock = 0;
|
||||
#if defined(__linux__) || (defined(__FreeBSD__) && __FreeBSD_version >= 500000)
|
||||
#if defined(__linux__) || (defined(__FreeBSD__) && __FreeBSD_version >= 500000) \
|
||||
|| defined(__DragonFly__)
|
||||
{
|
||||
struct timespec ts;
|
||||
if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) {
|
||||
|
@ -771,7 +772,8 @@ static void init_get_clock(void)
|
|||
|
||||
static int64_t get_clock(void)
|
||||
{
|
||||
#if defined(__linux__) || (defined(__FreeBSD__) && __FreeBSD_version >= 500000)
|
||||
#if defined(__linux__) || (defined(__FreeBSD__) && __FreeBSD_version >= 500000) \
|
||||
|| defined(__DragonFly__)
|
||||
if (use_rt_clock) {
|
||||
struct timespec ts;
|
||||
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||
|
|
Loading…
Reference in New Issue