Add support for GNU/kFreeBSD
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
		
							parent
							
								
									3098b9fde9
								
							
						
					
					
						commit
						a167ba5085
					
				|  | @ -51,7 +51,7 @@ | |||
| #include <linux/cdrom.h> | ||||
| #include <linux/fd.h> | ||||
| #endif | ||||
| #ifdef __FreeBSD__ | ||||
| #if defined (__FreeBSD__) || defined(__FreeBSD_kernel__) | ||||
| #include <signal.h> | ||||
| #include <sys/disk.h> | ||||
| #include <sys/cdio.h> | ||||
|  | @ -124,7 +124,7 @@ typedef struct BDRVRawState { | |||
| static int fd_open(BlockDriverState *bs); | ||||
| static int64_t raw_getlength(BlockDriverState *bs); | ||||
| 
 | ||||
| #if defined(__FreeBSD__) | ||||
| #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) | ||||
| static int cdrom_reopen(BlockDriverState *bs); | ||||
| #endif | ||||
| 
 | ||||
|  | @ -636,7 +636,7 @@ static int64_t  raw_getlength(BlockDriverState *bs) | |||
|     int64_t size; | ||||
| #ifdef CONFIG_BSD | ||||
|     struct stat sb; | ||||
| #ifdef __FreeBSD__ | ||||
| #if defined (__FreeBSD__) || defined(__FreeBSD_kernel__) | ||||
|     int reopened = 0; | ||||
| #endif | ||||
| #endif | ||||
|  | @ -651,7 +651,7 @@ static int64_t  raw_getlength(BlockDriverState *bs) | |||
|         return ret; | ||||
| 
 | ||||
| #ifdef CONFIG_BSD | ||||
| #ifdef __FreeBSD__ | ||||
| #if defined (__FreeBSD__) || defined(__FreeBSD_kernel__) | ||||
| again: | ||||
| #endif | ||||
|     if (!fstat(fd, &sb) && (S_IFCHR & sb.st_mode)) { | ||||
|  | @ -672,7 +672,7 @@ again: | |||
| #else | ||||
|         size = lseek(fd, 0LL, SEEK_END); | ||||
| #endif | ||||
| #ifdef __FreeBSD__ | ||||
| #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) | ||||
|         switch(s->type) { | ||||
|         case FTYPE_CD: | ||||
|             /* XXX FreeBSD acd returns UINT_MAX sectors for an empty drive */ | ||||
|  | @ -957,7 +957,7 @@ static BlockDriverAIOCB *hdev_aio_ioctl(BlockDriverState *bs, | |||
|     return paio_ioctl(bs, s->fd, req, buf, cb, opaque); | ||||
| } | ||||
| 
 | ||||
| #elif defined(__FreeBSD__) | ||||
| #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) | ||||
| static int fd_open(BlockDriverState *bs) | ||||
| { | ||||
|     BDRVRawState *s = bs->opaque; | ||||
|  | @ -1213,7 +1213,7 @@ static BlockDriver bdrv_host_cdrom = { | |||
| }; | ||||
| #endif /* __linux__ */ | ||||
| 
 | ||||
| #ifdef __FreeBSD__ | ||||
| #if defined (__FreeBSD__) || defined(__FreeBSD_kernel__) | ||||
| static int cdrom_open(BlockDriverState *bs, const char *filename, int flags) | ||||
| { | ||||
|     BDRVRawState *s = bs->opaque; | ||||
|  | @ -1342,7 +1342,7 @@ static void bdrv_raw_init(void) | |||
|     bdrv_register(&bdrv_host_floppy); | ||||
|     bdrv_register(&bdrv_host_cdrom); | ||||
| #endif | ||||
| #ifdef __FreeBSD__ | ||||
| #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) | ||||
|     bdrv_register(&bdrv_host_cdrom); | ||||
| #endif | ||||
| } | ||||
|  |  | |||
|  | @ -255,27 +255,32 @@ MINGW32*) | |||
|   audio_drv_list="winwave" | ||||
| ;; | ||||
| GNU/kFreeBSD) | ||||
|   bsd="yes" | ||||
|   audio_drv_list="oss" | ||||
|   audio_possible_drivers="oss sdl esd pa" | ||||
| ;; | ||||
| FreeBSD) | ||||
|   bsd="yes" | ||||
|   make="gmake" | ||||
|   audio_drv_list="oss" | ||||
|   audio_possible_drivers="oss sdl esd pa" | ||||
| ;; | ||||
| DragonFly) | ||||
|   bsd="yes" | ||||
|   make="gmake" | ||||
|   audio_drv_list="oss" | ||||
|   audio_possible_drivers="oss sdl esd pa" | ||||
| ;; | ||||
| NetBSD) | ||||
|   bsd="yes" | ||||
|   make="gmake" | ||||
|   audio_drv_list="oss" | ||||
|   audio_possible_drivers="oss sdl esd" | ||||
|   oss_lib="-lossaudio" | ||||
| ;; | ||||
| OpenBSD) | ||||
|   bsd="yes" | ||||
|   make="gmake" | ||||
|   audio_drv_list="oss" | ||||
|   audio_possible_drivers="oss sdl esd" | ||||
|   oss_lib="-lossaudio" | ||||
|  | @ -360,7 +365,6 @@ esac | |||
| 
 | ||||
