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)