Virtlab:Konzolový server

Z VirtlabWiki

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
Verze z 17:47, 25. 10. 2007
Kuc274 (Diskuse | příspěvky)
(Prehled funkci - abych se v tom postupne sam zorientoval :-))
← Předchozí porovnání
Verze z 18:01, 25. 10. 2007
Kuc274 (Diskuse | příspěvky)
(Prehled funkci - abych se v tom postupne sam zorientoval :-))
Následující porovnání →
Řádka 28: Řádka 28:
Funkce '''add_device''' přidá zařízení do seznamu. Prvnim parametrem je popis pridavaneho zarizeni, druhym pak ukazatel na "prvni zarizeni v aktualnim seznamu". Nove pridane zarizeni se zaradi na zacatek seznamu. Funkce vraci ukazatel na seznam. Funkce '''add_device''' přidá zařízení do seznamu. Prvnim parametrem je popis pridavaneho zarizeni, druhym pak ukazatel na "prvni zarizeni v aktualnim seznamu". Nove pridane zarizeni se zaradi na zacatek seznamu. Funkce vraci ukazatel na seznam.
 +
 +Funkce '''load_device''' nacita z textoveho souboru (devs_file) popisy zarizeni. Rozlisi, zda je zarizeni pripojeno seriovou linkou nebo pomoci Ethernetu. Tuto i dalsi informace ulozi do struktury pro popis zarizeni (DEVICE_T), kterou nasledne zakomponuje do seznamu zarizeni (pomoci funkce add_device ).
 +
 +Funkce '''find_device_by_name''' hleda nazev specifikovany parametrem ''devname'' v seznamu zarizeni (specifikovan druhym parametrem). Jestlize zarizeni najde, vraci odkaz na strukturu, ktera jej popisuje. V opacnem pripade vraci odkaz na NULL.
 +
 +Funkce '''split_dev_id_location''' rozdeli vstupni retezec ''dev_at_loc'' na dve casti. Prvni odkazuje na jmeno zarizeni a druha na nazev lokality. (Obe ale realne pracuji se stejnym retezcem, jen ukazuji do jine jeho casti - nic se nekopiruje.)
 +
 +
=== domain.c === === domain.c ===
DOMAINS_T *add_domain(DOMAIN_T domain, DOMAINS_T **doms); DOMAINS_T *add_domain(DOMAIN_T domain, DOMAINS_T **doms);

Verze z 18:01, 25. 10. 2007

Zakázané příkazy

Struktura zdrojových souborů

devices.c (.h)

používané struktury (zdrojový kód po mírné úpravě):

//popis jednoho zarizeni
struct DEVICE_T {
       char devicename[DEV_ID_MAX_LENGTH];
       int device_type;
       int fd_for_tutor;
       int fd_for_client;
       union {
               char serial_port_path[MAX_SERIAL_PATH];
               TELNET_CONN telnet_data;
       };
};
//polozka zretezeneho seznamu zarizeni
struct DEVICES_T {
       DEVICE_T data;
       struct devices_t *next;
};

Přehled funkcí:

DEVICES_T *add_device(DEVICE_T device, DEVICES_T **devs);
int load_devices(const char *devs_file, DEVICES_T **devs);
DEVICE_T *find_device_by_name(const char* devname, DEVICES_T *devs);
int split_dev_id_location(char *dev_at_loc, char **dev, char **loc);

Funkce add_device přidá zařízení do seznamu. Prvnim parametrem je popis pridavaneho zarizeni, druhym pak ukazatel na "prvni zarizeni v aktualnim seznamu". Nove pridane zarizeni se zaradi na zacatek seznamu. Funkce vraci ukazatel na seznam.

Funkce load_device nacita z textoveho souboru (devs_file) popisy zarizeni. Rozlisi, zda je zarizeni pripojeno seriovou linkou nebo pomoci Ethernetu. Tuto i dalsi informace ulozi do struktury pro popis zarizeni (DEVICE_T), kterou nasledne zakomponuje do seznamu zarizeni (pomoci funkce add_device ).

Funkce find_device_by_name hleda nazev specifikovany parametrem devname v seznamu zarizeni (specifikovan druhym parametrem). Jestlize zarizeni najde, vraci odkaz na strukturu, ktera jej popisuje. V opacnem pripade vraci odkaz na NULL.

Funkce split_dev_id_location rozdeli vstupni retezec dev_at_loc na dve casti. Prvni odkazuje na jmeno zarizeni a druha na nazev lokality. (Obe ale realne pracuji se stejnym retezcem, jen ukazuji do jine jeho casti - nic se nekopiruje.)


domain.c

DOMAINS_T *add_domain(DOMAIN_T domain, DOMAINS_T **doms);
int load_domains(const char *doms_file, DOMAINS_T **doms);
DOMAIN_T *find_domain_by_name(const char* domname, DOMAINS_T *doms);
DOMAIN_T *find_domain_by_ip(in_addr_t *ip, DOMAINS_T *doms);
Osobní nástroje