| if [ "$bsd" = "yes" ] ; then | ||||
|   if [ "$darwin" != "yes" ] ; then | ||||
|     make="gmake" | ||||
|     usb="bsd" | ||||
|   fi | ||||
|   bsd_user="yes" | ||||
|  |  | |||
							
								
								
									
										2
									
								
								exec.c
								
								
								
								
							
							
						
						
									
										2
									
								
								exec.c
								
								
								
								
							|  | @ -463,7 +463,7 @@ static void code_gen_alloc(unsigned long tb_size) | |||
|             exit(1); | ||||
|         } | ||||
|     } | ||||
| #elif defined(__FreeBSD__) || defined(__DragonFly__) | ||||
| #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) | ||||
|     { | ||||
|         int flags; | ||||
|         void *addr = NULL; | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ | |||
| void set_float_rounding_mode(int val STATUS_PARAM) | ||||
| { | ||||
|     STATUS(float_rounding_mode) = val; | ||||
| #if defined(CONFIG_BSD) && !defined(__APPLE__) ||         \ | ||||
| #if (defined(CONFIG_BSD) && !defined(__APPLE__) && !defined(__GLIBC__)) || \ | ||||
|     (defined(CONFIG_SOLARIS) && CONFIG_SOLARIS_VERSION < 10) | ||||
|     fpsetround(val); | ||||
| #elif defined(__arm__) | ||||
|  |  | |||
|  | @ -1,7 +1,8 @@ | |||
| /* Native implementation of soft float functions */ | ||||
| #include <math.h> | ||||
| 
 | ||||
| #if (defined(CONFIG_BSD) && !defined(__APPLE__)) || defined(CONFIG_SOLARIS) | ||||
| #if (defined(CONFIG_BSD) && !defined(__APPLE__) && !defined(__GLIBC__)) \ | ||||
|     || defined(CONFIG_SOLARIS) | ||||
| #include <ieeefp.h> | ||||
| #define fabsf(f) ((float)fabs(f)) | ||||
| #else | ||||
|  | @ -112,7 +113,8 @@ typedef union { | |||
| /*----------------------------------------------------------------------------
 | ||||
| | Software IEC/IEEE floating-point rounding mode. | ||||
| *----------------------------------------------------------------------------*/ | ||||
| #if (defined(CONFIG_BSD) && !defined(__APPLE__)) || defined(CONFIG_SOLARIS) | ||||
| #if (defined(CONFIG_BSD) && !defined(__APPLE__) && !defined(__GLIBC__)) \ | ||||
|     || defined(CONFIG_SOLARIS) | ||||
| #if defined(__OpenBSD__) | ||||
| #define FE_RM FP_RM | ||||
| #define FE_RP FP_RP | ||||
|  |  | |||
							
								
								
									
										5
									
								
								net.c
								
								
								
								
							
							
						
						
									
										5
									
								
								net.c
								
								
								
								
							|  | @ -48,14 +48,11 @@ | |||
| #include <sys/select.h> | ||||
| #ifdef CONFIG_BSD | ||||
| #include <sys/stat.h> | ||||
| #if defined(__FreeBSD__) || defined(__DragonFly__) | ||||
| #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) | ||||
| #include <libutil.h> | ||||
| #else | ||||
| #include <util.h> | ||||
| #endif | ||||
| #elif defined (__GLIBC__) && defined (__FreeBSD_kernel__) | ||||
| #include <freebsd/stdlib.h> | ||||
| #else | ||||
| #ifdef __linux__ | ||||
| #include <pty.h> | ||||
| #include <malloc.h> | ||||
|  |  | |||
|  | @ -30,14 +30,11 @@ | |||
| #include <net/if_tap.h> | ||||
| #endif | ||||
| 
 | ||||
| #if defined(__FreeBSD__) || defined(__DragonFly__) | ||||
| #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) | ||||
| #include <libutil.h> | ||||
| #else | ||||
| #include <util.h> | ||||
| #endif | ||||
| #if defined (__GLIBC__) && defined (__FreeBSD_kernel__) | ||||
| #include <freebsd/stdlib.h> | ||||
| #endif | ||||
| 
 | ||||
| #if defined(__OpenBSD__) | ||||
| #include <util.h> | ||||
|  | @ -49,7 +46,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr, int vnet_hdr_required | |||
|     char *dev; | ||||
|     struct stat s; | ||||
| 
 | ||||
| #ifdef __FreeBSD__ | ||||
| #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) | ||||
|     /* if no ifname is given, always start the search from tap0. */ | ||||
|     int i; | ||||
|     char dname[100]; | ||||
|  |  | |||
							
								
								
									
										19
									
								
								qemu-char.c
								
								
								
								
							
							
						
						
									
										19
									
								
								qemu-char.c
								
								
								
								
							|  | @ -57,10 +57,13 @@ | |||
| #include <sys/select.h> | ||||
| #ifdef CONFIG_BSD | ||||
| #include <sys/stat.h> | ||||
| #ifdef __FreeBSD__ | ||||
| #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) | ||||
| #include <libutil.h> | ||||
| #include <dev/ppbus/ppi.h> | ||||
| #include <dev/ppbus/ppbconf.h> | ||||
| #if defined(__GLIBC__) | ||||
| #include <pty.h> | ||||
| #endif | ||||
| #elif defined(__DragonFly__) | ||||
| #include <libutil.h> | ||||
| #include <dev/misc/ppi/ppi.h> | ||||
|  | @ -68,9 +71,6 @@ | |||
| #else | ||||
| #include <util.h> | ||||
| #endif | ||||
| #elif defined (__GLIBC__) && defined (__FreeBSD_kernel__) | ||||
| #include <freebsd/stdlib.h> | ||||
| #else | ||||
| #ifdef __linux__ | ||||
| #include <pty.h> | ||||
| 
 | ||||
|  | @ -820,7 +820,8 @@ static void cfmakeraw (struct termios *termios_p) | |||
| #endif | ||||
| 
 | ||||
| #if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \ | ||||
|     || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) | ||||
|     || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) \ | ||||
|     || defined(__GLIBC__) | ||||
| 
 | ||||
| typedef struct { | ||||
|     int fd; | ||||
|  | @ -1336,7 +1337,7 @@ static CharDriverState *qemu_chr_open_pp(QemuOpts *opts) | |||
| } | ||||
| #endif /* __linux__ */ | ||||
| 
 | ||||
| #if defined(__FreeBSD__) || defined(__DragonFly__) | ||||
| #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) | ||||
| static int pp_ioctl(CharDriverState *chr, int cmd, void *arg) | ||||
| { | ||||
|     int fd = (int)chr->opaque; | ||||
|  | @ -2380,10 +2381,12 @@ static const struct { | |||
|     { .name = "braille",   .open = chr_baum_init }, | ||||
| #endif | ||||
| #if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \ | ||||
|     || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) | ||||
|     || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) \ | ||||
|     || defined(__FreeBSD_kernel__) | ||||
|     { .name = "tty",       .open = qemu_chr_open_tty }, | ||||
| #endif | ||||
| #if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__) | ||||
| #if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__) \ | ||||
|     || defined(__FreeBSD_kernel__) | ||||
|     { .name = "parport",   .open = qemu_chr_open_pp }, | ||||
| #endif | ||||
| }; | ||||
|  |  | |||
							
								
								
									
										5
									
								
								savevm.c
								
								
								
								
							
							
						
						
									
										5
									
								
								savevm.c
								
								
								
								
							|  | @ -48,14 +48,11 @@ | |||
