Registering and Unregistering the Event Handler - Registering and Unregistering the Event Handler - 2026.1 English - UG1304

Versal Adaptive SoC System Software Developers Guide (UG1304)

Document ID
UG1304
Release Date
2026-06-23
Version
2026.1 English
To register and unregister the event handler, follow these steps:
  1. Define callback function wants to call on occurrence of event.
    void TestNotifyCb(XPm_Notifier* const notifier)
    {
    	xil_printf("Received notification: Node=0x%x, Event=%d, OPP=%d\n",
    		 notifier->node, (int)notifier->event, (int)notifier->oppoint);
    }
    
  2. Define the notifier object. The notifier object can be of the following types:
    • Notifier object for device event:
      XPm_Notifier notifier = {
      .callback = TestNotifyCb,
      .node = PM_DEV_USB_0,
      .event = EVENT_STATE_CHANGE,
      .flags = 0,
      };
    • Notifier object for power event:
      XPm_Notifier notifier = {
      .callback = TestNotifyCb,
      .node = PM_POWER_FPD,
      .event = EVENT_ZERO_USER,
      .flags = 0,
      };
    • Notifier object for register error event:
      XPm_Notifier notifier = {
      .callback = TestNotifyCb,
      .node = XIL_NODETYPE_EVENT_ERROR_PMC_ERR1,
      .event = XIL_EVENT_ERROR_MASK_CFRAME,
      .flags = 0,
      };
  3. Use notifier object and register for the event.
    XPm_RegisterNotifier(&notifier);
  4. Unregister for the event.
    XPm_UnregisterNotifier(&notifier);