PICLD(8) Maintenance Commands and Procedures PICLD(8)
NAME
picld - PICL daemon
SYNOPSIS
/usr/lib/picl/picldDESCRIPTION
The Platform Information and Control Library (
PICL) provides a
mechanism to publish platform-specific information for clients to
access in a platform-independent way.
picld maintains and controls
access to the
PICL information from clients and plug-in modules. The
daemon is started in both single-user and multi-user boot mode.
Upon startup, the
PICL daemon loads and initializes the plug-in
modules. These modules use the
libpicltree(3PICLTREE) interface to
create nodes and properties in the
PICL tree to publish platform
configuration information. After the plug-in modules are initialized,
the daemon opens the
PICL daemon door to service client requests to
access information in the
PICL tree.
PICL Tree
The
PICL tree is the repository of all the nodes and properties
created by the plug-in modules to represent the platform
configuration. Every node in the
PICL tree is an instance of a well-
defined
PICL class. The name of the base
PICL class is
picl, which
defines a basic set of properties that all nodes in the tree must
possess. Two of those properties are
name and
_class, where
name contains the name of the node, and the
_class contains the
PICL class
name of the node. Certain nodes in the
PICL tree have well-known
names. For example, the name of the root node of the
PICL tree is
/ and the name of the root node of the sub-tree containing platform
device nodes is
platform.
PICL plug-in Modules The
PICL plug-in modules are shared objects that publish platform-
specific data in the
PICL tree. They are located in well-known
directories so that the daemon can locate and load them.
Plug-in modules are located in one of the following plug-in
directories depending on the platform-specific nature of the data
that they collect and publish:
/usr/platform/`uname -i`/lib/picl/plugins
/usr/platform/`uname -m`/lib/picl/plugins
A plug-in module can specify its dependency on another plug-in module
using the
-l or
-R linker option. The plug-ins are loaded by the
daemon using
dlopen(3C) according to the specified dependencies. Each
plug-in module must define a
.init section, which is executed when
the plug-in module is loaded, to register themselves with the daemon.
See
picld_plugin_register(3PICLTREE) for additional information on
plug-in registration.
The plug-in modules use the
libpicltree(3PICLTREE) interface to
publish nodes and properties in the
PICL tree so that clients can
access them.
When the
PICL daemon invokes the initialization routine of the plug-
in module, the plug-in collects the platform information and creates
nodes and/or properties to represent the configuration in the
PICL tree. A plug-in can create additional threads to monitor the platform
configuration and update the
PICL tree with any changes. This enables
a
PICL plug-in to operate as a daemon within the
PICL framework.
An environmental monitor is an example of a plug-in module that uses
a thread to monitor the temperatures and fan speeds of the platform,
then publishes the environmental information in the
PICL tree so
clients can access them.
Clients use the
libpicl(3PICL) interface to send requests to
picld for accessing the
PICL tree.
EXIT STATUS
picld does not return an exit status.
FILES
/var/run/picld_door PICL daemon door
/usr/lib/picl/picld PICL daemon
SEE ALSO
svcs(1),
dlopen(3C),
libpicl(3PICL),
libpicltree(3PICLTREE),
picld_log(3PICLTREE),
picld_plugin_register(3PICLTREE),
attributes(7),
smf(7),
svcadm(8)NOTES
The
picld service is managed by the service management facility,
smf(7), under the service identifier:
svc:/system/picl
Administrative actions on this service, such as enabling, disabling,
or requesting restart, can be performed using
svcadm(8). The
service's status can be queried using the
svcs(1) command.
May 16, 2020 PICLD(8)