Page 6 of 8

Re: Автомонтирование дополнительного раздела с приложениями

Posted: Thu Jun 20, 2013 10:28 pm
by Mario_r4
0CodErr wrote:С поиском понятно. Кроме "sys" можно примонтировать, например, "rd" или "hd0".
Я же говорю - на совести прикладного программиста, а то что ты привел с "sys" было действительно багом, но не моим, а предыдущего автора.
Я не могу ввести 100500 проверок для разных вариантов, учитывающих защиту от дурака во всех случаях, так как это сильно раздует код, а раздутому код в ядре делать нечего.

Re: Автомонтирование дополнительного раздела с приложениями

Posted: Fri Jun 28, 2013 10:46 am
by Mario_r4
SVN r. 3724 - уменьшение эффекта блокировки файловой системы за счет добавления mcall 68,1

Re: Автомонтирование дополнительного раздела с приложениями

Posted: Fri Jun 28, 2013 10:53 am
by Mario_r4
По мотивам требований отдельных трудящихся есть идея доработать функцию до следующего функционала.
1) Получить таблицу со всеми входами.
2) Добавить между указанными слотами новый слот (сдвинуть нижележащие данные на одну позицию вниз) и соответственно увеличить указатель количества входов.
3) Удалить указанный слот (сдвинуть нижележащие данные на одну позицию вверх) и соответственно уменьшить указатель количества входов.
Флаг блокировки естественно придется похерить.

Также еще нужно использовать мьютексы вместо CLI.

Re: Автомонтирование дополнительного раздела с приложениями

Posted: Fri Jun 28, 2013 12:26 pm
by Serge
Mario_r4
Больше костылей, хороших и разных ?
Делай тогда двусвязный список. Проще будет манипулировать.

Re: Автомонтирование дополнительного раздела с приложениями

Posted: Fri Jun 28, 2013 3:28 pm
by Mario_r4
Serge wrote:Mario_r4
Больше костылей, хороших и разных ?
Делай тогда двусвязный список. Проще будет манипулировать.
Не, ну я могу вообще не делать. Мне лично оно не нужно. А вообще... помнишь мы с тобой все еще обсуждаем вероятность реализации буфера обмена, года три уже. Вот как то так.

Re: Автомонтирование дополнительного раздела с приложениями

Posted: Mon Jul 08, 2013 10:19 am
by Serge
Mario_r4
А можно, пока ещё не слишком поздно, заменить /addappl на /KolibriOS ?
Будут KolibriOS на диске и виртуальный каталог.

Re: Автомонтирование дополнительного раздела с приложениями

Posted: Mon Jul 08, 2013 10:29 am
by Mario_r4
Serge
Не знаю чем продиктовано такое желание, но я не возражаю - меняй.
Также требуется менять скрипты автосборки и menu.dat

Re: Автомонтирование дополнительного раздела с приложениями

Posted: Mon Jul 08, 2013 10:44 am
by Serge
Mario_r4
addappl как-то глаз режет.
Ок, меняю.

Re: Автомонтирование дополнительного раздела с приложениями

Posted: Mon Jul 08, 2013 10:55 am
by Mario_r4
Заменяй лучше на имя в нижнем регистре, т.е. /kolibrios, чтобы было меньше проблем с фс чувствительными к регистру.
Также перед заливкой на SVN так стоит подумать насчет наличия коллизий, т.к. имена одинаковые. Хотя теоретически проблем быть не должно.

Re: Автомонтирование дополнительного раздела с приложениями

Posted: Mon Jul 08, 2013 11:22 am
by Serge
Mario_r4
Заменяй лучше на имя в нижнем регистре
Поздно.
Imho все имена точек монтирования типа /rd/1 /hd0/1 /bd0/1 и т.д должны быть нечувствительны к регистру. это сильно упростит жизнь. На самом разделе, как файловой системе угодно.

Re: Автомонтирование дополнительного раздела с приложениями

Posted: Mon Jul 08, 2013 1:06 pm
by Serge
Странно. Если монтировать как /KolibriOS, то не работает, а если /kolibrios, то работает. При этом в ассоциациях написано KolibriOS .

Re: Автомонтирование дополнительного раздела с приложениями

Posted: Mon Sep 02, 2013 12:42 am
by Leency
Есть пара предложений:
1 вариант (простой): если SEARCHAP запустили с параметром, например /hd0/2/kolibri/, то программа монтирует параметр запуска как /KolibriOS и ничего не ищет

2 вариант (продвинутый):
- программа запущена с параметром -auto - автоматический поиск разделов
- любой другой параметр, который начинается со слеша / - установить папку как /KolibriOS
- запуск без параметра или с непонятным - открывается GUI. В окне - кнопка автоматический поиск и кнопка обзор берез OpenDialog для задания папки вручную.

Re: Автомонтирование дополнительного раздела с приложениями

Posted: Mon Sep 02, 2013 1:31 am
by Mario_r4
Программа ведь не с потолка в названии содержит слово SEARCH - задавая заранее определенный путь надо быть заранее уверенным, что такой путь существует.

З.Ы. Поскольку моя идея была названа очередным "костылем", то я не хочу ее развивать дальше. Кому нужно пусть тот и допиливает или делает более идеальный вариант с пони и бабочками. Мне лично более того что есть не нужно.

Помогите новичку 2

Posted: Mon Sep 16, 2013 11:47 pm
by Leency
Я правильно использую функцию 30.3? Что-то не работает.

Code: Select all

struct sysdir
{
   char name[64];
   char path[64];
} sysdir;

inline fastcall int SetAddApplDir( ECX)
{
	$mov eax, 30
	$mov ebx, 3
	$int 0x40
}

void KosFol(){
	strcpy(#sysdir.name,"kolibrios");
	strcpy(#sysdir.path,"/sys");
	SetAddApplDir(#sysdir);
	RunProgram("/kolibrios/calc","");
}

Re: Помогите новичку

Posted: Mon Sep 16, 2013 11:56 pm
by Mario_r4
Автомонтирование дополнительного раздела с приложениями
Mario_r4 wrote:SVN r. 3663 - в ядро добавлена ф.30.3, для монтирования дополнительного системного каталога. Можно вызвать только один раз за сеанс (блокировка предусмотрена) и используется для программы SEARCHAP (залита в SVN r. 3650).
Прежде чем спрашивать "Нафига?" нужно прочитать целевую тему. Также предлагаю дальнейшие сообщения писать в целевой теме.

Теперь собственно по использованию - документацию надо читать внимательно:
Spoiler:---- Подфункция 3 - установить доп. системную директорию для ядра ----

Code: Select all

Параметры:
  * eax = 30 - номер функции
  * ebx = 3 - номер подфункции
  * ecx = указатель на блок данных:
          sysdir_name     rb 64
          sysdir_path     rb 64
Пример:
dir_name1       db 'KolibriOS',0
                rb 64-8
dir_path1       db 'HD0/1',0
                rb 64-6
Возвращаемое значение:
  * функция не возвращает значения
Замечания:
  * Функция может быть вызвана только 1 раз за 1 сессию работы ОС.
Погляди внимательно и ты увидишь свою ошибку.
Подсказка:
Spoiler:проблема в sysdir.path