From: <mic...@us...> - 2007-04-23 17:11:39
|
Revision: 87 http://svn.sourceforge.net/pearcolator/?rev=87&view=rev Author: michael_baer Date: 2007-04-23 10:10:21 -0700 (Mon, 23 Apr 2007) Log Message: ----------- Testing a new way of accessing structs in system calls Modified Paths: -------------- src/org/binarytranslator/generic/os/abi/linux/LinuxSystemCalls.java Modified: src/org/binarytranslator/generic/os/abi/linux/LinuxSystemCalls.java =================================================================== --- src/org/binarytranslator/generic/os/abi/linux/LinuxSystemCalls.java 2007-04-23 16:37:12 UTC (rev 86) +++ src/org/binarytranslator/generic/os/abi/linux/LinuxSystemCalls.java 2007-04-23 17:10:21 UTC (rev 87) @@ -27,6 +27,9 @@ /** Allows access to the system call's arguments */ private LinuxSystemCallGenerator.CallArgumentIterator arguments; + + /** Allows access to a number of operating-system specific structures. */ + private LinuxStructureFactory structures; /** * Maximum number of system calls @@ -154,6 +157,8 @@ files.add(System.in); files.add(System.out); files.add(System.err); + + structures = new LinuxStructureFactory(); } /** @@ -756,6 +761,12 @@ public class SysFstat64 extends SystemCall { public void doSysCall() { + int fd = arguments.nextInt(); + + LinuxStructureFactory.stat64 buf = structures.new_stat64(); + buf.read(src.getProcessSpace().memory, arguments.nextInt()); + + System.out.println(buf.toString()); } } @@ -795,6 +806,7 @@ domainName = localhostString.substring(index + 1); hostName = localhostString.substring(0,index); } + // Fill in utsname struct - see /usr/include/sys/utsname.h memoryWriteString (addr, getSysName()); // sysname memoryWriteString (addr+65, hostName); // nodename This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |