From owner-freebsd-hackers Tue Aug 24 12:41:17 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from root.moose.ca (cpu1042.adsl.bellglobal.com [207.236.110.23]) by hub.freebsd.org (Postfix) with ESMTP id 9E4E415216 for ; Tue, 24 Aug 1999 12:41:10 -0700 (PDT) (envelope-from orignal@root.moose.ca) Received: from localhost (orignal@localhost) by root.moose.ca (8.9.3/8.9.3) with SMTP id PAA04314 for ; Tue, 24 Aug 1999 15:36:27 -0400 Date: Tue, 24 Aug 1999 15:36:24 -0400 (EDT) From: Orignal X-Sender: orignal@root To: hackers@freebsd.org Subject: Stopped syscall Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Gurus: Here's the scenario: I'd like to be able to stop a process, call it (PID 42) (or put it to sleep) while it is in kernel mode on a syscall and wake it up later. The wakeup would be effected when another process (my own, let's call it GO) traps to the kernel and tells it (through a function in a KLD) to let (PID 42) proceed or refuse it. The sleep channel for the procs put to sleep (in this manner) would be unique to every proc. 1). If it is to proceed, where/how might I find the syscall args of the original syscall PID 42 (presumably the u area). Is this in the sysentvec? 2) How do I go about restarting the process (in kernel mode) where it (PID 42) left off and within it's own context, allowing the syscall to complete (without, of course, letting it get back to userland)? I imagine that I would need to temporarily restore the process context for (PID 42), allow the syscall to complete and then restore the GO process syscall context so that I can return to userland. After letting the syscall for PID 42 complete, I imagine that I would nedd to make it setrunnable. If this is a completely stupid setup, please send flames via private mail. Thanks! Orig To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message