jerpelea opened a new pull request, #19708:
URL: https://github.com/apache/nuttx/pull/19708

   ## Summary
   
   NuttX has no real session/process-group abstraction, so the TTY layer 
collapses the foreground process group onto the single dev->pid field (pgrp == 
pid, one member per group).  Extend the controlling-terminal support so 
portable software (e.g. dropbear, socat) that relies on job-control primitives 
works without losing the existing NuttX-specific behaviour.
   
   Driver (serial.c, pty.c):
   - TIOCSCTTY now accepts a flag: arg > 0 keeps the historical "target PID in 
arg" semantics (NSH registers the foreground command it just spawned), while 
arg == 0 selects the calling task via nxsched_getpid(), matching the POSIX flag 
convention used by dropbear/socat/apue.  This preserves all existing callers 
and makes the previously-dead arg==0 path deliver SIGINT correctly.
   - Add TIOCGPGRP/TIOCGSID (return dev->pid) and TIOCSPGRP (set it).
   - pty.c gains the same handlers against pd_pid and includes nuttx/sched.h 
for nxsched_getpid().
   
   ioctl numbers (tioctl.h): TIOCGPGRP/TIOCSPGRP/TIOCGSID at 0x37-0x39.
   
   libc wrappers:
   - termios: tcgetpgrp(), tcsetpgrp(), tcgetsid() over the new ioctls.
   - unistd: setsid()/getsid()/setpgid() stubs consistent with the existing 
getpgrp()/getpgid() single-session model (sid == pgid == pid; setpgid only 
succeeds for pgid == pid).
   
   Declare the new prototypes in unistd.h (tcgetsid was already in termios.h) 
and register all sources in the Make.defs/CMakeLists.
   
   Group-broadcast signalling (kill(-pgrp)) remains unsupported, so tty signals 
still target the single dev->pid; a real session/process group model is left as 
a follow-up.
   
   ## Impact
   
   RELEASE
   
   ## Testing
   
   CI
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to