Go to main content

man pages section 3: Extended Library Functions, Volume 4

Exit Print View

Updated: Thursday, June 13, 2019
 
 

smf_notify_del_params(3SCF)

Name

smf_notify_set_params, smf_notify_get_params, smf_notify_del_params - store, retrieve and delete notification parameters in the Service Configuration Facility

Synopsis

cc [ flag… ] file–lscf [ library… ] 
#include <libscf.h>

int smf_notify_set_params(const char *class, nvlist_t *attr);
int smf_notify_get_params(nvlist_t **params, nvlist_t *nvl);
int smf_notify_del_params(const char *class, const char *fmri,
     int32_t tset);

Parameters

class

class of events to which the function call refers. For SMF state transition events, you should use a subclass of SCF_SVC_TRANSITION_CLASS defined in libscf.h.

tset

set of SMF state transitions encoded in an int32_t value. The encoded states are defined in libscf.h by the macros SCF_STATE_*. The encoding of a initial state is obtained by shifting 16 bits to the left the encoded value for that state. For example, the value of tset that represents the state transition set (see smf(7), State Transition Sets) for to-maintenance, from-maintenance and form-online is given by:

set = ((SCF_STATE_MAINT | SCF_STATE_ONLINE) << 16) | SCF_STATE_MAINT;
fmri

FMRI of an SMF service or instance

params

address of a pointer to an nvlist_t

nvl

a pointer to the event payload nvlist_t, such as is provided to an event delivery callback in libfmevent(3LIB)

attr

a pointer to nvlist_t with the notification parameters

Description

These interfaces are used to manipulate Notification Parameters for Software Events. See smf(7)

The smf_notify_set_params() function stores the notification parameters for class. The attr nvlist_t containing the notification parameters must follow the format:

version (uint32_t)
fmri (string)
tset (int32_t)
SCF_NOTIFY_PARAMS (embedded nvlist)
     <mechanism-name> (embedded nvlist)
          <parameter-name> <parameter-type>
          ...
     (end <mechanism-name>)
     ...
(end notify-params)

The version field must be SCF_NOTIFY_PARAMS_VERSION, defined in libscf.h. The fields fmri and tset are only required for SMF state transitions events. They are ignored otherwise. Existing notification parameters are replaced by this function.

The smf_notify_get_params() function creates and populates the params nvlist_t with the notification parameters for the Event class in nvl. If the Event in nvl is an SMF state transition event, this function will perform a composed lookup in scf_instance_get_pg_composed(3SCF) for the instance FMRI in nvl. If notification parameters are not found in the composed lookup, the function will look for the system-wide notification parameters at SCF_INSTANCE_GLOBAL. The caller is responsible for calling nvlist_free(3NVPAIR) after using params. The params nvlist_t has the following format:

version (uint32_t)
SCF_NOTIFY_PARAMS (array of embedded nvlists)
     (start of notify-params[0])
          tset (int32_t)
          <mechanism-name> (embedded nvlist)
               <parameter-name> <parameter-type>
               ...
          (end <mechanism-name>)
          ...
     (end of notify-params[0])
     ...

The SCF_NOTIFY_PARAMS is an array of nvlist_t because SMF state transitions have notification parameters for both end states of the transitions.

The smf_notify_del_params() function deletes the notification parameters for the given class. If class is not a subclass of SCF_SVC_TRANSITION_CLASS, fmri and tset are ignored.

Both smf_notify_del_params() and smf_notify_set_params() refresh all instances affected by the changes.

Return Values

Upon successful completion smf_notify_del_params(), smf_notify_get_params() and smf_notify_set_params() return SCF_SUCCESS. Otherwise they return SCF_FAILED.

Errors

These functions will fail if:

SCF_ERROR_BACKEND_ACCESS

The storage mechanism that the repository server (svc.configd(8)) chose for the operation denied access.

SCF_ERROR_CONNECTION_BROKEN

The connection to the repository was lost.

SCF_ERROR_DELETED

The entity being operated on has been deleted.

SCF_ERROR_INTERNAL

An internal error occurred.

SCF_ERROR_INVALID_ARGUMENT

An argument passed is invalid.

SCF_ERROR_NO_MEMORY

There is not enough memory.

SCF_ERROR_NO_RESOURCES

The server does not have the resources to complete the request.

SCF_ERROR_NOT_FOUND

The entity was not found.

SCF_ERROR_PERMISSION_DENIED

The caller does not have permission to access or modify the repository.

The smf_notify_del_params() and smf_notify_set_params() functions will fail if:

SCF_ERROR_BACKEND_READONLY

The repository backend is read-only.

Attributes

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

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
Safe

See Also

libfmevent(3LIB), libnvpair(3LIB), libscf(3LIB), nvlist_free(3NVPAIR), scf_error(3SCF), scf_instance_get_pg_composed(3SCF), attributes(7), smf(7)