Table des matières du Be Book     Index du kit du Noyau

Fonctions diverses et autres constantes

Déclarations dans  : be/kernel/OS.h (sauf contre-indication)


Fonctions


clear_caches()

Déclarée dans : be/kernel/image.h
                                                         
  

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

Cette fonction efface ou invalide les caches d'instruction et de données.Vous devriez n'avoir besoin de cette fonction qu'uniquement si vous générez du code à la volée, ou si vous effectuez une mesure de performance et vous voulez la démarrer avec des caches vides (pour obtenir une estimation dans le pire des cas).

Les arguments sont :

En invalidant une section du cache d'instruction, vous forcez le rechargement des instructions de cette section la prochaine fois qu'elles seront nécessaires. En vidant le cache de données, vous forcez la ré-écriture des données de la mémoire dans le cache.


debugger()

                                                         
  

void debugger(const char *string)

Jete le thread appelant dans le débogueur. L'argument string devient la première émission du débogueur.


disable_debugger()

                                                         
  

int disable_debugger(int state)

Demande au noyau d'envoyer un signal pour toutes les exceptions, même celles qui normalement ne déclenchent pas le débogueur. Si l'application n'a pas de gestionnaire installé pour l'exception, la team meurt sans déclencher le débogueur. state doit être non nulle pour activer cette fonctionnalité ou 0 pour la désactiver.


set_alarm()

                                                         
  

bigtime_t set_alarm(bigtime_t time, uint32 mode)

Demande au noyau d'envoyer un signal SIGALRM à certains moments dans le futur, comme définit par les arguments :

Lorsque le signal est envoyé, le gestionnaire de SIGALRM est appelé (vous installer le gestionnaire par le biais habituel, en appelant la fonction Posix signal()). Le gestionnaire s'exécute dans le thread qui a positionné l'alarme.

 
Depuis le gestionnaire de SIGALRM, vous ne devez appelez aucune fonction qui redonnerait "la main" au noyau. Le seul appel sans risque que vous pouvez faire depuis votre gestionnaire de signal est release_sem().


La demande la plus récente d'alarme annule toute demande précédante. Par exemple, dans cette séquence...

   /* Demander une alarme dix secondes plus tard. */
   set_alarm(10e6, B_ONE_SHOT_RELATIVE_ALARM); 
   /* Demander une alarme un seconde plus tard. */
   set_alarm(10e5, B_ONE_SHOT_RELATIVE_ALARM); 

...seule la seconde demande d'alarme sera satisfaite—la premiè demande est annulée lorsque le second appel set_alarm() est fait. Ceci s'applique à tous les types d'alarmes; par exemple, une demande d'alarme unique annulera une alarme périodique en cours.

Pour annuler explicitement une demande précédante sans installer une nouvelle alarme, faites ceci :

   set_alarm(B_INFINITE_TIMEOUT, B_PERIODIC_ALARM);

Ceci annule la demande d'alarme précédante quelque soit son type.


set_signal_stack()

Déclarée dans : posix/signal.be.h
                                                         
  

void set_signal_stack(void *ptr, size_t size)

Règle la position et la taille de la pile utilisée par les gestionnaires de signaux du thread.


Constantes


B_INFINITE_TIMEOUT

                                                         
  

B_INFINITE_TIMEOUT

La valeur de timeout infini peut être utilisée pour indiquer, aux fonctions acceptant la notion de timeout, que vous souhaitez attendre pour toujours.


B_OS_NAME_LENGTH

                                                         
  

B_OS_NAME_LENGTH

Cette constante donne la longueur maximum du nom d'un thread, d'un sémaphore, d'un port, d'une area, ou toute autre babiole du système d'exploitation.


B_PAGE_SIZE

                                                         
  

B_PAGE_SIZE

La constante B_PAGE_SIZE donne la taille, en octets, d'une page de RAM.


Table des matières du Be Book     Index du kit du Noyau


Le Be Book,
...en superbe HTML...
pour BeOS Release 5.

Copyright © 2000 Be, Inc. Tous droits réservés.
Traduit en Français par Philippe Houdoin

Copyright © 2000 Be, Inc. All rights reserved..