From Msim

Revision as of 19:42, 4 January 2010 by Jloew (Talk | contribs)
Jump to: navigation, search

This page refers to the changes made in the 3.0.14 release of M-sim.

Release Date:


EIO Handler

File Table

Pipes are now handled (somewhat) in the file tables (sockets are still not well supported). Pipes are identified using "FE_PIPE" in file_table.h.

#define FE_PIPE				0x00010

Additional functionality has been added: copy_from(...) allows a file table to be copied from one context to another - this is needed for forking.

		void copy_from(const file_table_t & rhs);

dup2(...) is used to implement the dup2 system call.

		md_gpr_t dup2(unsigned int handle_old, unsigned int handle_new);

insert(...) adds a file descriptor (using its real value) into the file table with an associated name. This is used with pipe to give the file descriptors to a context.

		void insert(md_gpr_t fd, std::string name);

closeall() is used when a process terminates to close all of its open files.

		void closeall();

Fixed a bug in file_table_t::opener(...). simulated_fd should not be set to temp, this could cause duplicate simulated file descriptors to occur (this should not be a problem in a single threaded, non-forking simulation).

Personal tools