Все устройства, доступные для VxWorks, являются частью списка устройств. Список устройств доступен с помощью iosLib.
Я использовал следующий код много, чтобы удалить устройства для генерации ошибки для того, чтобы проверить мои программы:
DEV_HDR *pDevice;
pDevice = iosDevFind("/xyz", NULL);
if (pDevice != NULL)
{
iosDevDelete(pDevice);
}
Это работает для всех устройств, перечисленных devs
команды, которая в вашем случае также будет работать для "/tyco"
. Я сомневаюсь, что вы можете запретить открытые вызовы "/tyco/1"
и "/tyco/2"
, но разрешать вызовы "/tyco/0"
с использованием этого метода, поскольку он работает на «устройствах».
Если "/tyco/0"
- это ваш последовательный интерфейс к оболочке VxWorks, то метод сверху будет работать. Поскольку удаление устройства из списка устройств приведет к сбою всех следующих вызовов open
, но не будет закрывать уже открытые устройства ...
Спасибо, что Лукас выглядит именно тем, что я ищу. Один вопрос, если я хочу поместить это в цикл, чтобы закрыть несколько устройств, что бы я сделал с «pDevices»? Установите его на нуль в каждом цикле, освободите его каким-то образом, ...? – atomic928
@ atomic928: 'pDevice' - это просто указатель на запись в списке устройств ядра. Вам не нужно ее освобождать или устанавливать в «NULL». Также вы не должны изменять точки памяти 'pDevice' для ... –