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ÉRIFICATION DU FICHIER DR_PMIG_CHECK
  • DR_PMIG_PRE
  • DR_PMIG_POST
  • DR_PMIG_POST_ERREUR
  • VÉRIFICATION DE DR_CAP_ADD_CHECK
  • DR_CAP_ADD_PRE
  • POSTE_POSTE_FONCTION
  • ERREUR DR_CAP_ADD_POST_ERROR
  • VÉRIFICATION DE DR_CAP_REMOVE_CHECK
  • DR_CAP_REMOVE_PRE
  • REMOVE_REMOVE_POST
  • DR_CAP_REMOVE_POST_ERROR
  • VÉRIFICATION DE DR_CPU_ADD_CHECK
  • DR_CPU_ADD_PRE
  • POSTE_DE_POSTE_DE_TRAVAUX
  • DR_CPU_ADD_POST_ERROR
  • VÉRIFICATION DE LA COMMANDE DR_CPU_REMOVE_CHECK
  • DR_CPU_REMOVE_PRE
  • DR_CPU_REMOVE_POST
  • DR_CPU_REMOVE_POST_ERROR
  • VÉRIFICATION DE DR_MEM_ADD_CHECK
  • POSTE_POSTE_POSTE_DE_FONCTIONS
  • DR_MEM_ADD_PRE
  • POSTE_POSTE_DE_TRAVAUX
  • DR_MEM_ADD_POST_ERROR
  • VÉRIFICATION DE DR_MEM_REMOVE_CHECK
  • DR_MEM_REMOVE_OP_POST
  • DR_MEM_REMOVE_OP_PRE
  • DR_MEM_REMOVE_PRE
  • POSTE_DE_REMODÈLE_DE_VIDAGE_VIDAGE_DISTANT
  • DR_MEM_REMOVE_POST_ERROR
é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é.
*/
struct dri_cpu_capacity {
	uint64_t	ent_capacity;	/* partition current entitled capacity*/
	int		delta_ent_cap;	/* delta capacity added/removed*/
	int		status;		/* capacity update constrained or not */
};

/*
 * dri_cpu_capacity.status flags.
 */
#define	CAP_UPDATE_SUCCESS	0x0
#define	CAP_UPDATE_CONSTRAINED	0x1
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:
struct dri_mem_capacity {
		size64_t	mem_capacity;	/* partition current entitled capacity*/
		ssize64_t	delta_mem_capacity;
		uint		flags;
		int		status;		/* capacity update constrained or not */
		uchar		reserved[7];
	};

		/*
 		 * dri_mem_capacity.status flags.
 		 */
		#define	CAP_UPDATE_SUCCESS	0x0
		#define	CAP_UPDATE_CONSTRAINED	0x1
champ d'offre Indique l'opération DLPAR suivante à effectuer par le gestionnaire:
  • VÉRIFICATION DU FICHIER DR_PMIG_CHECK
  • DR_PMIG_PRE
  • DR_PMIG_POST
  • DR_PMIG_POST_ERREUR
  • VÉRIFICATION DE DR_CAP_ADD_CHECK
  • DR_CAP_ADD_PRE
  • POSTE_POSTE_FONCTION
  • ERREUR DR_CAP_ADD_POST_ERROR
  • VÉRIFICATION DE DR_CAP_REMOVE_CHECK
  • DR_CAP_REMOVE_PRE
  • REMOVE_REMOVE_POST
  • DR_CAP_REMOVE_POST_ERROR
  • VÉRIFICATION DE DR_CPU_ADD_CHECK
  • DR_CPU_ADD_PRE
  • POSTE_DE_POSTE_DE_TRAVAUX
  • DR_CPU_ADD_POST_EEROR
  • VÉRIFICATION DE LA COMMANDE DR_CPU_REMOVE_CHECK
  • DR_CPU_REMOVE_PRE
  • DR_CPU_REMOVE_POST
  • DR_CPU_REMOVE_POST_ERROR
  • VÉRIFICATION DE DR_MEM_ADD_CHECK
  • POSTE_POSTE_POSTE_DE_FONCTIONS
  • DR_MEM_ADD_PRE
  • POSTE_POSTE_DE_TRAVAUX
  • DR_MEM_ADD_POST_ERROR
  • VÉRIFICATION DE DR_MEM_REMOVE_CHECK
  • DR_MEM_REMOVE_OP_POST
  • DR_MEM_REMOVE_OP_PRE
  • DR_MEM_REMOVE_PRE
  • POSTE_DE_REMODÈLE_DE_VIDAGE_VIDAGE_DISTANT
  • DR_MEM_REMOVE_POST_ERROR

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.