#include "fs/devices/PTYMultiplexer.h" Bitset PTYMultiplexer::m_available_indexes = 0; PTYMultiplexer::PTYMultiplexer() { m_metadata.devid = luna_dev_makedev(DeviceRegistry::Terminal, 0); m_metadata.mode = 0666; m_metadata.initialize_times(); } Result> PTYMultiplexer::open() { int index = -1; for (int i = 0; i < 64; i++) { if (!m_available_indexes.get(i)) { index = i; m_available_indexes.set(i, true); break; } } if (index == -1) return err(ENOSPC); return MasterPTY::create_pair(index); } void PTYMultiplexer::init() { m_available_indexes.clear(); } void PTYMultiplexer::did_remove_pty(int index) { m_available_indexes.set(index, false); }