The interface frysk.proc.TaskObserver.Syscall defines: /** * The Task is entering a system call. Return Action.BLOCK to * block the task's further execution. */ Action updateSyscallEnter (Task task); /** * The task is exiting a system call. Return Action.BLOCK to * block the task's further execution. */ Action updateSyscallExit (Task task); /** * XXX: The task is involved in a syscall. Enter or exit, who can say? */ Action updateSyscallXXX (Task task); but only generates the last one. The frysk core should track and notify the client separatly of system call entry and exit.
Changes have been checked in to provide bubbling up of the syscall event type. Changes are still required in the kernel to provide this information to the frysk core. 2005-11-07 Jeff Johnston <jjohnstn@redhat.com> * SyscallEventInfo.java (ENTRY, EXIT, UNKNOWN): New constants. * Task.java (performSyscalled): Add additional syscallType parameter. * TaskState.java (processPerformSyscalled): Ditto. * TestLib.java: Change Wait.Observer classes to add additional parameter to syscallEvent member functions. * LinuxHost.java: Add additional parameter to Wait.Observer syscallEvent member function. * TestSyscall2.java: Lower repetition count to 5000 so test doesn't fail due to time limitation. 2005-11-07 Jeff Johnston <jjohnstn@redhat.com> * Wait.java (syscallEvent): Add new syscall event type parameter. * cni/Wait.cxx (processStatus): For a syscall event, indicate the event type is unknown.
Last change has been reverted and model has been switched to use state transitioning in the task. The use of updateSyscallXXX interface has been removed and the updateSyscallEnter and updateSyscallExit interfaces are now being driven by TaskState notification. Tests involving syscall have been modified appropriately.