1 PICLD(1M)                    Maintenance Commands                    PICLD(1M)
   2 
   3 
   4 
   5 NAME
   6        picld - PICL daemon
   7 
   8 SYNOPSIS
   9        /usr/lib/picl/picld
  10 
  11 
  12 DESCRIPTION
  13        The Platform Information and Control Library (PICL) provides a
  14        mechanism to publish platform-specific information for clients to
  15        access in a platform-independent way. picld maintains and controls
  16        access to the PICL information from clients and plug-in modules. The
  17        daemon is started in both single-user and multi-user boot mode.
  18 
  19 
  20        Upon startup, the PICL daemon loads and initializes the plug-in
  21        modules.  These modules use the libpicltree(3PICLTREE) interface to
  22        create nodes and properties in the PICL tree to publish platform
  23        configuration information. After the plug-in modules are initialized,
  24        the daemon opens the PICL daemon door to service client requests to
  25        access information in the PICL tree.
  26 
  27    PICL Tree
  28        The PICL tree is the repository of all the nodes and properties created
  29        by the plug-in modules to represent the platform configuration. Every
  30        node in the PICL tree is an instance of a well-defined PICL class. The
  31        name of the base PICL class is picl, which defines a basic set of
  32        properties that all nodes in the tree must possess. Two of those
  33        properties are name and _class, where name contains the name of the
  34        node, and the _class contains the PICL class name of the node. Certain
  35        nodes in the PICL tree have well-known names. For example, the name of
  36        the root node of the PICL tree is / and the name of the root node of
  37        the sub-tree containing platform device nodes is platform.
  38 
  39    PICL plug-in Modules
  40        The PICL plug-in modules are shared objects that publish platform-
  41        specific data in the PICL tree. They are located in well-known
  42        directories so that the daemon can locate and load them.
  43 
  44 
  45        Plug-in modules are located in one of the following plug-in directories
  46        depending on the platform-specific nature of the data that they collect
  47        and publish:
  48 
  49          /usr/platform/`uname -i`/lib/picl/plugins
  50          /usr/platform/`uname -m`/lib/picl/plugins
  51 
  52 
  53 
  54 
  55        A plug-in module can specify its dependency on another plug-in module
  56        using the -l or -R linker option. The plug-ins are loaded by the daemon
  57        using dlopen(3C) according to the specified dependencies. Each plug-in
  58        module must define a .init section, which is executed when the plug-in
  59        module is loaded, to register themselves with the daemon. See
  60        picld_plugin_register(3PICLTREE) for additional information on plug-in
  61        registration.
  62 
  63 
  64        The plug-in modules use the libpicltree(3PICLTREE) interface to publish
  65        nodes and properties in the PICL tree so that clients can access them.
  66 
  67 
  68        When the PICL daemon invokes the initialization routine of the plug-in
  69        module, the plug-in collects the platform information and creates nodes
  70        and/or properties to represent the configuration in the PICL tree. A
  71        plug-in can create additional threads to monitor the platform
  72        configuration and update the PICL tree with any changes. This enables a
  73        PICL plug-in to operate as a daemon within the PICL framework.
  74 
  75 
  76        An environmental monitor is an example of a plug-in module that uses a
  77        thread to monitor the temperatures and fan speeds of the platform, then
  78        publishes the environmental information in the PICL tree so clients can
  79        access them.
  80 
  81 
  82        Clients use the libpicl(3PICL) interface to send requests to picld for
  83        accessing the PICL tree.
  84 
  85 EXIT STATUS
  86        picld does not return an exit status.
  87 
  88 FILES
  89        /var/run/picld_door
  90                               PICL daemon door
  91 
  92 
  93        /usr/lib/picl/picld
  94                               PICL daemon
  95 
  96 
  97 SEE ALSO
  98        svcs(1), svcadm(1M), dlopen(3C), libpicl(3PICL),
  99        libpicltree(3PICLTREE), picld_log(3PICLTREE),
 100        picld_plugin_register(3PICLTREE), attributes(5), smf(5)
 101 
 102 NOTES
 103        The picld service is managed by the service management facility,
 104        smf(5), under the service identifier:
 105 
 106          svc:/system/picl
 107 
 108 
 109 
 110 
 111        Administrative actions on this service, such as enabling, disabling, or
 112        requesting restart, can be performed using svcadm(1M). The service's
 113        status can be queried using the svcs(1) command.
 114 
 115 
 116 
 117                                  May 16, 2020                        PICLD(1M)