Reconfig_register, reconfig_register_ext, reconfig_unregister, ou reconfig_complete, reconfig_register_list Kernel Service
Objectif
Enregistrez et désenregistreles gestionnaires de reconfiguration.
Syntaxe
#include <sys/dr.h>
int reconfig_register (handler, actions,
h_arg, h_token, name)
int (*handler)(void *event, void *h_arg, int req,
void *resource_info);
int actions;
void *h_arg;
ulong *h_token;
char *name;
int reconfig_register_ext (handler, actions, h_arg, h_token, name)
int (*handler)(void *event, void *h_arg, unsigned long long req,
void *resource_info);
unsigned long long actions;
void *h_arg;
ulong *h_token;
char *name;
int reconfig_unregister (h_token)
ulong h_token;
void reconfig_complete (event, rc)
void *event;
int rc;
int reconfig_register_list (handler, event_list, list_size, h_arg, h_token, name)
int (*handler)(void *event, void *h_arg, dr_kevent_t event_in_prog,
void *resource_info);
dr_kevent_t event_list[];
size_t list_size;
void *h_arg;
ulong *h_token;
char *name;Descriptif
Les services de noyau Enregistre_config, reconfig_register_ext, Reconfig_register_list et Reconfig_unregister et les gestionnaires de reconfiguration de désenregistre, qui sont appelés par le noyau avant et après les opérations DLPAR, en fonction de l'ensemble des événements spécifiés par l'extension de noyau lors de l'enregistrement.
À partir d'AIX 6.1 avec 6100-02, toutes les extensions futures du noyau utilisent le service du noyau reconfig_register_list lors de l'enregistrement des opérations DLPAR. Le service de noyau Reconfig_register_list prend en charge les opérations DLPAR précédentes et nouvelles. Les services de noyau Enregistre_config ou Reconfig_register_ext ne prennent plus en charge toutes les opérations DLPAR futures.
Le service de noyau Reconfig_complete est utilisé pour indiquer que la demande est terminée. Si une extension de noyau s'attend à ce que l'opération soit susceptible de prendre un certain temps (plusieurs secondes), le gestionnaire doit renvoyer ATTENDS. à l'appelant, mais procéder à la demande de manière asynchrone. Dans ce cas, le gestionnaire doit indiquer qu'il a terminé la demande en appelant le service de noyau Reconfig_complete .
Paramètres
| Article | Descriptif |
|---|---|
| Actions | Permet à l'extension de noyau de spécifier les événements suivants nécessitant une notification:
|
| événement | Transmis au gestionnaire et destiné à être utilisé uniquement lors de l'appel du service de noyau Reconfig_complete . |
| Liste_événements | Indique les événements qui nécessitent une notification. Pour connaître les valeurs prises en charge, consultez le fichier dr.h . |
| gestionnaire | Indique la fonction d'extension de noyau à appeler. |
| H_arg | Spécifié par l'extension de noyau, mémfié par le noyau avec le descripteur de fonction pour le gestionnaire, et transmis au gestionnaire lorsqu'il est appelé. Il n'est pas utilisé directement par le noyau, mais est destiné à prendre en charge les extensions de noyau qui gèrent plusieurs instances d'adaptateur. Ce paramètre pointe vers un bloc de contrôle d'adaptateur. |
| H_token | Paramètre de sortie utilisé lors de l'annulation de l'enregistrement du gestionnaire. |
| Taille_écoute | Indique la taille de la mémoire du tableau Liste_événements . |
| nom | A fourni à des fins d'information et peut être inclus dans une entrée de journal des erreurs, si le pilote renvoie une erreur. Il est fourni par l'extension de noyau et doit être limité à 15 caractères ASCII. |
| rc | Peut être défini sur ECHEC DE L'EXPLORATION ou DR_SUCCESS. |
| resource_info | Identifie les informations spécifiques à la ressource pour la demande DLPAR en cours. Si la demande est basée sur cpu, les données Info-ressource sont fournies via une structure Unité_unité . Sinon, une structure Mem est utilisée. Sur une partition Micro-Partitioning, si la demande est basée sur la capacité du CPU, les données resource_info sont fournies par le biais d'une structure dri_cpu_capacity, qui a le format suivant. Les extensions de noyau ne sont pas notifiées des modifications du poids de capacité variable dans un environnement Micro-Partitionnement non bridé. Remarque: La mise à jour de la capacité est limitée par l'hyperviseur.
Si la demande est basée sur la capacité de mémoire, les données Info-ressource sont fournies via une structure Capacité_unité , dont le format est le suivant:
|
| champ d'offre | Indique l'opération DLPAR suivante à effectuer par le gestionnaire:
|
Liste des événements dr_kevent_t
Les événements suivants sont utilisés avec l'appel Reconfig_register_list () pour le tableau Liste_événements :
- DR_KEVENT_CPU_ADD_CHECK
- DR_KEVENT_CPU_ADD_PRE
- DR_KEVENT_CPU_ADD_POST
- DR_KEVENT_CPU_ADD_POST_ERROR
- DR_KEVENT_CPU_RM_CHECK
- DR_KEVENT_CPU_RM_PRE
- DR_KEVENT_CPU_RM_POST
- DR_KEVENT_CPU_RM_POST_ERROR
- DR_KEVENT_MEM_ADD_CHECK
- DR_KEVENT_MEM_ADD_PRE
- DR_KEVENT_MEM_ADD_POST
- DR_KEVENT_MEM_ADD_POST_ERROR
- DR_KEVENT_MEM_RM_CHECK
- DR_KEVENT_MEM_RM_PRE
- DR_KEVENT_MEM_RM_POST
- DR_KEVENT_MEM_RM_POST_ERROR
- DR_KEVENT_MEM_ADD_RES
- DR_KEVENT_MEM_RM_RES
- DR_KEVENT_CPU_CAP_ADD_CHECK
- DR_KEVENT_CPU_CAP_ADD_PRE
- DR_KEVENT_CPU_CAP_ADD_POST
- DR_KEVENT_CPU_CAP_ADD_POST_ERROR
- DR_KEVENT_CPU_CAP_RM_CHECK
- DR_KEVENT_CPU_CAP_RM_PRE
- DR_KEVENT_CPU_CAP_RM_POST
- DR_KEVENT_CPU_CAP_RM_POST_ERROR
- DR_KEVENT_MEM_RM_OP_PRE
- DR_KEVENT_MEM_RM_OP_POST
- DR_KEVENT_MEM_ADD_OP_POST
- DR_KEVENT_PMIG_CHECK
- DR_KEVENT_PMIG_PRE
- DR_KEVENT_PMIG_POST
- DR_KEVENT_PMIG_POST_ERROR
- DR_KEVENT_PMIG_POST_INTERNAL
- DR_KEVENT_WMIG_CHECK
- DR_KEVENT_WMIG_PRE
- DR_KEVENT_WMIG_POST
- DR_KEVENT_WMIG_POST_ERROR
- DR_KEVENT_WMIG_CHECKPOINT_CHECK
- DR_KEVENT_WMIG_CHECKPOINT_PRE
- DR_KEVENT_WMIG_CHECKPOINT_DOIT
- DR_KEVENT_WMIG_CHECKPOINT_ERROR
- DR_KEVENT_WMIG_CHECKPOINT_POST
- DR_KEVENT_WMIG_CHECKPOINT_POST_ERREUR
- DR_KEVENT_WMIG_RESTART_CHECK
- DR_KEVENT_WMIG_RESTART_PRE
- DR_KEVENT_WMIG_RESTART_DOIT
- DR_KEVENT_WMIG_RESTART_ERROR
- DR_KEVENT_WMIG_RESTART_POST
- DR_KEVENT_WMIG_RESTART_POST_ERROR
- DR_KEVENT_MEM_CAP_ADD_CHECK
- DR_KEVENT_MEM_CAP_ADD_PRE
- DR_KEVENT_MEM_CAP_ADD_POST
- DR_KEVENT_MEM_CAP_ADD_POST_ERROR
- DR_KEVENT_MEM_CAP_RM_CHECK
- DR_KEVENT_MEM_CAP_RM_PRE
- DR_KEVENT_MEM_CAP_RM_POST
- DR_KEVENT_MEM_CAP_RM_POST_ERROR
- DR_KEVENT_MEM_CAP_WGT_ADD_CHECK
- DR_KEVENT_MEM_CAP_WGT_ADD_PRE
- DR_KEVENT_MEM_CAP_WGT_ADD_POST
- DR_KEVENT_MEM_CAP_WGT_ADD_POST_ERROR
- DR_KEVENT_MEM_CAP_WGT_RM_CHECK
- DR_KEVENT_MEM_CAP_WGT_RM_PRE
- DR_KEVENT_MEM_CAP_WGT_RM_POST
- DR_KEVENT_MEM_CAP_WGT_RM_POST_ERROR
- DR_KEVENT_TOPOLOGY_PRE
- DR_KEVENT_TOPOLOGY_POST
- DR_KEVENT_AME_FACTOR_CHECK
- DR_KEVENT_AME_FACTOR_PRE
- CHEMIN_FICHIER_DE_FACTEUR_DE_VIDAGE_DE_VIDAGE_VIDAGE_ET_
- DR_KEVENT_AME_FACTOR_POST_ERROR
Valeurs renvoyées
Une fois l'exécution terminée, les services de noyau Enregistre_config, reconfig_register_ext et Reconfig_unregister renvoient zéro. En cas d'échec, la valeur Errno appropriée est renvoyée.
Environnement d'exécution
Les interfaces Enregistre_config, reconfig_register_ext, Reconfig_unregisteret Gestionnaire sont appelées uniquement dans l'environnement de processus.
Le service de noyau Reconfig_complete peut être appelé dans l'environnement de processus ou d'interruption.