libce
Libreria di Calcolatori Elettronici
Caricamento in corso...
Ricerca in corso...
Nessun risultato
Funzioni di uso meno generale, usate dal nucleo

Funzioni

int vsnprintf (char *buf, size_t size, const char *fmt, va_list ap)
 Come snprintf, ma usa una va_list esplicita invece di essere variadica.
 
bool find_eh_frame (vaddr elf, vaddr &eh_frame, natq &eh_frame_len)
 Trova l'exception header all'interno di un file ELF caricato in memoria.
 
void reboot ()
 Riavvia il sistema.
 
void halt ()
 Esegue l'istruzione hlt.
 
void end_program ()
 Esegue lo shutdown del sistema.
 
void do_log (log_sev sev, const char *buf, natl quanti)
 Funzione di basso livello per la scrittura sul log.
 

Descrizione dettagliata

Questa sezione raggruppa alcune funzioni che sono realizzate dalla libce per comodità, ma è improbabile che sia necessario usarle al di fuori degli usi specifici all'interno del nucleo.

Documentazione delle funzioni

◆ do_log()

void do_log ( log_sev sev,
const char * buf,
natl quanti )

Funzione di basso livello per la scrittura sul log.

flog() formatta il messaggio e poi chiama do_log() per inviarlo effettivamente (i programmi 'bare' e il nucleo possono usare la do_log fornita dalla libce, che scrive direttamente sulla porta seriale, ma nei moduli I/O e utente do_log è ridefinita in modo da invocare una primitiva di sistema)

Parametri
sevseverità del messaggio
bufbuffer contenente il messaggio
quantidimensione in byte del messaggio

Definizione alla linea 7 del file do_log.cpp.

Questo è il grafo delle chiamate per questa funzione:

◆ end_program()

void end_program ( )

Esegue lo shutdown del sistema.

Chiama reboot() ed esegue hlt disabilitando le interruzioni.

Questo è il grafo dei chiamanti di questa funzione:

◆ find_eh_frame()

bool find_eh_frame ( vaddr elf,
vaddr & eh_frame,
natq & eh_frame_len )

Trova l'exception header all'interno di un file ELF caricato in memoria.

L'exception header è generato dal compilatore e serve a recuperare le informazioni per lo stack-unwinding. Lo usiamo per implementare il backtrace in caso di errori.

Parametri
elfindirizzo virtuale dell'header ELF caricato in memoria
[out]eh_frameindirizzo virtuale dell'exception header
[out]eh_frame_lenlunghezza dell'exception header
Restituisce
true se trovata, false altrimenti

Definizione alla linea 4 del file find_eh_frame.cpp.

Questo è il grafo delle chiamate per questa funzione:
Questo è il grafo dei chiamanti di questa funzione:

◆ halt()

void halt ( )

Esegue l'istruzione hlt.

Mette in pausa il processore in attesa di una richiesta di interruzione esterna

◆ reboot()

void reboot ( )

Riavvia il sistema.

Nella configurazione standard QEMU è stato impostato per fare lo shutdown invece di riavviare, quindi questa funzione ha l'effetto di spegnere la macchina virtuale.

Definizione alla linea 13 del file reboot.cpp.

Questo è il grafo delle chiamate per questa funzione:

◆ vsnprintf()

int vsnprintf ( char * buf,
size_t size,
const char * fmt,
va_list ap )

Come snprintf, ma usa una va_list esplicita invece di essere variadica.

Questa funzione contiene l'implementazione vera e propria del parser delle stringhe di formato ed è chiamata sia da printf che da snprintf.

Parametri
bufbuffer di destinazione
sizedimensione di buf
fmtstringa di formato
aplista degli argomenti per fmt
Restituisce
il numero di caratteri necessari per scrivere l'intera stringa

Definizione alla linea 62 del file vsnprintf.cpp.

Questo è il grafo delle chiamate per questa funzione:
Questo è il grafo dei chiamanti di questa funzione: