Be Book Kernel Kit Kernel Kit Indeks

Różne funkcje i stałe

Zadeklarowane w:  be/kernel/OS.h
Streszczenie:  więcej...

 


Funkcje


clear_caches()

Zadeklarowana w:  be/kernel/image.h

void clear_caches(void *addr, size_t len, uint32 flags)

Ta funkcja czyści lub unieważnia dane pamięcie podręcznej. Powinieneś potrzebować tę funkcję, tylko wtedy jeśli generujesz kod w locie, albo, jeśli wykonujesz pętlę synchronizacji i chcesz rozpocząć od świeżych pamięci podręcznych (aby otrzymać oszacowanie dla "najgorszego przypadku").

Argumentami są:

Przez unieważnienie części instrukcji pamięci podręcznej, powodujesz, że instrukcje w tej części będą załadowane następnym razem gdy będą potrzebne. Zrzucenie danych pamięci podręcznej powoduje kopiowanie danych w pamięci do zapisania poza pamięcią podręczną.


debugger()

void debugger(const char *string)

Wrzuca wywołany wątek do debugger'a. Argument string staje się pierwszą wypowiedzią debugger'a.


disable_debugger()

int disable_debugger(int state)

Instruuje jądro aby wysłało sygnał dla wszystkich wyjątków, również takich, które zwykle nie powodują uruchomienia debugger'a. Jeśli aplikacja nie ma zainstalowanej (nie posiada - przyp. tłum.) obsługi dla wyjątku, zespół ginie bez przełączenia w tryb debugger'a. state powinno być różne od zera aby włączyć tą funkcjonalność lub 0 aby ją wyłączyć.


set_alarm()

bigtime_t set_alarm(bigtime_t time, uint32 mode)

Mówi jądru aby wysłało sygnał SIGALRM do jakiegoś punktu w przyszłości, jaki określono przez argumenty:

Gdy sygnał jest wysyłany, wywoływana jest procedurea obsługi SIGALRM (ustawiasz procedurę obsługi poprzez zwykłe środki, przez wywołanie funkcji Posix'a o nazwie signal()). Procedura obsługi działa w wątku, który ustawił alarm.

Z wnętrza procedury obsługi SIGALRM, nie możesz wywołać nic col spowodowałoby uruchomienie planisty jądra (modułu szeregowania - scheduler'a). Jedynym bezpiecznym wywołaniem jakie możesz zrobić w Twojej procedurze obsługi sygnału jest release_sem().

Żądany ostatnio (najświeższy - przyp. tłum.) alarm anuluje poprzednie żądanie. Przykładowo, w tej sekwencji...

/* Spytaj o alarm licząc dziesięć sekund od teraz. */
set_alarm(10e6, B_ONE_SHOT_RELATIVE_ALARM);
/* Spytaj o alarm licząc jedną sekundę od teraz. */
set_alarm(10e5, B_ONE_SHOT_RELATIVE_ALARM);

...tylko drugie żądanie alarmu będzie spełnione - pierwsze żądanie jest anulowane gdy zostaje wykonane drugie wywołanie set_alarm(). Stosuje się to do wszystkich typów alarmów; dla przykładu, żądanie alarmu jednorazowego będzie anulować aktywny alarm okresowy.

Aby jawnie anulować poprzednie żądanie alarmu bez instalowania nowego alarmu, zrób to:

set_alarm(B_INFINITE_TIMEOUT, B_PERIODIC_ALARM);

Anuluje to poprzednie żądanie alarmu bez względu na typ alarmu.


set_signal_stack()

Zadeklarowana w:  be/posix/signal.be.h

void set_signal_stack(void *ptr, size_t size)

Ustawia miejsce i wielkość stosu, który jest użyty przez procedury obsługi sygnału wątku.


Stałe


B_INFINITE_TIMEOUT

B_INFINITE_TIMEOUT

Nieskończona wartość przerwy może być użyta do określenia, w funkcjach akceptujących przerwę, że jesteś skłonny czekać bez końca.


B_OS_NAME_LENGTH

B_OS_NAME_LENGTH

Ta stała podaje maksymalną długość nazwy wątku, semafora, portu, obszaru lub innej błyskotki systemu operacyjnego.


B_PAGE_SIZE

B_PAGE_SIZE

Stała B_PAGE_SIZE podaje rozmiar, w bajtach, strony RAM.


Be Book Kernel Kit Kernel Kit Indeks

Be Book,
...w ślicznym HTML...
dla BeOS wydanie 5

Copyright © 2000 Be, Inc. Wszelkie prawa zastrzeżone.