|
|
1.1 ! root 1: ttttwwrriittee00() -- Terminal-Device Routine ! 2: ! 3: #iinncclluuddee <ssyyss/iioo.hh> ! 4: #iinncclluuddee <ssyyss/ttttyy.hh> ! 5: vvooiidd ! 6: ttttwwrriittee00(_t_p, _i_o_p, _f_u_n_c_1, _a_r_g_1, _f_u_n_c_2, _a_r_g_2) ! 7: TTTTYY *_t_p; ! 8: IIOO *_i_o_p; ! 9: iinntt (*_f_u_n_c_1)(), _a_r_g_1, (*_f_u_n_c_2)(), _a_r_g_2; ! 10: ! 11: ttttwwrriittee00() moves data to an output queue associated with _t_p, from the I/O ! 12: area referenced by _i_o_p. If an error occurs, it sets field uu.uu_eerrrroorr. ! 13: ! 14: The following behavior makes it possible to prevent deadlocks between ! 15: coupled drivers, such as master-slave pseudoterminal pairs. If _f_u_n_c_1 or is ! 16: not NULL, the function call (*_f_u_n_c_1)(_a_r_g_1) is performed whenever ttttwwrriittee00() ! 17: is about to sleep. Likewise, if _f_u_n_c_2 is not NULL, (*_f_u_n_c_2)(_a_r_g_2) is ! 18: performed whenever ttttwwrriittee00() is about to sleep. ! 19: ! 20: ttttwwrriittee(_t_p, _i_o_p) is equivalent to ttttwwrriittee00(_t_p, _i_o_p, 00, 00, 00, 00). ! 21: ! 22: _S_e_e _A_l_s_o ! 23: tteerrmmiinnaall-ddeevviiccee rroouuttiinneess
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.