diff --git a/work/qemu-1.4.0/bsd-user/arm/target_vmparam.h b/work/qemu-1.4.0/bsd-user/arm/target_vmparam.h index bc50fbb..19044e2 100644 --- a/work/qemu-1.4.0/bsd-user/arm/target_vmparam.h +++ b/work/qemu-1.4.0/bsd-user/arm/target_vmparam.h @@ -1,6 +1,9 @@ #ifndef _TARGET_VMPARAM_H_ #define _TARGET_VMPARAM_H_ +#define TARGET_HW_MACHINE "arm" +#define TARGET_HW_MACHINE_ARCH "armv6" + #if defined(__FreeBSD__) /* KERNBASE - 512 MB */ #define TARGET_VM_MAXUSER_ADDRESS (0xc0000000 - (512 * 1024 * 1024)) diff --git a/work/qemu-1.4.0/bsd-user/i386/target_vmparam.h b/work/qemu-1.4.0/bsd-user/i386/target_vmparam.h index ea7546c..78a03d0 100644 --- a/work/qemu-1.4.0/bsd-user/i386/target_vmparam.h +++ b/work/qemu-1.4.0/bsd-user/i386/target_vmparam.h @@ -1,6 +1,9 @@ #ifndef _TARGET_VMPARAM_H_ #define _TARGET_VMPARAM_H_ +#define TARGET_HW_MACHINE "i386" +#define TARGET_HW_MACHINE_ARCH "i386" + #if defined(__FreeBSD__) #define TARGET_USRSTACK (0xbfc00000) diff --git a/work/qemu-1.4.0/bsd-user/mips/target_vmparam.h b/work/qemu-1.4.0/bsd-user/mips/target_vmparam.h index 8abc26c..ee88974 100644 --- a/work/qemu-1.4.0/bsd-user/mips/target_vmparam.h +++ b/work/qemu-1.4.0/bsd-user/mips/target_vmparam.h @@ -1,6 +1,9 @@ #ifndef _TARGET_VMPARAM_H_ #define _TARGET_VMPARAM_H_ +#define TARGET_HW_MACHINE "mips" +#define TARGET_HW_MACHINE_ARCH "mips" + #if defined(__FreeBSD__) #define TARGET_VM_MINUSER_ADDRESS (0x00000000) #define TARGET_VM_MAXUSER_ADDRESS (0x80000000) diff --git a/work/qemu-1.4.0/bsd-user/mips64/target_vmparam.h b/work/qemu-1.4.0/bsd-user/mips64/target_vmparam.h index 55ed254..0cd8cd3 100644 --- a/work/qemu-1.4.0/bsd-user/mips64/target_vmparam.h +++ b/work/qemu-1.4.0/bsd-user/mips64/target_vmparam.h @@ -1,6 +1,9 @@ #ifndef _TARGET_VMPARAM_H_ #define _TARGET_VMPARAM_H_ +#define TARGET_HW_MACHINE "mips" +#define TARGET_HW_MACHINE_ARCH "mips64" + #if defined(__FreeBSD__) #define TARGET_VM_MINUSER_ADDRESS (0x0000000000000000UL) diff --git a/work/qemu-1.4.0/bsd-user/sparc/target_vmparam.h b/work/qemu-1.4.0/bsd-user/sparc/target_vmparam.h index 82c29ed..c91f611 100644 --- a/work/qemu-1.4.0/bsd-user/sparc/target_vmparam.h +++ b/work/qemu-1.4.0/bsd-user/sparc/target_vmparam.h @@ -1,6 +1,9 @@ #ifndef _TARGET_VMPARAM_H_ #define _TARGET_VMPARAM_H_ +#define TARGET_HW_MACHINE "sparc" +#define TARGET_HW_MACHINE_ARCH "sparc" + #ifdef __FreeBSD__ struct target_ps_strings { abi_ulong ps_argvstr; diff --git a/work/qemu-1.4.0/bsd-user/sparc64/target_vmparam.h b/work/qemu-1.4.0/bsd-user/sparc64/target_vmparam.h index 7f2b464..a24b80e 100644 --- a/work/qemu-1.4.0/bsd-user/sparc64/target_vmparam.h +++ b/work/qemu-1.4.0/bsd-user/sparc64/target_vmparam.h @@ -1,6 +1,9 @@ #ifndef _TARGET_VMPARAM_H_ #define _TARGET_VMPARAM_H_ +#define TARGET_HW_MACHINE "sparc" +#define TARGET_HW_MACHINE_ARCH "sparc64" + #if defined(__FreeBSD__) #define TARGET_VM_MINUSER_ADDRESS (0x0000000000000000UL) #define TARGET_VM_MAXUSER_ADDRESS (0x000007fe00000000UL) diff --git a/work/qemu-1.4.0/bsd-user/syscall.c b/work/qemu-1.4.0/bsd-user/syscall.c index 697cb46..1328caa 100644 --- a/work/qemu-1.4.0/bsd-user/syscall.c +++ b/work/qemu-1.4.0/bsd-user/syscall.c @@ -568,6 +568,22 @@ static abi_long do_freebsd_sysctl(abi_ulong namep, int32_t namelen, abi_ulong ol } break; + case CTL_HW: + switch(snamep[1]) { + case HW_MACHINE: + strlcpy(holdp, TARGET_HW_MACHINE, oldlen); + ret = 0; + goto out; + + case HW_MACHINE_ARCH: + strlcpy(holdp, TARGET_HW_MACHINE_ARCH, oldlen); + ret = 0; + goto out; + + default: + break; + } + default: break; } diff --git a/work/qemu-1.4.0/bsd-user/x86_64/target_vmparam.h b/work/qemu-1.4.0/bsd-user/x86_64/target_vmparam.h index ff9f534..47e35cf 100644 --- a/work/qemu-1.4.0/bsd-user/x86_64/target_vmparam.h +++ b/work/qemu-1.4.0/bsd-user/x86_64/target_vmparam.h @@ -1,6 +1,9 @@ #ifndef _TARGET_VMPARAM_H_ #define _TARGET_VMPARAM_H_ +#define TARGET_HW_MACHINE "amd64" +#define TARGET_HW_MACHINE_ARCH "amd64" + #if defined(__FreeBSD__) #define TARGET_VM_MAXUSER_ADDRESS (0x0000800000000000UL)