The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

sysevent_get_class_name (3)
  • >> sysevent_get_class_name (3) ( Solaris man: Библиотечные вызовы )
  •  

    NAME

    sysevent_get_class_name, sysevent_get_subclass_name, sysevent_get_size, sysevent_get_seq, sysevent_get_time - get class name, subclass name, ID or buffer size of event
     
    

    SYNOPSIS

    cc [flag...]  file ...-lsysevent [library...] 
    #include <libsysevent.h>
    
    char *sysevent_get_class_name(sysevent_t *ev);
    

    char *sysevent_get_subclass_name(sysevent_t *ev);
    

    int sysevent_get_size(sysevent_t *ev);
    

    uint64_t sysevent_get_seq(sysevent_t *ev);
    

    void sysevent_get_time(sysevent_t *ev, hrtime_t *etimep);
    

     

    PARAMETERS

    ev

    handle to event

    etimep

    pointer to high resolution event time variable

     

    DESCRIPTION

    The sysevent_get_class_name() and sysevent_get_subclass_name() functions return, respectively, the class and subclass names for the provided event ev.

    The sysevent_get_size() function returns the size of the event buffer, ev.

    The sysevent_get_seq() function returns a unique event sequence number of event ev. The sequence number is reset on every system boot.

    The sysevent_get_time() function writes the time the event was published into the variable pointed to by etimep. The event time is added to the event just before it is put into the kernel internal event queue.  

    EXAMPLES

    Example 1 Parse sysevent header information.

    The following example parses sysevent header information from an application's event handler.

    hrtime_t last_ev_time;
    unit64_t last_ev_seq;
    
    void
    event_handler(sysevent_t *ev)
    {
            sysevent_t *new_ev;
            int ev_sz;
            hrtime_t ev_time;
            uint64_t ev_seq;
            
            
            /* Filter on class and subclass */
            if (strcmp(EC_PRIV, sysevent_get_class_name(ev)) != 0) {
                    return;
            } else if (strcmp("ESC_MYSUBCLASS,
                sysevent_get_subclass_name(ev)) != 0) {
                    return;
            }
            
            /*
             * Check for replayed sysevent, time must
             * be greater than previously recorded.
             */
            sysevent_get_event_time(ev, &ev_time);
            ev_seq = sysevent_get_seq(ev);
            if (ev_time < last_ev_time ||
                (ev_time == last_ev_time && ev_seq <=
                last_ev_seq)) {
                    return;
            }
             
            last_ev_time = ev_time;
            last_ev_seq = ev_seq;
             
            /* Store event for later processing */
            ev_sz = sysevent_get_size(ev):
            new_ev (sysevent_t *)malloc(ev_sz);
            bcopy(ev, new_ev, ev_sz);
            queue_event(new_ev);
    }
    

     

    ATTRIBUTES

    See attributes(5) for descriptions of the following attributes:

    ATTRIBUTE TYPEATTRIBUTE VALUE

    Interface StabilityEvolving

    MT-Level

     

    SEE ALSO

    attributes(5)


     

    Index

    NAME
    SYNOPSIS
    PARAMETERS
    DESCRIPTION
    EXAMPLES
    ATTRIBUTES
    SEE ALSO


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру