|
Zadeklarowane w: be/kernel/OS.h
Streszczenie: więcej...
![]() | 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ą:
- addr jest adresem startowym części pamięci, która odpowiada części jednej z pamięci podręcznych.
- len jest długością w bajtach, instrukcji lub segmentu danych, który chcesz wyczyścić lub unieważnić.
- flags jest jednym lub obydwiema B_INVALIDATE_ICACHE i B_FLUSH_DCACHE.
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:
- Jeśli mode jest B_PERIODIC_ALARM, sygnał jest wysyłany co każde time mikrosekund, począwszy od chwili gdy funkcja set_alarm() zwróci wartość.
- Jeśli mode jest B_ONE_SHOT_ABOLUTE_ALARM, sygnał jest wysłany raz (tylko) po czasie time mikrosekund mierząc czas jaki upłynął od chwili gdy system został uruchomiony. Jeśli ten punkt został już przekazany, sygnał jest wysyłany natychmiast.
- Jeśli mode jest B_ONE_SHOT_RELATIVE_ALARM, sygnał jest wysyłany raz (tylko) po czasie time mikrosekund mierząc czas od chwili gdy funkcja set_alarm() zwróciła wartość.
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.
![]() | 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.
|