extern void writei(inoptr ino, uint8_t flag);
extern int16_t doclose (uint8_t uindex);
extern inoptr rwsetup (bool is_read, uint8_t *flag);
-extern int dev_openi(inoptr *ino, uint8_t flag);
+extern int dev_openi(inoptr *ino, uint16_t flag);
extern void sync(void);
/* mm.c */
extern int tty_ioctl(uint8_t minor, uarg_t request, char *data);
extern void tty_exit(void);
-extern void tty_post(inoptr ino, uint8_t minor, uint8_t flag);
+extern void tty_post(inoptr ino, uint8_t minor, uint16_t flag);
extern void tty_hangup(uint8_t minor);
extern void tty_carrier_drop(uint8_t minor);
*
* FIXME. Need so IS_TTY(dev) defines too and minor(x) etc
*/
-int dev_openi(inoptr *ino, uint8_t flag)
+int dev_openi(inoptr *ino, uint16_t flag)
{
int ret;
uint16_t da = (*ino)->c_node.i_addr[0];
}
/* Post processing for a successful tty open */
-void tty_post(inoptr ino, uint8_t minor, uint8_t flag)
+void tty_post(inoptr ino, uint8_t minor, uint16_t flag)
{
struct tty *t = &ttydata[minor];
irqflags_t irq = di();
udata.u_ptab->p_tty = minor;
udata.u_ctty = ino;
t->pgrp = udata.u_ptab->p_pgrp;
+#ifdef DEBUG
+ kprintf("setting tty %d pgrp to %d for pid %d\n",
+ minor, t->pgrp, udata.u_ptab->p_pid);
+#endif
}
irqrestore(irq);
}
if (minor == udata.u_ptab->p_tty) {
udata.u_ptab->p_tty = 0;
udata.u_ctty = NULL;
+#ifdef DEBUG
+ kprintf("pid %d loses controller\n", udata.u_ptab->p_pid);
+#endif
}
t->pgrp = 0;
/* If we were hung up then the last opener has gone away */
t->flag &= ~TTYF_DEAD;
+#ifdef DEBUG
+ kprintf("tty %d last close\n", minor);
+#endif
return (0);
}