Підсистема управління глобальними іменами надає засоби для створення спільних системних даних, доступних будь-яким процесам системи за їхнім символьним ім'ям, а також для пошуку та зчитування цих даних за створеним ім'ям. Дані, зареєстровані у системі за допомогою ім'я, називаються глобальними іменами (Global Name Data).
Значенням, що реєструється у системі, є одне 32-бітне ціле число (W). Ім'я, яке зв'язується з цим значенням, складається максимум з 8 символів TRON Code (до 16 байтів). Зазвичай як ім'я використовуються осмислені текстові строки, проте обмежень немає — ім'ям може слугувати будь-яка послідовність байтів довжиною до 8 символів, що завершується символом TNULL(0).
Після реєстрації глобальне ім'я та пов'язане з ним значення стають доступними для читання та модифікації з будь-якого процесу операційної системи.
Глобальні імена поділяються на 2 категорії за часом їхнього існування:
del_nam().
DELEXIT): Автоматично видаляються ядром при завершенні процесу, який їх створив чи востаннє модифікував.
Підсистема глобальних імен зазвичай використовується для публікації загальносистемних ресурсів та сервісів між неограниченим колом процесів, наприклад:

#define N_CREATE 0x0000 /* Створення нового глобального імені (помилка якщо існує) */ #define N_MODIFY 0x0001 /* Зміна існуючого глобального імені (помилка якщо не існує) */ #define N_FORCE 0x0002 /* Примусове створення або перезапис значення імені */ #define DELEXIT 0x8000 /* Автоматичне видалення імені при завершенні процесу */
|
WERR cre_nam(TC* name, W data, W opt)
TC* name Вказівник на ім'я об'єкта (враховуються перші 8 символів / 16 байтів)
W data 32-бітне значення, що реєструється
W opt Атрибути створення:
( N_CREATE || N_MODIFY || N_FORCE ) | [ DELEXIT ]
N_CREATE :
Створює нове глобальне ім'я лише у випадку, якщо воно ще не існує в системному реєстрі. Якщо ім'я з таким назвою вже зареєстровано, повертається помилка ER_EXS.
N_MODIFY :
Модифікує 32-бітне значення існуючого глобального імені. Якщо ім'я не знайдене в реєстрі, повертається помилка ER_NOEXS.
N_FORCE :
Примусово реєструє ім'я: якщо воно відсутнє, створюється новий запис, а якщо існує — його значення перезаписується новим значенням data.
DELEXIT :
Реєструє прапор автоматичного видалення імені при завершенні процесу-создателя або процесу, який востаннє викликав модифікацію з цим прапорцем.
= 0 Успішне виконання < 0 Помилка (Код помилки)
Створює новий запис глобального імені name у реєстрі ядра або змінює значення data для існуючого імені відповідно до вказаного режиму opt.
ER_ADR : Неприпустима адреса вказівника у віртуальній пам'яті. ER_EXS : Вказаний об'єкт, файл або ім'я вже існує у системі. ER_NOEXS : Вказаний об'єкт, файл або ім'я відсутнє у системі. ER_NOSPC : Недостатньо оперативної пам'яті ядра для виконання операції. ER_PAR : Неприпустиме значення одного з параметрів системного виклику.
|
ERR del_nam(TC* name)
TC* name Вказівник на ім'я об'єкта (перші 8 символів / 16 байтів)
= 0 Успішне виконання < 0 Помилка (Код помилки)
Видаляє запис вказаного глобального імені name з реєстру об'єктів ядра та звільняє виділені під нього ресурси пам'яті.
ER_ADR : Неприпустима адреса вказівника у віртуальній пам'яті. ER_NOEXS : Вказаний об'єкт, файл або ім'я відсутнє у системі. ER_PAR : Неприпустиме значення одного з параметрів системного виклику.
|
ERR get_nam(TC* name, W* data)
TC* name Вказівник на шукане глобальне ім'я W* data Вказівник на змінну для збереження зчитаного 32-бітного значення
= 0 Успішне виконання (значення записано в *data) < 0 Помилка (Код помилки)
Знаходить у системному реєстрі запис глобального імені name та записує зв'язане з ним 32-бітне системне значення за адресою data.
ER_ADR : Неприпустима адреса вказівника у віртуальній пам'яті. ER_NOEXS : Вказаний об'єкт, файл або ім'я відсутнє у системі. ER_PAR : Неприпустиме значення одного з параметрів системного виклику.