System Administration Commands picld(1M)
NAME
picld - PICL daemon
SYNOPSIS
/usr/lib/picl/picld
DESCRIPTION
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 main-
tains 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 proper-
ties 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 proper-
ties created by the plug-in modules to represent the plat-
form 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 pro-
perties 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 plaform-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 infor-
mation and creates nodes and/or properties to represent the
configuration in the PICL tree. A plug-in can create addi-
tional 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
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Availability | SUNWpiclu |
|_____________________________|_____________________________|
SEE ALSO
svcs(1), svcadm(1M), dlopen(3C), libpicl(3PICL),
libpicltree(3PICLTREE), picld_log(3PICLTREE),
picld_plugin_register(3PICLTREE), attributes(5), smf(5)
NOTES
The picld service is managed by the service management
facility, smf(5), under the service identifier:
svc:/system/picl
Administrative actions on this service, such as enabling,
disabling, or requesting restart, can be performed using
svcadm(1M). The service's status can be queried using the
svcs(1) command.
|
|