Date: Sun, 21 Dec 2008 00:45:12 +0100 (CET) From: Juergen Lock <nox@jelal.kn-bremen.de> To: blauwirbel@gmail.com Cc: freebsd-emulation@freebsd.org, qemu-devel@nongnu.org Subject: Re: [Qemu-devel] testing qemu svn r6082 on FreeBSD - virtio-net, hpet, vmmouse/vga, got bsd-user to build, and an updated version of the FreeBSD -clock dynticks patch Message-ID: <200812202345.mBKNjCUm055346@saturn.kn-bremen.de> In-Reply-To: <f43fc5580812201321u6478cb85qa33a7bb2ec4e9038@mail.gmail.com> References: <20081218231724.GA17338@saturn.kn-bremen.de>
next in thread | previous in thread | raw e-mail | index | archive | help
In article <f43fc5580812201321u6478cb85qa33a7bb2ec4e9038@mail.gmail.com> you write: >On 12/19/08, Juergen Lock <nox@jelal.kn-bremen.de> wrote: >> +#elif defined(__FreeBSD__) >> +# include <sys/ucontext.h> >> + >> +# define RIP_sig(context) (*((unsigned long*)&(context)->uc_mcontext.mc_rip)) >> +# define TRAP_sig(context) ((context)->uc_mcontext.mc_trapno) >> +# define ERROR_sig(context) ((context)->uc_mcontext.mc_err) >> #else >> #define QEMU_UC_MCONTEXT_GREGS(uc, reg) (uc)->uc_mcontext.gregs[(reg)] >> #define QEMU_UC_MACHINE_PC(uc) QEMU_UC_MCONTEXT_GREGS(uc, REG_RIP) > >> +#ifdef __FreeBSD__ >> + pc = RIP_sig(uc); >> + return handle_cpu_signal(pc, (unsigned long)info->si_addr, >> + TRAP_sig(uc) == 0xe ? >> + (ERROR_sig(uc) >> 1) & 1 : 0, >> + &uc->uc_sigmask, puc); >> +#else >> pc = QEMU_UC_MACHINE_PC(uc); >> return handle_cpu_signal(pc, (unsigned long)info->si_addr, >> QEMU_UC_MCONTEXT_GREGS(uc, REG_TRAPNO) == 0xe ? >> (QEMU_UC_MCONTEXT_GREGS(uc, REG_ERR) >> 1) & 1 : 0, >> &uc->uc_sigmask, puc); >> +#endif > >The idea here was that all OS define macros with same names so that >the code below does not get any more complex. Maybe the GREGS macro >was too generic, and should be replaced with one that only returns the >trap and error values. > Yeah I was too lazy to figure out the preprocessor magic needed to get the GREGS way working so I simply reused the macros from the i386 case. :) >> And finally the updated dynticks patch: > >This looks OK, please submit separately. OK will do. Thanx, Juergen
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812202345.mBKNjCUm055346>