ModInfo 0.1.1
Paweł Gajda
mis w hq.obop.com.pl
Śro, 31 Mar 1999, 17:15:53 CEST
On Wed, 31 Mar 1999, Piotr Grochowski wrote:
> HeY!
> Oto pierwsza wersja ModInfo, którą udostępniam.
[..]
> 1. modinfo.{c,h}
> 2. Krótką dokumentację
> 3. Przykład pliku ModInfo oraz wykorzystania biblioteki
> 4. Program testujący poprawność pliku ModInfo
Jak zrobiłem błąd składniowy:
<module>
<name 3c501
<device eth
to program tego nie wykrył oraz:
zn:~/modinfo-0.1.1/example$ ./example example.mi
[cut]
Read 3 module(s):
- 3c501
<device eth
<type net
- pd
- at1700
Segmentation fault (core dumped)
Ale ja nie o tym. Szukałem ostatnio jakiejś ogólnej biblioteki do
konfiguracji. Znalazłem coś co nazywa się KUNFig (jakiś rodak z Tater
to pisał?;-). Jest to stosunkowo niewielkie (lib to niespełna 20kb
kodu i można to nieco zbić usuwając widoczne powtórzenia).
Wygląda na to, że chodzi dobrze, no i... na pierwszy rzut oka
niemal idealnie pasuje do naszych celów (nie strielaj!;-).
Przykład ,,kunfiguracji'':
# To jest komentarz
#
# [driver_type:device:module_name]
[net:eth:3c501]
description = "3Com 3c501 Ethernet (10/100Mbit) Card (ISA/EISA/PCI)"
param = "io="
param_args = "0x280, 0x300"
param = "irq="
param_args = "5, 6"
#
[net:eth:at1700]
description = "Allied Telesis AT1700"
param = "io="
param_args = "0x260, 0x260, 0x280, 0x2A0, 0x240, 0x340, 0x320"
Jest do tego dosyć dobra dokumentacja, sprawdzanie składni,
dumper, oraz prymitywny edytor(!).
Przykład zrzutu zawartości powyższego:
zn:/home/arch/kunf-0.5/utils$ ./kunfcat -i ./example.kunfig
[net]
[net:eth]
[net:eth:3c501]
description="3Com 3c501 Ethernet (10/100Mbit) Card (ISA/EISA/PCI)"
param="io="
param_args="0x280, 0x300"
param="irq="
param_args="5"
[net:eth]
[net:eth:at1700]
description="Allied Telesis AT1700"
param="io="
param_args="0x260, 0x260, 0x280, 0x2A0, 0x240, 0x340, 0x320"
Ponieważ i tak coś podobnego jest potrzebne do samego instalatora,
to myślę, że warto tego użyć także do modułów. Chyba, że ktoś z Was
zna coś lepszego ?
Wadą tego jest dosyć obskurny układ kodu(no ale jest indent).
Autor się nieco ukrywa(kontakt na obrazku gif:-), podaję kontakt:
Marc Welz <mwelz w cs.uct.ac.za>
Nie mogę tego wrzucić na dione:
ftp> put kunf-0.5.tar.bz2
local: kunf-0.5.tar.bz2 remote: kunf-0.5.tar.bz2
200 PORT command successful.
553 kunf-0.5.tar.bz2: Permission denied. (Upload)
Będzie pod http://hq.obop.com.pl/~mis/kunf-0.5.tar.bz2 (ok 140kb)
[..]
> W tym ModInfo brakuje jednaj dość ważnej rzeczy, którą zdecydowałem się
> usunąć w ostatnim momencie. Mianowicie wczytywania pliku z dłuższym opisem
> danego użądzenia (to, co miało być wycinane z tego, jak to nazwałeś
> "drzewka kernela"). Dlaczego? Mianowicie chciałem to zrobić tak:
> char * modGetModuleDescription(char * name);
> name - nazwa modułu, którego opis jest zwracany.
> Problem: gdzie będą się znajdować pliki z opisami? Gdzie mam ich szukać?
Hmm, myślę, że albo w osobnym pliku, pakiet z drv to będą 2 pliki:
- net_drv.cpio.gz
- net_drv_help.cpio.gz
albo razem w jednym, albo na boot dyskietce(ale chyba nie)...
Nie wiem jeszcze co będzie najlepsze(najszybsze,najsensowniejsze,etc).
Trochę wybiegłeś w przód. Jak się umawialiśmy, to miałeś robić
tylko ,,surowy'' interfejs do modinfo. Robiąc od razu struktury
i funkcje wyszukujące do ,,całości'' trzeba wziąć pod uwagę
jeszcze listę załadowanych modułów i jej obsługę(patrz rhinst).
Jedno zbyt zależy od drugiego i raczej nie wyjdzie współpraca
via email.
Paweł
Więcej informacji o liście dyskusyjnej pld-installer