libce
Libreria di Calcolatori Elettronici
|
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. | |
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.
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)
sev | severità del messaggio |
buf | buffer contenente il messaggio |
quanti | dimensione in byte del messaggio |
Definizione alla linea 7 del file do_log.cpp.
void end_program | ( | ) |
Esegue lo shutdown del sistema.
Chiama reboot() ed esegue hlt
disabilitando le interruzioni.
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.
elf | indirizzo virtuale dell'header ELF caricato in memoria | |
[out] | eh_frame | indirizzo virtuale dell'exception header |
[out] | eh_frame_len | lunghezza dell'exception header |
Definizione alla linea 4 del file find_eh_frame.cpp.
void halt | ( | ) |
Esegue l'istruzione hlt
.
Mette in pausa il processore in attesa di una richiesta di interruzione esterna
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.
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.
buf | buffer di destinazione |
size | dimensione di buf |
fmt | stringa di formato |
ap | lista degli argomenti per fmt |
Definizione alla linea 62 del file vsnprintf.cpp.