Page MenuHomeFreeBSD

Removed unused special fork() implementations.
ClosedPublic

Authored by brooks on May 19 2015, 6:20 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Nov 24, 11:10 PM
Unknown Object (File)
Sun, Nov 24, 10:00 PM
Unknown Object (File)
Sun, Nov 24, 7:49 PM
Unknown Object (File)
Sun, Nov 24, 11:49 AM
Unknown Object (File)
Sun, Nov 24, 8:03 AM
Unknown Object (File)
Sun, Nov 24, 5:14 AM
Unknown Object (File)
Sat, Nov 23, 9:19 PM
Unknown Object (File)
Sat, Nov 23, 4:57 AM
Subscribers

Details

Summary

The arm version hasn't been used in ages.

The mips version uses a valid, but pointless check of v1 and has been
unhooked from the build since r276630.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

brooks retitled this revision from to Removed unused special fork() implementations..
brooks updated this object.
brooks edited the test plan for this revision. (Show Details)
brooks added reviewers: imp, andrew.

The custom assembly for MIPS is designed to support this behavior (from a comment in Ovfork.S):

* v1 == 0 in parent process, v1 == 1 in child process.
* v0 == pid of child in parent, v0 == pid of parent in child.

FreeBSD's kernel actually implements (i.e. v0 is 0 not the ppid in the child)

/*
 * Set up return-value registers as fork() libc stub expects.
 */
td2->td_frame->v0 = 0;
td2->td_frame->v1 = 1;
td2->td_frame->a3 = 0;
emaste edited edge metadata.

Seems fine

This revision is now accepted and ready to land.May 29 2015, 7:33 PM
This revision was automatically updated to reflect the committed changes.