/** * POSIX.1 Issue 7 signal names accepted by synthetic `kill` / `ctx.bareOsSendSignal` * (delivery is logical; many only update guest state without host semantics). */ export const BARE_OS_POSIX_SIGNAL_NAMES = Object.freeze([ 'HUP', 'INT', 'QUIT', 'ILL', 'TRAP', 'ABRT', 'BUS', 'FPE', 'KILL', 'USR1', 'SEGV', 'USR2', 'PIPE', 'ALRM', 'TERM', 'STKFLT', 'CHLD', 'CONT', 'STOP', 'TSTP', 'TTIN', 'TTOU', 'URG', 'XCPU', 'XFSZ', 'VTALRM', 'PROF', 'WINCH', 'IO', 'SYS' ]) /** @type {ReadonlySet} */ const SET = new Set(BARE_OS_POSIX_SIGNAL_NAMES) /** * @param {string} signal */ export function bareOsNormalizeSignalName(signal) { return String(signal || 'TERM') .replace(/^SIG/i, '') .toUpperCase() } /** * @param {string} signal */ export function bareOsIsPosixSignalName(signal) { const s = bareOsNormalizeSignalName(signal) return SET.has(s) || s === '0' }