Date: Thu, 03 Jan 2002 16:05:25 -0500 From: Daniel Eischen <eischen@vigrid.com> To: alpha@FreeBSD.org Subject: {get,set,make,swap}context for alpha Message-ID: <3C34C795.74B2B09C@vigrid.com>
next in thread | raw e-mail | index | archive | help
I've got *context implemented and working for i386, but need some help getting them to work on the alpha. Anyone here care to give it a try? You can get them from: http://people.freebsd.org/~deischen/ucontext/uc-libc-sys.diffs http://people.freebsd.org/~deischen/ucontext/uc-i386-standalone.tgz http://people.freebsd.org/~deischen/ucontext/uc-alpha-standalone.tgz The standalone tarballs contain a makefile, the source, and a test program so you don't have to patch your source tree and rebuild libc to test these functions. Just do the following: $ cd /tmp $ fetch http://people.freebsd.org/~deischen/ucontext/uc-alpha-standalone.tgz $ tar -xzvf uc-alpha-standalone.tgz $ cd alpha $ make $ ./test_context The first problem I'm having is that getcontext is getting caught in an infinite loop. After the call to sigprocmask, the return value is checked and the next branch instruction doesn't jump to the label; it jumps to a few instructions prior and repeats all over again. ... CALL(_sigprocmask) /* see what's blocked */ mov s0, a0 /* restore ptr to ucontext */ --> beq v0, Lgc2 /* check for error */ ldiq v0, -1 /* return -1 */ br Lgcend Lgc2: ... For more information on what *context are suppose to do, see: http://www.opengroup.org/onlinepubs/7908799/xsh/ucontext.h.html I don't subscribe to this list, so please keep me on the CC list. Thanks, -- Dan Eischen To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3C34C795.74B2B09C>