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