|
|
1.1 root 1: ttttrreeaadd00() -- Terminal Device Routine
2:
3: #iinncclluuddee <ssyyss/iioo.hh>
4: #iinncclluuddee <ssyyss/ttttyy.hh>
5: vvooiidd
6: ttttrreeaadd00(_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: ttttrreeaadd00() moves data from the input queue associated with _t_p to the I/O
12: area referenced by iioopp. 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 is
16: not null, the function call (*_f_u_n_c_1)(_a_r_g_1) is performed whenever ttttrreeaadd00()
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 ttttrreeaadd00() is about to sleep.
19:
20: ttttrreeaadd(_t_p, _i_o_p) is equivalent to ttttrreeaadd00(_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.