| #include <sys/select.h> | ||||
| #ifdef CONFIG_BSD | ||||
| #include <sys/stat.h> | ||||
| #if defined(__FreeBSD__) || defined(__DragonFly__) | ||||
| #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) | ||||
| #include <libutil.h> | ||||
| #else | ||||
| #include <util.h> | ||||
| #endif | ||||
| #elif defined (__GLIBC__) && defined (__FreeBSD_kernel__) | ||||
| #include <freebsd/stdlib.h> | ||||
| #else | ||||
| #ifdef __linux__ | ||||
| #include <pty.h> | ||||
| #include <malloc.h> | ||||
|  |  | |||
|  | @ -335,7 +335,7 @@ USBDevice *usb_host_device_open(const char *devname) | |||
|         return NULL; | ||||
|     } | ||||
| 
 | ||||
| #if defined(__FreeBSD__) || defined(__DragonFly__) | ||||
| #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || 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]); | ||||
|  | @ -437,7 +437,7 @@ static int usb_host_scan(void *opaque, USBScanFunc *func) | |||
|             if (strncmp(bus_info.udi_devnames[0], "ugen", 4) != 0) | ||||
|                 continue; | ||||
| 
 | ||||
| #if defined(__FreeBSD__) || defined(__DragonFly__) | ||||
| #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || 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]); | ||||
|  |  | |||
							
								
								
									
										9
									
								
								vl.c
								
								
								
								
							
							
						
						
									
										9
									
								
								vl.c
								
								
								
								
							|  | @ -50,14 +50,11 @@ | |||
