Sous-routine rs_op

Objectif

Effectua un ensemble d'opérations sur un ou deux ensembles de ressources.

Bibliothèque

Bibliothèque C standard (libc.a)

Syntaxe

#include <sys/rset.h>
int rs_op (command, rset1, rset2, flags, id)
unsigned int command;
rsethandle_t rset1, rset2;
unsigned int flags;
unsigned int id;

Descriptif

Le sous-programme Rs_op exécute l'opération spécifiée par le paramètre Commande sur le jeu de ressources rset1 ou les deux ensembles de ressources rset1 et rset2.

Paramètres

Article Descriptif
Commande Indique l'opération à appliquer aux ensembles de ressources identifiés par rset1 et rset2. L'une des valeurs suivantes, définie dans rset.h, peut être utilisée:
  • RS_UNION: les ressources contenues dans rset1 ou rset2 sont stockées dans rset2.
  • INTERNE_R_INTERSECTION: les ressources contenues dans rset1 et rset2 sont stockées dans rset2.
  • RS_EXCLUSION: les ressources de rset1 qui sont également dans rset2 sont supprimées de rset2. Une fois terminée, rset2 contient toutes les ressources qui étaient contenues dans rset2 mais qui n'étaient pas contenues dans rset1.
  • RS_COPIE: toutes les ressources de rset1 dont le type est Indicateurs sont stockées dans rset2. Si rset1 ne contient aucune ressource de ce type, rset2 est vide. Le contenu précédent de rset2 est perdu alors que le contenu de rset1 est inchangé.
  • RS_PREMIER: la première ressource dont le type est Indicateurs est extraite de rset1 et stockée dans rset2. Si rset1 ne contient aucune ressource de ce type, rset2 est vide.
  • RS_NEXT: la ressource de rset1 dont le type est Indicateurs et qui suit la ressource contenue dans rset2 est extraite et stockée dans rset2. Si aucune ressource du type approprié ne suit la ressource spécifiée dans rset2, rset2 est vide.
  • RS_NEXT_BOUCLAGE: la ressource de rset1 dont le type est Indicateurs et qui suit la ressource contenue dans rset2 est extraite et stockée dans rset2. Si aucune ressource du type approprié ne suit la ressource spécifiée dans rset2, rset2 contiendra la première ressource de ce type dans rset1.
  • RS_ISVIDE: test si le jeu de ressources rset1 est vide.
  • RS_ISÉGAL: test si les ensembles de ressources rset1 et rset2 sont égaux.
  • RS_ISCONTENUS: test si toutes les ressources de l'ensemble de ressources rset1 sont également contenues dans le jeu de ressources rset2.
  • RESSOURCE RS_TEST: test si la ressource dont le type est Indicateurs et l'index est Id est contenue dans le jeu de ressources rset1.
  • RS_ADDRESOURCE: Ajoutez la ressource dont le type est Indicateurs et l'index Id à l'ensemble de ressources rset1.
  • RESSOURCE RS_DELRESSOURCE: Supprimez la ressource dont le type est Indicateurs et l'index Id à partir de l'ensemble de ressources rset1.
  • RS_STSET: construit un ensemble de ressources ST en incluant une seule unité d'exécution matérielle par processeur physique incluse dans rset1 et le stocke dans rset2. Seuls les processeurs disponibles sont pris en compte lors de la construction de l'ensemble de ressources ST.
rset1 Indique le descripteur de jeu de ressources pour le premier des ensembles de ressources impliqués dans l'opération Commande .
rset2 Indique le descripteur de jeu de ressources pour le deuxième jeu de ressources impliqué dans l'opération Commande . Ce jeu de ressources est également utilisé, en retour, pour stocker le résultat de l'opération et son contenu précédent est perdu. Le paramètre rset2 est ignoré dans les commandes RS_ISEMPTY, RS_TESTRESOURCE, RS_ADDRESOURCE et RS_DELRESOURCE.
Flags Lorsqu'elle est associée à la commande RS_COPY, le paramètre Indicateurs indique le type des ressources qui seront copiées de rset1 vers rset2. Lorsqu'elle est associée à une commande RS_FIRST ou RS_NEXT, le paramètre Indicateurs indique le type de la ressource qui sera extraite de rset1. Ce paramètre est construit en gérant logiquement une ou plusieurs des valeurs suivantes, définies dans rset.h:
  • Processeurs R_PROCS:
  • Pools de mémoire R_MEMPS:
  • Processeurs et pools de mémoire R_ALL_RESOURCES:

Si aucun de ces fichiers n'est spécifié pour Indicateurs, R_ALL_RESOURCES est pris en charge.

id Sur les commandes RS_TESTRESOURCE, RS_ADDRESOURCE et RS_DELRESOURCE, le paramètre Id indique l'index de la ressource à tester, à ajouter ou à supprimer. Ce paramètre est ignoré dans les autres commandes.

Valeurs renvoyées

En cas de réussite, les commandes RS_ISEMPTY, RS_ISEQUAL, RS_ISCONTAINED et RS_TESTRESOURCE renvoient 0 si la condition testée n'est pas remplie et 1 si la condition testée est remplie. Toutes les autres commandes renvoient 0 en cas de réussite. En cas d'échec, la valeur -1 est renvoyée et la variable globale errno est définie pour indiquer l'erreur.

Codes d'erreur

La sous-routine Rs_op échoue si une ou plusieurs des opérations suivantes sont vraies:

Article Descriptif
EINVAL Si l'une des informations suivantes est vraie:
  • rset1 identifie un ensemble de ressources non valide.
  • rset2 identifie un ensemble de ressources non valide.
  • Commande identifie une opération non valide.
  • Commande est RS_NEXT ou RS_NEXT_WRAP*, et rset2 ne contient pas de ressource unique.
  • Commande est RS_NEXT ou RS_NEXT_WRAP*, et la ressource unique contenue dans rset2 n'est pas également contenue dans rset1.
  • Indicateurs identifie un type de ressource non valide.
  • Id indique un index de ressource trop volumineux.
EDÉFAUT Adresse non valide.