Re: [Kronos2-developer] Необходима помощь!
Status: Pre-Alpha
Brought to you by:
moskvin
From: Nikolay M. <nik...@gm...> - 2011-04-24 17:39:12
|
Привет, Максим. Реализация библиотеки BIO находится в директории excelsior/sys/lib/BIO.m Строчка "IMPORT bio: BIO;" как раз и импортит её. А смущает тебя, что процедура также называется, ну это нормально. bio.mount обращается к процедуре: PROCEDURE mount (path,dev,info: ARRAY OF CHAR; VAR lab: ARRAY OF CHAR; ro: BOOLEAN); которая в свою очередь вызывает fmount в которой нас интересуют две строки это 913 и 916. В первой происходит открытие необходимого нам узла (нода) а во второй происходит вызов процедуры монтирования модуля osFiles. Если посмотреть в osFiles.m (excelsior/sys/os), то процедура имеет простой вид: PROCEDURE mount (dir: FILE; VAL name: ARRAY OF CHAR; dev: FILE; VAL fsname: ARRAY OF CHAR; VAL info: ARRAY OF CHAR; VAR lab: ARRAY OF CHAR; ro: BOOLEAN): INTEGER; BEGIN IF (dir=NIL) OR (dir^.fmagic#MAGIC) THEN RETURN err.bad_desc END; RETURN dir^.fsid^.mount(dir,name,dev,fsname,info,lab,ro) END mount; Тут и происходит вызов драйвера по средствам вызова dir^.fsid^.mount() Так как dir это FILE необходимо найти где определен FILE тип. для понимания тебе потребуется просмотреть в модуль osFileSystem: в osFileSystem.m:342 определен TYPE FILE для нативной файловой системы Excelsior. В реализации модуля vmHostFS (excelsior/home/moskvin) ты также можешь найти тип FILE. Абстрактный же тип имеет название _FILE и располагается в osFileSystem.d:12 Теперь понятно в каком направлении двигаться? Пиши, если какие-то конструкции не ясны. -- Best regards, Nikolay Moskvin Certified Java SE 6 Programmer C/C++ Linux developer On Sunday 24 April 2011 22:02:49 you wrote: > Здравствуй, Николай! > > Приношу извинения за своё "исчезновение".� > > Не могу понять, что за bio импортируется в файл > \src\excelsior\sys\util\major\mou.m, как он организован и где описан.�И в > этом файле, функция mount использует bio.mount(dir,dev... �), что меня > смущает.� Неужели bio.mount обращается к этой же функции? Тогда получается > нечто странное.. > > Прощу о помощи в этом вопросе! |