| #include <sys/select.h> | ||||
| #ifdef CONFIG_BSD | ||||
| #include <sys/stat.h> | ||||
| #if defined(__FreeBSD__) || defined(__DragonFly__) | ||||
| #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) | ||||
| #include <libutil.h> | ||||
| #else | ||||
| #include <util.h> | ||||
| #endif | ||||
| #elif defined (__GLIBC__) && defined (__FreeBSD_kernel__) | ||||
| #include <freebsd/stdlib.h> | ||||
| #else | ||||
| #ifdef __linux__ | ||||
| #include <pty.h> | ||||
| #include <malloc.h> | ||||
|  | @ -569,7 +566,7 @@ static void init_get_clock(void) | |||
| { | ||||
|     use_rt_clock = 0; | ||||
| #if defined(__linux__) || (defined(__FreeBSD__) && __FreeBSD_version >= 500000) \ | ||||
|     || defined(__DragonFly__) | ||||
|     || defined(__DragonFly__) || defined(__FreeBSD_kernel__) | ||||
|     { | ||||
|         struct timespec ts; | ||||
|         if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) { | ||||
|  | @ -582,7 +579,7 @@ static void init_get_clock(void) | |||
| static int64_t get_clock(void) | ||||
| { | ||||
| #if defined(__linux__) || (defined(__FreeBSD__) && __FreeBSD_version >= 500000) \ | ||||
| 	|| defined(__DragonFly__) | ||||
| 	|| defined(__DragonFly__) || defined(__FreeBSD_kernel__) | ||||
|     if (use_rt_clock) { | ||||
|         struct timespec ts; | ||||
|         clock_gettime(CLOCK_MONOTONIC, &ts); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Aurelien Jarno
						Aurelien Jarno