Accueil        Lexique        UNITéS        Algorithmes        Tutoriel   

Les unités de Pure Pascal (langage Pascal pour les ordinateurs de la gamme Atari ST), compatible Turbo Pascal.

Unité TOS : Fonction Psigaction

Cette page a été ajoutée au document HLP Atari d'Origine, car manquante

Fonction Gemdos 311

Déclaration

function Psigaction( sig : Integer; act, oact : SIGACTIONPtr ) : LongInt;

Description

La fonction Psigaction modifie la réponse au signal sig. Le paramètre act est soit NULL, soit pointe vers une structure sigaction décrivant le comportement du traitement du signal. Pour le composant sa_handler de cette structure, les instructions suivantes s'appliquent : le signal est ignoré. En particulier, un appel à Pause n'est pas interrompu et un signal en attente est rejeté.
sa_handlerSignification
0La routine de gestion standard (par défaut) du système sera exécutée en cas de réception de ce signal
1
Autre valeur (en dehors de 0 et 1)Sa_handler pointera vers la fonction utilisateur à exécuter si le signal sig est transmis. Cette fonction recevra une valeur de type Longint (via la pile) correspondant au numéro du signal.
Lorsqu'un signal est en cours de traitement, il ne peut pas être renvoyé. De plus, il est important de noter que (contrairement à certaines versions d'Unix) le traitement du signal avant l'exécution du gestionnaire n'est pas réinitialisé au gestionnaire par défaut.

Le gestionnaire de signaux doit être terminé avec RTS (Return To Sender) ou Psigreturn pour indiquer que le traitement du signal est terminé. Le blocage du signal est alors levé. Psigreturn effectue également un nettoyage interne au noyau, nécessaire si le gestionnaire de signaux n'est pas terminé (saut long).

Les gestionnaires de signaux peuvent exécuter (via handle) n'importe quel appel TOS : BIOS, XBIOS et GEMDOS. En revanche, les appels AES ou VDI ne sont pas autorisés. Cependant, ceci ne s'applique pas à MagiC ; il convient ici de tenir compte de plusieurs différences. Les appels aux routines de GEM doivent être évités.

Un appel à Psigaction a pour effet secondaire de démasquer le signal (c'est-à-dire de le libérer, si masqué). Ainsi, un processus, lors du traitement d'un signal, peut le réinitialiser puis se le renvoyer à lui-même, par exemple pour se suspendre pendant le traitement d'un signal de contrôle des tâches. Le traitement du signal est sécurisé contre Pfork/Pvfork.

La gestion du signal est héritée par les processus démarrés avec Pfork ou Pvfork. Différent avec Pexec : ici, le nouveau processus ignore tous les signaux que le processus d'origine a également ignorés. Pour tous les autres signaux, le gestionnaire par défaut est installé.

Lorsque la routine de traitement est appelée, un paramètre LongInt est transmis sur la pile, qui reflète le numéro du signal. Contrairement à Unix, le gestionnaire reste installé même après l'apparition d'un signal. La routine de traitement est une procédure tout à fait normale. Une fois exécuté, le processus continue.

Résultat

En cas de succès, vous obtenez un pointeur vers l'ancienne routine de manipulation (0 ou 1 ou pointeur vers l'ancienne fonction). En cas d'erreur, la valeur -88 (ERANGE) indique un signal inconnu et -36 (EACCDN) un signal qui ne peut pas être intercepté.

Remarque Cette fonction est uniquement disponible sous les systèmes d'exploitation multitâche MinT (à partir de la version 0.95) et MagiC (à partir de la version 4.50).

Références croisées Pgetuid Pgetgid Pgetegid


Vous trouverez dans cette zone la liste de toutes les Unités (équivalent des "Librairies" en C) de Pure Pascal. Les Unités indiqués comme standards existent dans la majorité des compilateurs Pascal existant sur ordinateurs 16 bits et au dela (dont Turbo Pascal 3 mini). Les unités indiqués comme Atari sont spécifiques aux systèmes d'exploitation des Atari ST (TOS n.n).

Accès aux unités

Les menus déroulants de chaque unité sont des accès directs aux procédures et fonctions, classés alphabétiquement (sans tenir compte de la casse, puisque le langage Pascal ne tient pas compte de la casse!)
CRT (Standard)

DOS (Standard)

GEM : AES (Atari)

GEM : VDI (Atari)

Graph (Standard)

Overlay (Standard)

Printer Strings (Standard)

System (Standard)

TOS : BIOS (Atari)

TOS : GEMDOS (Atari)

TOS : XBIOS (Atari)

Cette page Unités est issu du fichier UNIT.HLP de la documentation de Pure Pascal (d'Application Systems Heidelberg), qui a été convertie en format TXT puis traduite de l'Allemand grâce à Google Translator : des milliers de copier/coller de et vers Google translator ont été nécessaires, ne connaissant pas un mot d'Allemand!

Les unités CRT, DOS, Graph, Overlay, Printer et System sont standard à TOUS les compilateurs Pascal compatible avec Turbo Pascal 5. L'unité String a été introduit avec Turbo Pascal 7 (Et Pure Pascal 1.1) et permet de manipuler les chaines de caractères de type langage C. Les Unités GEM (VDI et AES) et TOS (BIOS, GEMDOS et XBIOS) sont spécifiques au système Atari ST et contiennent parfois des fonctions équivalentes à certaines fonctions des Unités générales (notamment BIOS). Les fonction XBIOS sont des fonctions permettant de tirer pleinement partie du matériel spécifique Atari, notamment Falcon (Audio, DSP, Blitter, Résolutions étendues etc)


Copyright © 2021 par Albatros Concept (Bruno Aubin)