Throughout change TTY_* to PTY_*, tty_* to pty_*, and ttym_* to ptmx_*.
* devices.cc: Regenerate. * dtable.cc: (fh_alloc): Preserve /dev/tty name when that's what we opened. (build_fh_pc): Preserve any existing name. * fhandler.cc (fhandler_base::open_with_arch): Ditto. * fhandler_tty.cc (fhandler_pty_master::fhandler_pty_master): Force the name to /dev/ptmx while preserving other pty master device information. * path.h (cfree_maybe): New macro. (path_conv::operator =): Free any allocated strings in target. (path_conv::free_strings): Delete unused function. * sigproc.cc (proc_terminate): Remove previous accommodation for execed processes since it didn't have the desired effect. Change comment to a FIXME. * spawn.cc (chExeced): Mark NO_COPY. (exe_suffixes): Ditto.
This commit is contained in:
parent
aa982024d1
commit
38d732a152
@ -1,3 +1,24 @@
|
|||||||
|
2011-10-20 Christopher Faylor <me.cygwin2011@cgf.cx>
|
||||||
|
|
||||||
|
Throughout change TTY_* to PTY_*, tty_* to pty_*, and ttym_* to ptmx_*.
|
||||||
|
* devices.cc: Regenerate.
|
||||||
|
* dtable.cc: (fh_alloc): Preserve /dev/tty name when that's what we
|
||||||
|
opened.
|
||||||
|
(build_fh_pc): Preserve any existing name.
|
||||||
|
* fhandler.cc (fhandler_base::open_with_arch): Ditto.
|
||||||
|
* fhandler_tty.cc (fhandler_pty_master::fhandler_pty_master): Force the
|
||||||
|
name to /dev/ptmx while preserving other pty master device information.
|
||||||
|
* path.h (cfree_maybe): New macro.
|
||||||
|
(path_conv::operator =): Free any allocated strings in target.
|
||||||
|
(path_conv::free_strings): Delete unused function.
|
||||||
|
|
||||||
|
* sigproc.cc (proc_terminate): Remove previous accommodation for execed
|
||||||
|
processes since it didn't have the desired effect. Change comment to a
|
||||||
|
FIXME.
|
||||||
|
|
||||||
|
* spawn.cc (chExeced): Mark NO_COPY.
|
||||||
|
(exe_suffixes): Ditto.
|
||||||
|
|
||||||
2011-10-20 Corinna Vinschen <corinna@vinschen.de>
|
2011-10-20 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* syscalls.cc (try_to_bin): Improve debug output.
|
* syscalls.cc (try_to_bin): Improve debug output.
|
||||||
|
@ -307,134 +307,134 @@ static const device dev_storage[] =
|
|||||||
{"/dev/pipe", BRACK(FH_PIPE), "/dev/pipe"},
|
{"/dev/pipe", BRACK(FH_PIPE), "/dev/pipe"},
|
||||||
{"/dev/port", BRACK(FH_PORT), "/dev/port"},
|
{"/dev/port", BRACK(FH_PORT), "/dev/port"},
|
||||||
{"/dev/ptmx", BRACK(FH_PTMX), "/dev/ptmx"},
|
{"/dev/ptmx", BRACK(FH_PTMX), "/dev/ptmx"},
|
||||||
{"/dev/pty0", BRACK(FHDEV(DEV_TTYS_MAJOR, 0)), "/dev/pty0"},
|
{"/dev/pty0", BRACK(FHDEV(DEV_PTYS_MAJOR, 0)), "/dev/pty0"},
|
||||||
{"/dev/pty1", BRACK(FHDEV(DEV_TTYS_MAJOR, 1)), "/dev/pty1"},
|
{"/dev/pty1", BRACK(FHDEV(DEV_PTYS_MAJOR, 1)), "/dev/pty1"},
|
||||||
{"/dev/pty2", BRACK(FHDEV(DEV_TTYS_MAJOR, 2)), "/dev/pty2"},
|
{"/dev/pty2", BRACK(FHDEV(DEV_PTYS_MAJOR, 2)), "/dev/pty2"},
|
||||||
{"/dev/pty3", BRACK(FHDEV(DEV_TTYS_MAJOR, 3)), "/dev/pty3"},
|
{"/dev/pty3", BRACK(FHDEV(DEV_PTYS_MAJOR, 3)), "/dev/pty3"},
|
||||||
{"/dev/pty4", BRACK(FHDEV(DEV_TTYS_MAJOR, 4)), "/dev/pty4"},
|
{"/dev/pty4", BRACK(FHDEV(DEV_PTYS_MAJOR, 4)), "/dev/pty4"},
|
||||||
{"/dev/pty5", BRACK(FHDEV(DEV_TTYS_MAJOR, 5)), "/dev/pty5"},
|
{"/dev/pty5", BRACK(FHDEV(DEV_PTYS_MAJOR, 5)), "/dev/pty5"},
|
||||||
{"/dev/pty6", BRACK(FHDEV(DEV_TTYS_MAJOR, 6)), "/dev/pty6"},
|
{"/dev/pty6", BRACK(FHDEV(DEV_PTYS_MAJOR, 6)), "/dev/pty6"},
|
||||||
{"/dev/pty7", BRACK(FHDEV(DEV_TTYS_MAJOR, 7)), "/dev/pty7"},
|
{"/dev/pty7", BRACK(FHDEV(DEV_PTYS_MAJOR, 7)), "/dev/pty7"},
|
||||||
{"/dev/pty8", BRACK(FHDEV(DEV_TTYS_MAJOR, 8)), "/dev/pty8"},
|
{"/dev/pty8", BRACK(FHDEV(DEV_PTYS_MAJOR, 8)), "/dev/pty8"},
|
||||||
{"/dev/pty9", BRACK(FHDEV(DEV_TTYS_MAJOR, 9)), "/dev/pty9"},
|
{"/dev/pty9", BRACK(FHDEV(DEV_PTYS_MAJOR, 9)), "/dev/pty9"},
|
||||||
{"/dev/pty10", BRACK(FHDEV(DEV_TTYS_MAJOR, 10)), "/dev/pty10"},
|
{"/dev/pty10", BRACK(FHDEV(DEV_PTYS_MAJOR, 10)), "/dev/pty10"},
|
||||||
{"/dev/pty11", BRACK(FHDEV(DEV_TTYS_MAJOR, 11)), "/dev/pty11"},
|
{"/dev/pty11", BRACK(FHDEV(DEV_PTYS_MAJOR, 11)), "/dev/pty11"},
|
||||||
{"/dev/pty12", BRACK(FHDEV(DEV_TTYS_MAJOR, 12)), "/dev/pty12"},
|
{"/dev/pty12", BRACK(FHDEV(DEV_PTYS_MAJOR, 12)), "/dev/pty12"},
|
||||||
{"/dev/pty13", BRACK(FHDEV(DEV_TTYS_MAJOR, 13)), "/dev/pty13"},
|
{"/dev/pty13", BRACK(FHDEV(DEV_PTYS_MAJOR, 13)), "/dev/pty13"},
|
||||||
{"/dev/pty14", BRACK(FHDEV(DEV_TTYS_MAJOR, 14)), "/dev/pty14"},
|
{"/dev/pty14", BRACK(FHDEV(DEV_PTYS_MAJOR, 14)), "/dev/pty14"},
|
||||||
{"/dev/pty15", BRACK(FHDEV(DEV_TTYS_MAJOR, 15)), "/dev/pty15"},
|
{"/dev/pty15", BRACK(FHDEV(DEV_PTYS_MAJOR, 15)), "/dev/pty15"},
|
||||||
{"/dev/pty16", BRACK(FHDEV(DEV_TTYS_MAJOR, 16)), "/dev/pty16"},
|
{"/dev/pty16", BRACK(FHDEV(DEV_PTYS_MAJOR, 16)), "/dev/pty16"},
|
||||||
{"/dev/pty17", BRACK(FHDEV(DEV_TTYS_MAJOR, 17)), "/dev/pty17"},
|
{"/dev/pty17", BRACK(FHDEV(DEV_PTYS_MAJOR, 17)), "/dev/pty17"},
|
||||||
{"/dev/pty18", BRACK(FHDEV(DEV_TTYS_MAJOR, 18)), "/dev/pty18"},
|
{"/dev/pty18", BRACK(FHDEV(DEV_PTYS_MAJOR, 18)), "/dev/pty18"},
|
||||||
{"/dev/pty19", BRACK(FHDEV(DEV_TTYS_MAJOR, 19)), "/dev/pty19"},
|
{"/dev/pty19", BRACK(FHDEV(DEV_PTYS_MAJOR, 19)), "/dev/pty19"},
|
||||||
{"/dev/pty20", BRACK(FHDEV(DEV_TTYS_MAJOR, 20)), "/dev/pty20"},
|
{"/dev/pty20", BRACK(FHDEV(DEV_PTYS_MAJOR, 20)), "/dev/pty20"},
|
||||||
{"/dev/pty21", BRACK(FHDEV(DEV_TTYS_MAJOR, 21)), "/dev/pty21"},
|
{"/dev/pty21", BRACK(FHDEV(DEV_PTYS_MAJOR, 21)), "/dev/pty21"},
|
||||||
{"/dev/pty22", BRACK(FHDEV(DEV_TTYS_MAJOR, 22)), "/dev/pty22"},
|
{"/dev/pty22", BRACK(FHDEV(DEV_PTYS_MAJOR, 22)), "/dev/pty22"},
|
||||||
{"/dev/pty23", BRACK(FHDEV(DEV_TTYS_MAJOR, 23)), "/dev/pty23"},
|
{"/dev/pty23", BRACK(FHDEV(DEV_PTYS_MAJOR, 23)), "/dev/pty23"},
|
||||||
{"/dev/pty24", BRACK(FHDEV(DEV_TTYS_MAJOR, 24)), "/dev/pty24"},
|
{"/dev/pty24", BRACK(FHDEV(DEV_PTYS_MAJOR, 24)), "/dev/pty24"},
|
||||||
{"/dev/pty25", BRACK(FHDEV(DEV_TTYS_MAJOR, 25)), "/dev/pty25"},
|
{"/dev/pty25", BRACK(FHDEV(DEV_PTYS_MAJOR, 25)), "/dev/pty25"},
|
||||||
{"/dev/pty26", BRACK(FHDEV(DEV_TTYS_MAJOR, 26)), "/dev/pty26"},
|
{"/dev/pty26", BRACK(FHDEV(DEV_PTYS_MAJOR, 26)), "/dev/pty26"},
|
||||||
{"/dev/pty27", BRACK(FHDEV(DEV_TTYS_MAJOR, 27)), "/dev/pty27"},
|
{"/dev/pty27", BRACK(FHDEV(DEV_PTYS_MAJOR, 27)), "/dev/pty27"},
|
||||||
{"/dev/pty28", BRACK(FHDEV(DEV_TTYS_MAJOR, 28)), "/dev/pty28"},
|
{"/dev/pty28", BRACK(FHDEV(DEV_PTYS_MAJOR, 28)), "/dev/pty28"},
|
||||||
{"/dev/pty29", BRACK(FHDEV(DEV_TTYS_MAJOR, 29)), "/dev/pty29"},
|
{"/dev/pty29", BRACK(FHDEV(DEV_PTYS_MAJOR, 29)), "/dev/pty29"},
|
||||||
{"/dev/pty30", BRACK(FHDEV(DEV_TTYS_MAJOR, 30)), "/dev/pty30"},
|
{"/dev/pty30", BRACK(FHDEV(DEV_PTYS_MAJOR, 30)), "/dev/pty30"},
|
||||||
{"/dev/pty31", BRACK(FHDEV(DEV_TTYS_MAJOR, 31)), "/dev/pty31"},
|
{"/dev/pty31", BRACK(FHDEV(DEV_PTYS_MAJOR, 31)), "/dev/pty31"},
|
||||||
{"/dev/pty32", BRACK(FHDEV(DEV_TTYS_MAJOR, 32)), "/dev/pty32"},
|
{"/dev/pty32", BRACK(FHDEV(DEV_PTYS_MAJOR, 32)), "/dev/pty32"},
|
||||||
{"/dev/pty33", BRACK(FHDEV(DEV_TTYS_MAJOR, 33)), "/dev/pty33"},
|
{"/dev/pty33", BRACK(FHDEV(DEV_PTYS_MAJOR, 33)), "/dev/pty33"},
|
||||||
{"/dev/pty34", BRACK(FHDEV(DEV_TTYS_MAJOR, 34)), "/dev/pty34"},
|
{"/dev/pty34", BRACK(FHDEV(DEV_PTYS_MAJOR, 34)), "/dev/pty34"},
|
||||||
{"/dev/pty35", BRACK(FHDEV(DEV_TTYS_MAJOR, 35)), "/dev/pty35"},
|
{"/dev/pty35", BRACK(FHDEV(DEV_PTYS_MAJOR, 35)), "/dev/pty35"},
|
||||||
{"/dev/pty36", BRACK(FHDEV(DEV_TTYS_MAJOR, 36)), "/dev/pty36"},
|
{"/dev/pty36", BRACK(FHDEV(DEV_PTYS_MAJOR, 36)), "/dev/pty36"},
|
||||||
{"/dev/pty37", BRACK(FHDEV(DEV_TTYS_MAJOR, 37)), "/dev/pty37"},
|
{"/dev/pty37", BRACK(FHDEV(DEV_PTYS_MAJOR, 37)), "/dev/pty37"},
|
||||||
{"/dev/pty38", BRACK(FHDEV(DEV_TTYS_MAJOR, 38)), "/dev/pty38"},
|
{"/dev/pty38", BRACK(FHDEV(DEV_PTYS_MAJOR, 38)), "/dev/pty38"},
|
||||||
{"/dev/pty39", BRACK(FHDEV(DEV_TTYS_MAJOR, 39)), "/dev/pty39"},
|
{"/dev/pty39", BRACK(FHDEV(DEV_PTYS_MAJOR, 39)), "/dev/pty39"},
|
||||||
{"/dev/pty40", BRACK(FHDEV(DEV_TTYS_MAJOR, 40)), "/dev/pty40"},
|
{"/dev/pty40", BRACK(FHDEV(DEV_PTYS_MAJOR, 40)), "/dev/pty40"},
|
||||||
{"/dev/pty41", BRACK(FHDEV(DEV_TTYS_MAJOR, 41)), "/dev/pty41"},
|
{"/dev/pty41", BRACK(FHDEV(DEV_PTYS_MAJOR, 41)), "/dev/pty41"},
|
||||||
{"/dev/pty42", BRACK(FHDEV(DEV_TTYS_MAJOR, 42)), "/dev/pty42"},
|
{"/dev/pty42", BRACK(FHDEV(DEV_PTYS_MAJOR, 42)), "/dev/pty42"},
|
||||||
{"/dev/pty43", BRACK(FHDEV(DEV_TTYS_MAJOR, 43)), "/dev/pty43"},
|
{"/dev/pty43", BRACK(FHDEV(DEV_PTYS_MAJOR, 43)), "/dev/pty43"},
|
||||||
{"/dev/pty44", BRACK(FHDEV(DEV_TTYS_MAJOR, 44)), "/dev/pty44"},
|
{"/dev/pty44", BRACK(FHDEV(DEV_PTYS_MAJOR, 44)), "/dev/pty44"},
|
||||||
{"/dev/pty45", BRACK(FHDEV(DEV_TTYS_MAJOR, 45)), "/dev/pty45"},
|
{"/dev/pty45", BRACK(FHDEV(DEV_PTYS_MAJOR, 45)), "/dev/pty45"},
|
||||||
{"/dev/pty46", BRACK(FHDEV(DEV_TTYS_MAJOR, 46)), "/dev/pty46"},
|
{"/dev/pty46", BRACK(FHDEV(DEV_PTYS_MAJOR, 46)), "/dev/pty46"},
|
||||||
{"/dev/pty47", BRACK(FHDEV(DEV_TTYS_MAJOR, 47)), "/dev/pty47"},
|
{"/dev/pty47", BRACK(FHDEV(DEV_PTYS_MAJOR, 47)), "/dev/pty47"},
|
||||||
{"/dev/pty48", BRACK(FHDEV(DEV_TTYS_MAJOR, 48)), "/dev/pty48"},
|
{"/dev/pty48", BRACK(FHDEV(DEV_PTYS_MAJOR, 48)), "/dev/pty48"},
|
||||||
{"/dev/pty49", BRACK(FHDEV(DEV_TTYS_MAJOR, 49)), "/dev/pty49"},
|
{"/dev/pty49", BRACK(FHDEV(DEV_PTYS_MAJOR, 49)), "/dev/pty49"},
|
||||||
{"/dev/pty50", BRACK(FHDEV(DEV_TTYS_MAJOR, 50)), "/dev/pty50"},
|
{"/dev/pty50", BRACK(FHDEV(DEV_PTYS_MAJOR, 50)), "/dev/pty50"},
|
||||||
{"/dev/pty51", BRACK(FHDEV(DEV_TTYS_MAJOR, 51)), "/dev/pty51"},
|
{"/dev/pty51", BRACK(FHDEV(DEV_PTYS_MAJOR, 51)), "/dev/pty51"},
|
||||||
{"/dev/pty52", BRACK(FHDEV(DEV_TTYS_MAJOR, 52)), "/dev/pty52"},
|
{"/dev/pty52", BRACK(FHDEV(DEV_PTYS_MAJOR, 52)), "/dev/pty52"},
|
||||||
{"/dev/pty53", BRACK(FHDEV(DEV_TTYS_MAJOR, 53)), "/dev/pty53"},
|
{"/dev/pty53", BRACK(FHDEV(DEV_PTYS_MAJOR, 53)), "/dev/pty53"},
|
||||||
{"/dev/pty54", BRACK(FHDEV(DEV_TTYS_MAJOR, 54)), "/dev/pty54"},
|
{"/dev/pty54", BRACK(FHDEV(DEV_PTYS_MAJOR, 54)), "/dev/pty54"},
|
||||||
{"/dev/pty55", BRACK(FHDEV(DEV_TTYS_MAJOR, 55)), "/dev/pty55"},
|
{"/dev/pty55", BRACK(FHDEV(DEV_PTYS_MAJOR, 55)), "/dev/pty55"},
|
||||||
{"/dev/pty56", BRACK(FHDEV(DEV_TTYS_MAJOR, 56)), "/dev/pty56"},
|
{"/dev/pty56", BRACK(FHDEV(DEV_PTYS_MAJOR, 56)), "/dev/pty56"},
|
||||||
{"/dev/pty57", BRACK(FHDEV(DEV_TTYS_MAJOR, 57)), "/dev/pty57"},
|
{"/dev/pty57", BRACK(FHDEV(DEV_PTYS_MAJOR, 57)), "/dev/pty57"},
|
||||||
{"/dev/pty58", BRACK(FHDEV(DEV_TTYS_MAJOR, 58)), "/dev/pty58"},
|
{"/dev/pty58", BRACK(FHDEV(DEV_PTYS_MAJOR, 58)), "/dev/pty58"},
|
||||||
{"/dev/pty59", BRACK(FHDEV(DEV_TTYS_MAJOR, 59)), "/dev/pty59"},
|
{"/dev/pty59", BRACK(FHDEV(DEV_PTYS_MAJOR, 59)), "/dev/pty59"},
|
||||||
{"/dev/pty60", BRACK(FHDEV(DEV_TTYS_MAJOR, 60)), "/dev/pty60"},
|
{"/dev/pty60", BRACK(FHDEV(DEV_PTYS_MAJOR, 60)), "/dev/pty60"},
|
||||||
{"/dev/pty61", BRACK(FHDEV(DEV_TTYS_MAJOR, 61)), "/dev/pty61"},
|
{"/dev/pty61", BRACK(FHDEV(DEV_PTYS_MAJOR, 61)), "/dev/pty61"},
|
||||||
{"/dev/pty62", BRACK(FHDEV(DEV_TTYS_MAJOR, 62)), "/dev/pty62"},
|
{"/dev/pty62", BRACK(FHDEV(DEV_PTYS_MAJOR, 62)), "/dev/pty62"},
|
||||||
{"/dev/pty63", BRACK(FHDEV(DEV_TTYS_MAJOR, 63)), "/dev/pty63"},
|
{"/dev/pty63", BRACK(FHDEV(DEV_PTYS_MAJOR, 63)), "/dev/pty63"},
|
||||||
{"/dev/ptym0", BRACK(FHDEV(DEV_TTYM_MAJOR, 0)), "/dev/ptym0"},
|
{"/dev/ptym0", BRACK(FHDEV(DEV_PTYM_MAJOR, 0)), "/dev/ptym0"},
|
||||||
{"/dev/ptym1", BRACK(FHDEV(DEV_TTYM_MAJOR, 1)), "/dev/ptym1"},
|
{"/dev/ptym1", BRACK(FHDEV(DEV_PTYM_MAJOR, 1)), "/dev/ptym1"},
|
||||||
{"/dev/ptym2", BRACK(FHDEV(DEV_TTYM_MAJOR, 2)), "/dev/ptym2"},
|
{"/dev/ptym2", BRACK(FHDEV(DEV_PTYM_MAJOR, 2)), "/dev/ptym2"},
|
||||||
{"/dev/ptym3", BRACK(FHDEV(DEV_TTYM_MAJOR, 3)), "/dev/ptym3"},
|
{"/dev/ptym3", BRACK(FHDEV(DEV_PTYM_MAJOR, 3)), "/dev/ptym3"},
|
||||||
{"/dev/ptym4", BRACK(FHDEV(DEV_TTYM_MAJOR, 4)), "/dev/ptym4"},
|
{"/dev/ptym4", BRACK(FHDEV(DEV_PTYM_MAJOR, 4)), "/dev/ptym4"},
|
||||||
{"/dev/ptym5", BRACK(FHDEV(DEV_TTYM_MAJOR, 5)), "/dev/ptym5"},
|
{"/dev/ptym5", BRACK(FHDEV(DEV_PTYM_MAJOR, 5)), "/dev/ptym5"},
|
||||||
{"/dev/ptym6", BRACK(FHDEV(DEV_TTYM_MAJOR, 6)), "/dev/ptym6"},
|
{"/dev/ptym6", BRACK(FHDEV(DEV_PTYM_MAJOR, 6)), "/dev/ptym6"},
|
||||||
{"/dev/ptym7", BRACK(FHDEV(DEV_TTYM_MAJOR, 7)), "/dev/ptym7"},
|
{"/dev/ptym7", BRACK(FHDEV(DEV_PTYM_MAJOR, 7)), "/dev/ptym7"},
|
||||||
{"/dev/ptym8", BRACK(FHDEV(DEV_TTYM_MAJOR, 8)), "/dev/ptym8"},
|
{"/dev/ptym8", BRACK(FHDEV(DEV_PTYM_MAJOR, 8)), "/dev/ptym8"},
|
||||||
{"/dev/ptym9", BRACK(FHDEV(DEV_TTYM_MAJOR, 9)), "/dev/ptym9"},
|
{"/dev/ptym9", BRACK(FHDEV(DEV_PTYM_MAJOR, 9)), "/dev/ptym9"},
|
||||||
{"/dev/ptym10", BRACK(FHDEV(DEV_TTYM_MAJOR, 10)), "/dev/ptym10"},
|
{"/dev/ptym10", BRACK(FHDEV(DEV_PTYM_MAJOR, 10)), "/dev/ptym10"},
|
||||||
{"/dev/ptym11", BRACK(FHDEV(DEV_TTYM_MAJOR, 11)), "/dev/ptym11"},
|
{"/dev/ptym11", BRACK(FHDEV(DEV_PTYM_MAJOR, 11)), "/dev/ptym11"},
|
||||||
{"/dev/ptym12", BRACK(FHDEV(DEV_TTYM_MAJOR, 12)), "/dev/ptym12"},
|
{"/dev/ptym12", BRACK(FHDEV(DEV_PTYM_MAJOR, 12)), "/dev/ptym12"},
|
||||||
{"/dev/ptym13", BRACK(FHDEV(DEV_TTYM_MAJOR, 13)), "/dev/ptym13"},
|
{"/dev/ptym13", BRACK(FHDEV(DEV_PTYM_MAJOR, 13)), "/dev/ptym13"},
|
||||||
{"/dev/ptym14", BRACK(FHDEV(DEV_TTYM_MAJOR, 14)), "/dev/ptym14"},
|
{"/dev/ptym14", BRACK(FHDEV(DEV_PTYM_MAJOR, 14)), "/dev/ptym14"},
|
||||||
{"/dev/ptym15", BRACK(FHDEV(DEV_TTYM_MAJOR, 15)), "/dev/ptym15"},
|
{"/dev/ptym15", BRACK(FHDEV(DEV_PTYM_MAJOR, 15)), "/dev/ptym15"},
|
||||||
{"/dev/ptym16", BRACK(FHDEV(DEV_TTYM_MAJOR, 16)), "/dev/ptym16"},
|
{"/dev/ptym16", BRACK(FHDEV(DEV_PTYM_MAJOR, 16)), "/dev/ptym16"},
|
||||||
{"/dev/ptym17", BRACK(FHDEV(DEV_TTYM_MAJOR, 17)), "/dev/ptym17"},
|
{"/dev/ptym17", BRACK(FHDEV(DEV_PTYM_MAJOR, 17)), "/dev/ptym17"},
|
||||||
{"/dev/ptym18", BRACK(FHDEV(DEV_TTYM_MAJOR, 18)), "/dev/ptym18"},
|
{"/dev/ptym18", BRACK(FHDEV(DEV_PTYM_MAJOR, 18)), "/dev/ptym18"},
|
||||||
{"/dev/ptym19", BRACK(FHDEV(DEV_TTYM_MAJOR, 19)), "/dev/ptym19"},
|
{"/dev/ptym19", BRACK(FHDEV(DEV_PTYM_MAJOR, 19)), "/dev/ptym19"},
|
||||||
{"/dev/ptym20", BRACK(FHDEV(DEV_TTYM_MAJOR, 20)), "/dev/ptym20"},
|
{"/dev/ptym20", BRACK(FHDEV(DEV_PTYM_MAJOR, 20)), "/dev/ptym20"},
|
||||||
{"/dev/ptym21", BRACK(FHDEV(DEV_TTYM_MAJOR, 21)), "/dev/ptym21"},
|
{"/dev/ptym21", BRACK(FHDEV(DEV_PTYM_MAJOR, 21)), "/dev/ptym21"},
|
||||||
{"/dev/ptym22", BRACK(FHDEV(DEV_TTYM_MAJOR, 22)), "/dev/ptym22"},
|
{"/dev/ptym22", BRACK(FHDEV(DEV_PTYM_MAJOR, 22)), "/dev/ptym22"},
|
||||||
{"/dev/ptym23", BRACK(FHDEV(DEV_TTYM_MAJOR, 23)), "/dev/ptym23"},
|
{"/dev/ptym23", BRACK(FHDEV(DEV_PTYM_MAJOR, 23)), "/dev/ptym23"},
|
||||||
{"/dev/ptym24", BRACK(FHDEV(DEV_TTYM_MAJOR, 24)), "/dev/ptym24"},
|
{"/dev/ptym24", BRACK(FHDEV(DEV_PTYM_MAJOR, 24)), "/dev/ptym24"},
|
||||||
{"/dev/ptym25", BRACK(FHDEV(DEV_TTYM_MAJOR, 25)), "/dev/ptym25"},
|
{"/dev/ptym25", BRACK(FHDEV(DEV_PTYM_MAJOR, 25)), "/dev/ptym25"},
|
||||||
{"/dev/ptym26", BRACK(FHDEV(DEV_TTYM_MAJOR, 26)), "/dev/ptym26"},
|
{"/dev/ptym26", BRACK(FHDEV(DEV_PTYM_MAJOR, 26)), "/dev/ptym26"},
|
||||||
{"/dev/ptym27", BRACK(FHDEV(DEV_TTYM_MAJOR, 27)), "/dev/ptym27"},
|
{"/dev/ptym27", BRACK(FHDEV(DEV_PTYM_MAJOR, 27)), "/dev/ptym27"},
|
||||||
{"/dev/ptym28", BRACK(FHDEV(DEV_TTYM_MAJOR, 28)), "/dev/ptym28"},
|
{"/dev/ptym28", BRACK(FHDEV(DEV_PTYM_MAJOR, 28)), "/dev/ptym28"},
|
||||||
{"/dev/ptym29", BRACK(FHDEV(DEV_TTYM_MAJOR, 29)), "/dev/ptym29"},
|
{"/dev/ptym29", BRACK(FHDEV(DEV_PTYM_MAJOR, 29)), "/dev/ptym29"},
|
||||||
{"/dev/ptym30", BRACK(FHDEV(DEV_TTYM_MAJOR, 30)), "/dev/ptym30"},
|
{"/dev/ptym30", BRACK(FHDEV(DEV_PTYM_MAJOR, 30)), "/dev/ptym30"},
|
||||||
{"/dev/ptym31", BRACK(FHDEV(DEV_TTYM_MAJOR, 31)), "/dev/ptym31"},
|
{"/dev/ptym31", BRACK(FHDEV(DEV_PTYM_MAJOR, 31)), "/dev/ptym31"},
|
||||||
{"/dev/ptym32", BRACK(FHDEV(DEV_TTYM_MAJOR, 32)), "/dev/ptym32"},
|
{"/dev/ptym32", BRACK(FHDEV(DEV_PTYM_MAJOR, 32)), "/dev/ptym32"},
|
||||||
{"/dev/ptym33", BRACK(FHDEV(DEV_TTYM_MAJOR, 33)), "/dev/ptym33"},
|
{"/dev/ptym33", BRACK(FHDEV(DEV_PTYM_MAJOR, 33)), "/dev/ptym33"},
|
||||||
{"/dev/ptym34", BRACK(FHDEV(DEV_TTYM_MAJOR, 34)), "/dev/ptym34"},
|
{"/dev/ptym34", BRACK(FHDEV(DEV_PTYM_MAJOR, 34)), "/dev/ptym34"},
|
||||||
{"/dev/ptym35", BRACK(FHDEV(DEV_TTYM_MAJOR, 35)), "/dev/ptym35"},
|
{"/dev/ptym35", BRACK(FHDEV(DEV_PTYM_MAJOR, 35)), "/dev/ptym35"},
|
||||||
{"/dev/ptym36", BRACK(FHDEV(DEV_TTYM_MAJOR, 36)), "/dev/ptym36"},
|
{"/dev/ptym36", BRACK(FHDEV(DEV_PTYM_MAJOR, 36)), "/dev/ptym36"},
|
||||||
{"/dev/ptym37", BRACK(FHDEV(DEV_TTYM_MAJOR, 37)), "/dev/ptym37"},
|
{"/dev/ptym37", BRACK(FHDEV(DEV_PTYM_MAJOR, 37)), "/dev/ptym37"},
|
||||||
{"/dev/ptym38", BRACK(FHDEV(DEV_TTYM_MAJOR, 38)), "/dev/ptym38"},
|
{"/dev/ptym38", BRACK(FHDEV(DEV_PTYM_MAJOR, 38)), "/dev/ptym38"},
|
||||||
{"/dev/ptym39", BRACK(FHDEV(DEV_TTYM_MAJOR, 39)), "/dev/ptym39"},
|
{"/dev/ptym39", BRACK(FHDEV(DEV_PTYM_MAJOR, 39)), "/dev/ptym39"},
|
||||||
{"/dev/ptym40", BRACK(FHDEV(DEV_TTYM_MAJOR, 40)), "/dev/ptym40"},
|
{"/dev/ptym40", BRACK(FHDEV(DEV_PTYM_MAJOR, 40)), "/dev/ptym40"},
|
||||||
{"/dev/ptym41", BRACK(FHDEV(DEV_TTYM_MAJOR, 41)), "/dev/ptym41"},
|
{"/dev/ptym41", BRACK(FHDEV(DEV_PTYM_MAJOR, 41)), "/dev/ptym41"},
|
||||||
{"/dev/ptym42", BRACK(FHDEV(DEV_TTYM_MAJOR, 42)), "/dev/ptym42"},
|
{"/dev/ptym42", BRACK(FHDEV(DEV_PTYM_MAJOR, 42)), "/dev/ptym42"},
|
||||||
{"/dev/ptym43", BRACK(FHDEV(DEV_TTYM_MAJOR, 43)), "/dev/ptym43"},
|
{"/dev/ptym43", BRACK(FHDEV(DEV_PTYM_MAJOR, 43)), "/dev/ptym43"},
|
||||||
{"/dev/ptym44", BRACK(FHDEV(DEV_TTYM_MAJOR, 44)), "/dev/ptym44"},
|
{"/dev/ptym44", BRACK(FHDEV(DEV_PTYM_MAJOR, 44)), "/dev/ptym44"},
|
||||||
{"/dev/ptym45", BRACK(FHDEV(DEV_TTYM_MAJOR, 45)), "/dev/ptym45"},
|
{"/dev/ptym45", BRACK(FHDEV(DEV_PTYM_MAJOR, 45)), "/dev/ptym45"},
|
||||||
{"/dev/ptym46", BRACK(FHDEV(DEV_TTYM_MAJOR, 46)), "/dev/ptym46"},
|
{"/dev/ptym46", BRACK(FHDEV(DEV_PTYM_MAJOR, 46)), "/dev/ptym46"},
|
||||||
{"/dev/ptym47", BRACK(FHDEV(DEV_TTYM_MAJOR, 47)), "/dev/ptym47"},
|
{"/dev/ptym47", BRACK(FHDEV(DEV_PTYM_MAJOR, 47)), "/dev/ptym47"},
|
||||||
{"/dev/ptym48", BRACK(FHDEV(DEV_TTYM_MAJOR, 48)), "/dev/ptym48"},
|
{"/dev/ptym48", BRACK(FHDEV(DEV_PTYM_MAJOR, 48)), "/dev/ptym48"},
|
||||||
{"/dev/ptym49", BRACK(FHDEV(DEV_TTYM_MAJOR, 49)), "/dev/ptym49"},
|
{"/dev/ptym49", BRACK(FHDEV(DEV_PTYM_MAJOR, 49)), "/dev/ptym49"},
|
||||||
{"/dev/ptym50", BRACK(FHDEV(DEV_TTYM_MAJOR, 50)), "/dev/ptym50"},
|
{"/dev/ptym50", BRACK(FHDEV(DEV_PTYM_MAJOR, 50)), "/dev/ptym50"},
|
||||||
{"/dev/ptym51", BRACK(FHDEV(DEV_TTYM_MAJOR, 51)), "/dev/ptym51"},
|
{"/dev/ptym51", BRACK(FHDEV(DEV_PTYM_MAJOR, 51)), "/dev/ptym51"},
|
||||||
{"/dev/ptym52", BRACK(FHDEV(DEV_TTYM_MAJOR, 52)), "/dev/ptym52"},
|
{"/dev/ptym52", BRACK(FHDEV(DEV_PTYM_MAJOR, 52)), "/dev/ptym52"},
|
||||||
{"/dev/ptym53", BRACK(FHDEV(DEV_TTYM_MAJOR, 53)), "/dev/ptym53"},
|
{"/dev/ptym53", BRACK(FHDEV(DEV_PTYM_MAJOR, 53)), "/dev/ptym53"},
|
||||||
{"/dev/ptym54", BRACK(FHDEV(DEV_TTYM_MAJOR, 54)), "/dev/ptym54"},
|
{"/dev/ptym54", BRACK(FHDEV(DEV_PTYM_MAJOR, 54)), "/dev/ptym54"},
|
||||||
{"/dev/ptym55", BRACK(FHDEV(DEV_TTYM_MAJOR, 55)), "/dev/ptym55"},
|
{"/dev/ptym55", BRACK(FHDEV(DEV_PTYM_MAJOR, 55)), "/dev/ptym55"},
|
||||||
{"/dev/ptym56", BRACK(FHDEV(DEV_TTYM_MAJOR, 56)), "/dev/ptym56"},
|
{"/dev/ptym56", BRACK(FHDEV(DEV_PTYM_MAJOR, 56)), "/dev/ptym56"},
|
||||||
{"/dev/ptym57", BRACK(FHDEV(DEV_TTYM_MAJOR, 57)), "/dev/ptym57"},
|
{"/dev/ptym57", BRACK(FHDEV(DEV_PTYM_MAJOR, 57)), "/dev/ptym57"},
|
||||||
{"/dev/ptym58", BRACK(FHDEV(DEV_TTYM_MAJOR, 58)), "/dev/ptym58"},
|
{"/dev/ptym58", BRACK(FHDEV(DEV_PTYM_MAJOR, 58)), "/dev/ptym58"},
|
||||||
{"/dev/ptym59", BRACK(FHDEV(DEV_TTYM_MAJOR, 59)), "/dev/ptym59"},
|
{"/dev/ptym59", BRACK(FHDEV(DEV_PTYM_MAJOR, 59)), "/dev/ptym59"},
|
||||||
{"/dev/ptym60", BRACK(FHDEV(DEV_TTYM_MAJOR, 60)), "/dev/ptym60"},
|
{"/dev/ptym60", BRACK(FHDEV(DEV_PTYM_MAJOR, 60)), "/dev/ptym60"},
|
||||||
{"/dev/ptym61", BRACK(FHDEV(DEV_TTYM_MAJOR, 61)), "/dev/ptym61"},
|
{"/dev/ptym61", BRACK(FHDEV(DEV_PTYM_MAJOR, 61)), "/dev/ptym61"},
|
||||||
{"/dev/ptym62", BRACK(FHDEV(DEV_TTYM_MAJOR, 62)), "/dev/ptym62"},
|
{"/dev/ptym62", BRACK(FHDEV(DEV_PTYM_MAJOR, 62)), "/dev/ptym62"},
|
||||||
{"/dev/ptym63", BRACK(FHDEV(DEV_TTYM_MAJOR, 63)), "/dev/ptym63"},
|
{"/dev/ptym63", BRACK(FHDEV(DEV_PTYM_MAJOR, 63)), "/dev/ptym63"},
|
||||||
{"/dev/random", BRACK(FH_RANDOM), "/dev/random"},
|
{"/dev/random", BRACK(FH_RANDOM), "/dev/random"},
|
||||||
{"/dev/scd0", BRACK(FHDEV(DEV_CDROM_MAJOR, 0)), "\\Device\\CdRom0"},
|
{"/dev/scd0", BRACK(FHDEV(DEV_CDROM_MAJOR, 0)), "\\Device\\CdRom0"},
|
||||||
{"/dev/scd1", BRACK(FHDEV(DEV_CDROM_MAJOR, 1)), "\\Device\\CdRom1"},
|
{"/dev/scd1", BRACK(FHDEV(DEV_CDROM_MAJOR, 1)), "\\Device\\CdRom1"},
|
||||||
@ -2716,8 +2716,8 @@ static const device dev_storage[] =
|
|||||||
|
|
||||||
const device *cons_dev = dev_storage + 20;
|
const device *cons_dev = dev_storage + 20;
|
||||||
const device *console_dev = dev_storage + 84;
|
const device *console_dev = dev_storage + 84;
|
||||||
const device *ttym_dev = dev_storage + 303;
|
const device *ptym_dev = dev_storage + 303;
|
||||||
const device *ttys_dev = dev_storage + 239;
|
const device *ptys_dev = dev_storage + 239;
|
||||||
const device *urandom_dev = dev_storage + 2641;
|
const device *urandom_dev = dev_storage + 2641;
|
||||||
|
|
||||||
|
|
||||||
|
@ -33,13 +33,13 @@ enum fh_devices
|
|||||||
FH_CONS = FHDEV (DEV_CONS_MAJOR, 0),
|
FH_CONS = FHDEV (DEV_CONS_MAJOR, 0),
|
||||||
FH_CONS_MAX = FHDEV (DEV_CONS_MAJOR, MAX_CONSOLES),
|
FH_CONS_MAX = FHDEV (DEV_CONS_MAJOR, MAX_CONSOLES),
|
||||||
|
|
||||||
DEV_TTYM_MAJOR = 128,
|
DEV_PTYM_MAJOR = 128,
|
||||||
FH_TTYM = FHDEV (DEV_TTYM_MAJOR, 0),
|
FH_PTYM = FHDEV (DEV_PTYM_MAJOR, 0),
|
||||||
FH_TTYM_MAX= FHDEV (DEV_TTYM_MAJOR, 255),
|
FH_PTYM_MAX= FHDEV (DEV_PTYM_MAJOR, 255),
|
||||||
|
|
||||||
DEV_TTYS_MAJOR = 136,
|
DEV_PTYS_MAJOR = 136,
|
||||||
FH_TTYS = FHDEV (DEV_TTYS_MAJOR, 0), /* FIXME: Should separate ttys and ptys */
|
FH_PTYS = FHDEV (DEV_PTYS_MAJOR, 0), /* FIXME: Should separate ttys and ptys */
|
||||||
FH_TTYS_MAX= FHDEV (DEV_TTYS_MAJOR, 255), /* FIXME: Should separate ttys and ptys */
|
FH_PTYS_MAX= FHDEV (DEV_PTYS_MAJOR, 255), /* FIXME: Should separate ttys and ptys */
|
||||||
|
|
||||||
DEV_SERIAL_MAJOR = 117,
|
DEV_SERIAL_MAJOR = 117,
|
||||||
FH_SERIAL = FHDEV (117, 0), /* /dev/ttyS? */
|
FH_SERIAL = FHDEV (117, 0), /* /dev/ttyS? */
|
||||||
@ -317,8 +317,8 @@ struct device
|
|||||||
};
|
};
|
||||||
|
|
||||||
extern const device *console_dev;
|
extern const device *console_dev;
|
||||||
extern const device *ttym_dev;
|
extern const device *ptmx_dev;
|
||||||
extern const device *ttys_dev;
|
extern const device *ptys_dev;
|
||||||
extern const device *urandom_dev;
|
extern const device *urandom_dev;
|
||||||
|
|
||||||
extern const device dev_dgram_storage;
|
extern const device dev_dgram_storage;
|
||||||
@ -359,5 +359,5 @@ extern const device dev_fs_storage;
|
|||||||
|| (((int) n) == FH_CONIN) \
|
|| (((int) n) == FH_CONIN) \
|
||||||
|| (((int) n) == FH_CONOUT))
|
|| (((int) n) == FH_CONOUT))
|
||||||
|
|
||||||
#define istty_slave_dev(n) (device::major (n) == DEV_TTYS_MAJOR)
|
#define istty_slave_dev(n) (device::major (n) == DEV_PTYS_MAJOR)
|
||||||
#endif /*_DEVICES_H*/
|
#endif /*_DEVICES_H*/
|
||||||
|
@ -66,8 +66,8 @@ const device dev_error_storage =
|
|||||||
}
|
}
|
||||||
%%
|
%%
|
||||||
"/dev/tty", BRACK(FH_TTY), "/dev/tty"
|
"/dev/tty", BRACK(FH_TTY), "/dev/tty"
|
||||||
"/dev/pty%(0-63)d", BRACK(FHDEV(DEV_TTYS_MAJOR, {$1})), "/dev/pty{$1}", ttys_dev
|
"/dev/pty%(0-63)d", BRACK(FHDEV(DEV_PTYS_MAJOR, {$1})), "/dev/pty{$1}", ptys_dev
|
||||||
"/dev/ptym%(0-63)d", BRACK(FHDEV(DEV_TTYM_MAJOR, {$1})), "/dev/ptym{$1}", ttym_dev
|
"/dev/ptym%(0-63)d", BRACK(FHDEV(DEV_PTYM_MAJOR, {$1})), "/dev/ptym{$1}", ptym_dev
|
||||||
"/dev/cons%(0-63)d", BRACK(FHDEV(DEV_CONS_MAJOR, {$1})), "/dev/cons{$1}", cons_dev
|
"/dev/cons%(0-63)d", BRACK(FHDEV(DEV_CONS_MAJOR, {$1})), "/dev/cons{$1}", cons_dev
|
||||||
"/dev/console", BRACK(FH_CONSOLE), "/dev/console", console_dev
|
"/dev/console", BRACK(FH_CONSOLE), "/dev/console", console_dev
|
||||||
"/dev/ptmx", BRACK(FH_PTMX), "/dev/ptmx"
|
"/dev/ptmx", BRACK(FH_PTMX), "/dev/ptmx"
|
||||||
|
@ -351,7 +351,7 @@ dtable::init_std_file_from_handle (int fd, HANDLE handle)
|
|||||||
/* Console windows are not kernel objects, so the access mask returned
|
/* Console windows are not kernel objects, so the access mask returned
|
||||||
by NtQueryInformationFile is meaningless. CMD always hands down
|
by NtQueryInformationFile is meaningless. CMD always hands down
|
||||||
stdin handles as R/O handles, but our tty slave sides are R/W. */
|
stdin handles as R/O handles, but our tty slave sides are R/W. */
|
||||||
if (dev == FH_TTY || iscons_dev (dev) || dev.get_major () == DEV_TTYS_MAJOR)
|
if (dev == FH_TTY || iscons_dev (dev) || dev.get_major () == DEV_PTYS_MAJOR)
|
||||||
access |= GENERIC_READ | GENERIC_WRITE;
|
access |= GENERIC_READ | GENERIC_WRITE;
|
||||||
else if (NT_SUCCESS (NtQueryInformationFile (handle, &io, &fai,
|
else if (NT_SUCCESS (NtQueryInformationFile (handle, &io, &fai,
|
||||||
sizeof fai,
|
sizeof fai,
|
||||||
@ -444,10 +444,10 @@ fh_alloc (path_conv& pc)
|
|||||||
|
|
||||||
switch (pc.dev.get_major ())
|
switch (pc.dev.get_major ())
|
||||||
{
|
{
|
||||||
case DEV_TTYS_MAJOR:
|
case DEV_PTYS_MAJOR:
|
||||||
fh = cnew (fhandler_pty_slave, pc.dev.get_minor ());
|
fh = cnew (fhandler_pty_slave, pc.dev.get_minor ());
|
||||||
break;
|
break;
|
||||||
case DEV_TTYM_MAJOR:
|
case DEV_PTYM_MAJOR:
|
||||||
fh = cnew (fhandler_pty_master, pc.dev.get_minor ());
|
fh = cnew (fhandler_pty_master, pc.dev.get_minor ());
|
||||||
break;
|
break;
|
||||||
case DEV_CYGDRIVE_MAJOR:
|
case DEV_CYGDRIVE_MAJOR:
|
||||||
@ -559,10 +559,14 @@ fh_alloc (path_conv& pc)
|
|||||||
else if (myself->ctty <= 0
|
else if (myself->ctty <= 0
|
||||||
&& !myself->set_ctty (fhandler_termios::last, 0))
|
&& !myself->set_ctty (fhandler_termios::last, 0))
|
||||||
/* no tty assigned */;
|
/* no tty assigned */;
|
||||||
else if (iscons_dev (myself->ctty))
|
else
|
||||||
|
{
|
||||||
|
if (iscons_dev (myself->ctty))
|
||||||
fh = cnew (fhandler_console, pc.dev);
|
fh = cnew (fhandler_console, pc.dev);
|
||||||
else
|
else
|
||||||
fh = cnew (fhandler_pty_slave, myself->ctty);
|
fh = cnew (fhandler_pty_slave, myself->ctty);
|
||||||
|
fh->set_name ("/dev/tty");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case FH_KMSG:
|
case FH_KMSG:
|
||||||
fh = cnew (fhandler_mailslot);
|
fh = cnew (fhandler_mailslot);
|
||||||
@ -600,6 +604,8 @@ build_fh_pc (path_conv& pc, bool set_name)
|
|||||||
set_errno (ENXIO);
|
set_errno (ENXIO);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
else if (fh->get_name ())
|
||||||
|
/* already got one */;
|
||||||
else if (fh->dev () != FH_NADA)
|
else if (fh->dev () != FH_NADA)
|
||||||
fh->set_name (fh->dev ().name);
|
fh->set_name (fh->dev ().name);
|
||||||
else if (set_name)
|
else if (set_name)
|
||||||
|
@ -469,8 +469,19 @@ fhandler_base::open_with_arch (int flags, mode_t mode)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
char *name;
|
||||||
|
/* Preserve any name (like /dev/tty) derived from build_fh_pc. */
|
||||||
|
if (!get_name ())
|
||||||
|
name = NULL;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
name = (char *) alloca (strlen (get_name ()) + 1);
|
||||||
|
strcpy (name, get_name ());
|
||||||
|
}
|
||||||
fhandler_base *arch = archetype;
|
fhandler_base *arch = archetype;
|
||||||
archetype->copyto (this);
|
archetype->copyto (this);
|
||||||
|
if (name)
|
||||||
|
set_name (name);
|
||||||
archetype = arch;
|
archetype = arch;
|
||||||
archetype_usecount (1);
|
archetype_usecount (1);
|
||||||
usecount = 0;
|
usecount = 0;
|
||||||
|
@ -1373,7 +1373,7 @@ format_proc_devices (void *, char *&destbuf)
|
|||||||
DEV_MEM_MAJOR, DEV_CONS_MAJOR, _major (FH_TTY),
|
DEV_MEM_MAJOR, DEV_CONS_MAJOR, _major (FH_TTY),
|
||||||
_major (FH_CONSOLE), _major (FH_PTMX),
|
_major (FH_CONSOLE), _major (FH_PTMX),
|
||||||
DEV_TAPE_MAJOR, DEV_MISC_MAJOR, DEV_SOUND_MAJOR,
|
DEV_TAPE_MAJOR, DEV_MISC_MAJOR, DEV_SOUND_MAJOR,
|
||||||
DEV_SERIAL_MAJOR, DEV_TTYS_MAJOR, DEV_FLOPPY_MAJOR,
|
DEV_SERIAL_MAJOR, DEV_PTYS_MAJOR, DEV_FLOPPY_MAJOR,
|
||||||
DEV_SD_MAJOR, DEV_CDROM_MAJOR, DEV_SD1_MAJOR,
|
DEV_SD_MAJOR, DEV_CDROM_MAJOR, DEV_SD1_MAJOR,
|
||||||
DEV_SD2_MAJOR, DEV_SD3_MAJOR, DEV_SD4_MAJOR,
|
DEV_SD2_MAJOR, DEV_SD3_MAJOR, DEV_SD4_MAJOR,
|
||||||
DEV_SD5_MAJOR, DEV_SD6_MAJOR, DEV_SD7_MAJOR);
|
DEV_SD5_MAJOR, DEV_SD6_MAJOR, DEV_SD7_MAJOR);
|
||||||
|
@ -359,7 +359,7 @@ fhandler_pty_slave::fhandler_pty_slave (int unit)
|
|||||||
: fhandler_pty_common (), inuse (NULL)
|
: fhandler_pty_common (), inuse (NULL)
|
||||||
{
|
{
|
||||||
if (unit >= 0)
|
if (unit >= 0)
|
||||||
dev ().parse (DEV_TTYS_MAJOR, unit);
|
dev ().parse (DEV_PTYS_MAJOR, unit);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -953,7 +953,7 @@ fhandler_pty_slave::ioctl (unsigned int cmd, void *arg)
|
|||||||
return res;
|
return res;
|
||||||
|
|
||||||
if (myself->pgid && get_ttyp ()->getpgid () != myself->pgid
|
if (myself->pgid && get_ttyp ()->getpgid () != myself->pgid
|
||||||
&& (unsigned) myself->ctty == FHDEV (DEV_TTYS_MAJOR, get_unit ())
|
&& (unsigned) myself->ctty == FHDEV (DEV_PTYS_MAJOR, get_unit ())
|
||||||
&& (get_ttyp ()->ti.c_lflag & TOSTOP))
|
&& (get_ttyp ()->ti.c_lflag & TOSTOP))
|
||||||
{
|
{
|
||||||
/* background process */
|
/* background process */
|
||||||
@ -1191,9 +1191,13 @@ fhandler_pty_master::fhandler_pty_master (int unit)
|
|||||||
dwProcessId (0), need_nl (0)
|
dwProcessId (0), need_nl (0)
|
||||||
{
|
{
|
||||||
if (unit >= 0)
|
if (unit >= 0)
|
||||||
dev ().parse (DEV_TTYM_MAJOR, unit);
|
dev ().parse (DEV_PTYM_MAJOR, unit);
|
||||||
else if (!setup ())
|
else if (!setup ())
|
||||||
|
{
|
||||||
dev ().parse (FH_ERROR);
|
dev ().parse (FH_ERROR);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
set_name ("/dev/ptmx");
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -1682,7 +1686,7 @@ fhandler_pty_master::setup ()
|
|||||||
t.winsize.ws_row = 25;
|
t.winsize.ws_row = 25;
|
||||||
t.master_pid = myself->pid;
|
t.master_pid = myself->pid;
|
||||||
|
|
||||||
dev ().parse (DEV_TTYM_MAJOR, unit);
|
dev ().parse (DEV_PTYM_MAJOR, unit);
|
||||||
|
|
||||||
termios_printf ("this %p, pty%d opened - from_pty %p, to_pty %p", this, unit,
|
termios_printf ("this %p, pty%d opened - from_pty %p, to_pty %p", this, unit,
|
||||||
get_io_handle (), get_output_handle ());
|
get_io_handle (), get_output_handle ());
|
||||||
|
@ -38,7 +38,7 @@ ioctl (int fd, int cmd, ...)
|
|||||||
/* FIXME: This stinks. There are collisions between cmd types
|
/* FIXME: This stinks. There are collisions between cmd types
|
||||||
depending on whether fd is associated with a pty master or not.
|
depending on whether fd is associated with a pty master or not.
|
||||||
Something to fix for Cygwin2. CGF 2006-06-04 */
|
Something to fix for Cygwin2. CGF 2006-06-04 */
|
||||||
if (cfd->is_tty () && cfd->get_major () != DEV_TTYM_MAJOR)
|
if (cfd->is_tty () && cfd->get_major () != DEV_PTYM_MAJOR)
|
||||||
switch (cmd)
|
switch (cmd)
|
||||||
{
|
{
|
||||||
case TCGETA:
|
case TCGETA:
|
||||||
|
@ -282,8 +282,12 @@ class path_conv
|
|||||||
PWCHAR get_wide_win32_path (PWCHAR wc);
|
PWCHAR get_wide_win32_path (PWCHAR wc);
|
||||||
operator DWORD &() {return fileattr;}
|
operator DWORD &() {return fileattr;}
|
||||||
operator int () {return fileattr; }
|
operator int () {return fileattr; }
|
||||||
|
# define cfree_maybe(x) if (x) cfree ((void *) (x))
|
||||||
path_conv &operator =(const path_conv& pc)
|
path_conv &operator =(const path_conv& pc)
|
||||||
{
|
{
|
||||||
|
cfree_maybe (path);
|
||||||
|
cfree_maybe (normalized_path);
|
||||||
|
cfree_maybe (wide_path);
|
||||||
memcpy (this, &pc, sizeof pc);
|
memcpy (this, &pc, sizeof pc);
|
||||||
path = cstrdup (pc.path);
|
path = cstrdup (pc.path);
|
||||||
conv_handle.dup (pc.conv_handle);
|
conv_handle.dup (pc.conv_handle);
|
||||||
@ -297,11 +301,6 @@ class path_conv
|
|||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
void free_strings ()
|
|
||||||
{
|
|
||||||
cfree (modifiable_path ());
|
|
||||||
cfree ((char *) normalized_path);
|
|
||||||
}
|
|
||||||
DWORD get_devn () {return (DWORD) dev;}
|
DWORD get_devn () {return (DWORD) dev;}
|
||||||
short get_unitn () const {return dev.get_minor ();}
|
short get_unitn () const {return dev.get_minor ();}
|
||||||
DWORD file_attributes () const {return fileattr;}
|
DWORD file_attributes () const {return fileattr;}
|
||||||
|
@ -548,7 +548,7 @@ peek_pipe (select_record *s, bool from_select)
|
|||||||
|
|
||||||
switch (fh->get_major ())
|
switch (fh->get_major ())
|
||||||
{
|
{
|
||||||
case DEV_TTYM_MAJOR:
|
case DEV_PTYM_MAJOR:
|
||||||
if (((fhandler_pty_master *) fh)->need_nl)
|
if (((fhandler_pty_master *) fh)->need_nl)
|
||||||
{
|
{
|
||||||
gotone = s->read_ready = true;
|
gotone = s->read_ready = true;
|
||||||
|
@ -374,14 +374,13 @@ proc_terminate ()
|
|||||||
int i;
|
int i;
|
||||||
for (i = 0; i < nprocs; i++)
|
for (i = 0; i < nprocs; i++)
|
||||||
{
|
{
|
||||||
extern child_info_spawn *chExeced;
|
/* FIXME: Resetting the ppid to 1 when this process execs is decidedly
|
||||||
/* Don't reset the ppid to 1 if this pid is still going to be
|
non-UNIXy. We should, at the very least, keep a list of pids
|
||||||
associated with a process.
|
for the exec process to reset when *it* exits. However, avoiding
|
||||||
FIXME: The problem with this simplistic approach is that the
|
setting ppid when we are exec'ing causes the ppid to *never* be
|
||||||
ppid for any surviving children will never be set to 1 in
|
set to 1 so we don't do that either.
|
||||||
this scenario. A potential fix would be to move procs into
|
if (!hExeced)
|
||||||
cygheap but that would complicate startup. What else is new? */
|
*/
|
||||||
if (!chExeced)
|
|
||||||
procs[i]->ppid = 1;
|
procs[i]->ppid = 1;
|
||||||
if (procs[i].wait_thread)
|
if (procs[i].wait_thread)
|
||||||
{
|
{
|
||||||
|
@ -34,7 +34,7 @@ details. */
|
|||||||
#include "winf.h"
|
#include "winf.h"
|
||||||
#include "ntdll.h"
|
#include "ntdll.h"
|
||||||
|
|
||||||
static suffix_info exe_suffixes[] =
|
static suffix_info NO_COPY exe_suffixes[] =
|
||||||
{
|
{
|
||||||
suffix_info ("", 1),
|
suffix_info ("", 1),
|
||||||
suffix_info (".exe", 1),
|
suffix_info (".exe", 1),
|
||||||
@ -56,7 +56,7 @@ static suffix_info dll_suffixes[] =
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
child_info_spawn *chExeced;
|
child_info_spawn NO_COPY *chExeced;
|
||||||
|
|
||||||
/* Add .exe to PROG if not already present and see if that exists.
|
/* Add .exe to PROG if not already present and see if that exists.
|
||||||
If not, return PROG (converted from posix to win32 rules if necessary).
|
If not, return PROG (converted from posix to win32 rules if necessary).
|
||||||
|
@ -116,7 +116,7 @@ tty_list::init ()
|
|||||||
for (int i = 0; i < NTTYS; i++)
|
for (int i = 0; i < NTTYS; i++)
|
||||||
{
|
{
|
||||||
ttys[i].init ();
|
ttys[i].init ();
|
||||||
ttys[i].setntty (DEV_TTYS_MAJOR, i);
|
ttys[i].setntty (DEV_PTYS_MAJOR, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user