3.0.14

From Msim

(Difference between revisions)
Jump to: navigation, search
m
Line 7: Line 7:
== EIO Handler ==
== 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).

Revision as of 19:42, 4 January 2010

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

Release Date:

Syscalls

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