8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / man / man3sysevent / sysevent_get_vendor_name.3sysevent
blobbcbed4660eeb58ede5e4cc830982cb550353a315
1 '\" te
2 .\" Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved.
3 .\" Copyright (c) 2015, Joyent, Inc. All Rights Reserved.
4 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
5 .\"  See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with
6 .\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
7 .TH SYSEVENT_GET_VENDOR_NAME 3SYSEVENT "Jun 29, 2015"
8 .SH NAME
9 sysevent_get_vendor_name, sysevent_get_pub_name, sysevent_get_pid \- get vendor
10 name, publisher name or processor ID of event
11 .SH SYNOPSIS
12 .LP
13 .nf
14 \fBcc \fR [\fIflag \&.\|.\|.\fR]  \fIfile\fR\&.\|.\|. \fB-lsysevent\fR [\fIlibrary \&.\|.\|.\fR]
15 #include <libsysevent.h>
17 \fBchar *\fR\fBsysevent_get_vendor_name\fR(\fBsysevent_t *\fR\fIev\fR);
18 .fi
20 .LP
21 .nf
22 \fBchar *\fR\fBsysevent_get_pub_name\fR(\fBsysevent_t *\fR\fIev\fR);
23 .fi
25 .LP
26 .nf
27 \fBvoid\fR \fBsysevent_get_pid\fR(\fBsysevent_t *\fR\fIev\fR, \fBpid_t *\fR\fIpid\fR);
28 .fi
30 .SH PARAMETERS
31 .ne 2
32 .na
33 \fB\fIev\fR\fR
34 .ad
35 .RS 6n
36 handle to a system event object
37 .RE
39 .SH DESCRIPTION
40 .LP
41 The \fBsysevent_get_pub_name()\fR function returns the publisher name for the
42 sysevent handle, \fIev\fR.  The publisher name identifies the name of the
43 publishing application or kernel subsystem of the sysevent.
44 .sp
45 .LP
46 The \fBsysevent_get_pid()\fR function sets the process ID \fIpid\fR to that of
47 the publishing application or \fBSE_KERN_PID\fR for sysevents originating in the
48 kernel. The publisher name and PID are useful for implementing event
49 acknowledgement.
50 .sp
51 .LP
52 The \fBsysevent_get_vendor_name()\fR function returns the vendor string for the
53 publishing application or kernel subsystem.  A vendor string is the company's
54 stock symbol that provided the application or kernel subsystem that generated
55 the system event.  This information is useful for filtering sysevents for one
56 or more vendors.
57 .sp
58 .LP
59 The interface manages the allocation of the vendor and publisher name strings,
60 but it is the caller's responsibility to free the strings when they are no
61 longer needed by calling \fBfree\fR(3MALLOC). If the new vendor and publisher
62 name strings cannot be created, \fBsysevent_get_vendor_name()\fR and
63 \fBsysevent_get_pub_name()\fR return a null pointer and may set errno to
64 \fBENOMEM\fR to indicate that the storage space available is insufficient.
65 .SH EXAMPLES
66 .LP
67 \fBExample 1 \fRParse sysevent header information.
68 .sp
69 .LP
70 The following example parses sysevent header information from an application's
71 event handler.
73 .sp
74 .in +2
75 .nf
76 char *vendor;
77 char *pub;
78 pid_t pid;
80 void
81 event_handler(sysevent_t *ev)
83         if (strcmp(EC_PRIV, sysevent_get_class_name(ev)) != 0) {
84                 return;
85         }
87         vendor = sysevent_get_vendor_name(ev);
88         if (strcmp("SUNW", vendor) != 0) {
89                 free(vendor);
90                 return;
91         }
92         pub = sysevent_get_pub_name(ev);
93         if (strcmp("test_daemon", pub) != 0) {
94                 free(vendor);
95                 free(pub);
96                 return;
97         }
98         sysevent_get_pid(ev, &pid);
99         (void) kill(pid, SIGUSR1);
101         free(vendor);
102         free(pub);
105 .in -2
107 .SH ATTRIBUTES
109 See \fBattributes\fR(5) for descriptions of the following attributes:
114 box;
115 c | c
116 l | l .
117 ATTRIBUTE TYPE  ATTRIBUTE VALUE
119 Interface Stability     Committed
121 MT-Level        MT-Safe
124 .SH SEE ALSO
126 \fBmalloc\fR(3MALLOC), \fBattributes\fR(5)
127 .SH NOTES
129 The \fBlibsysevent\fR interfaces do not work at all in non-global zones.