реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Портирование newlib на TNKernel и efsl
ArtemK
сообщение Dec 5 2006, 12:33
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 27-09-05
Из: Украина, г. Херсон
Пользователь №: 8 994



Собрался портировать newlib. Возникла небольшая неувязочка.
В ЧАВО предлагают для обеспечения реентерабельности функций для каждого процесса завести переменную _impure_data (см. "include/reent.h"), содержащую окружение для данного процесса (errno процесса, какие дескрипторы используются для stdin, stdout, stderr и др.). В каждый конкретный момент времени глобально объявленный указатель _impure_ptr должен указывать на _impure_data текущего работающего процесса. Т.е. в момент переключения контекста нужно изменять и значение _impure_ptr.
Пока возникла только мысль добавить в TCB каждого процесса дополнительное поле, содержащее указатель на _impure_data процесса и добавить несколько строчек в функцию переключения контекста (tn_switch_context_exit). Однако, как-то рука не поднимается лезть во внутренности ОС ради обеспечения работоспособности сторонней библиотеки. Тем более, что при переходе к новым версиям ОС придется проделывать те же изменения. Может быть есть другие, более элегантные способы? Как эта проблема решалась с другими ОС?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 19:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01332 секунд с 7
ELECTRONIX ©2004-2016