summaryrefslogtreecommitdiffstats
path: root/upstream/fedora-rawhide/man3/sd_device_ref.3
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/fedora-rawhide/man3/sd_device_ref.3')
-rw-r--r--upstream/fedora-rawhide/man3/sd_device_ref.3105
1 files changed, 105 insertions, 0 deletions
diff --git a/upstream/fedora-rawhide/man3/sd_device_ref.3 b/upstream/fedora-rawhide/man3/sd_device_ref.3
new file mode 100644
index 00000000..c80f8456
--- /dev/null
+++ b/upstream/fedora-rawhide/man3/sd_device_ref.3
@@ -0,0 +1,105 @@
+'\" t
+.TH "SD_DEVICE_REF" "3" "" "systemd 255" "sd_device_ref"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+sd_device_ref, sd_device_unref, sd_device_unrefp \- Create or destroy references to a device object
+.SH "SYNOPSIS"
+.sp
+.ft B
+.nf
+#include <systemd/sd\-device\&.h>
+.fi
+.ft
+.HP \w'sd_device*\ sd_device_ref('u
+.BI "sd_device* sd_device_ref(sd_device\ *" "device" ");"
+.HP \w'sd_device*\ sd_device_unref('u
+.BI "sd_device* sd_device_unref(sd_device\ *" "device" ");"
+.HP \w'void\ sd_device_unrefp('u
+.BI "void sd_device_unrefp(sd_device\ **" "device" ");"
+.PP
+\fBsd_device_ref()\fR
+increases the internal reference counter of
+\fIdevice\fR
+by one\&.
+.PP
+\fBsd_device_unref()\fR
+decreases the internal reference counter of
+\fIdevice\fR
+by one\&. Once the reference count has dropped to zero,
+\fIdevice\fR
+is destroyed and cannot be used anymore, so further calls to
+\fBsd_device_ref()\fR
+or
+\fBsd_device_unref()\fR
+are illegal\&.
+.PP
+\fBsd_device_unrefp()\fR
+is similar to
+\fBsd_device_unref()\fR
+but takes a pointer to a pointer to an
+\fBsd_device\fR
+object\&. This call is useful in conjunction with GCC\*(Aqs and LLVM\*(Aqs
+\m[blue]\fBClean\-up Variable Attribute\fR\m[]\&\s-2\u[1]\d\s+2\&. Note that this function is defined as an inline function\&. Use a declaration like the following, in order to allocate a device object that is freed automatically as the code block is left:
+.sp
+.nf
+{
+ __attribute__((cleanup(sd_device_unrefp))) sd_device *device = NULL;
+ int r;
+ \&...
+ r = sd_device_new_from_syspath(&device, "\&...");
+ if (r < 0) {
+ errno = \-r;
+ fprintf(stderr, "Failed to allocate device: %m\en");
+ }
+ \&...
+}
+.fi
+.PP
+\fBsd_device_ref()\fR
+and
+\fBsd_device_unref()\fR
+execute no operation if the argument is
+\fBNULL\fR\&.
+\fBsd_device_unrefp()\fR
+will first dereference its argument, which must not be
+\fBNULL\fR, and will execute no operation if
+\fIthat\fR
+is
+\fBNULL\fR\&.
+.SH "RETURN VALUE"
+.PP
+\fBsd_device_ref()\fR
+always returns the argument, and
+\fBsd_device_unref()\fR
+always returns
+\fBNULL\fR\&.
+.SH "HISTORY"
+.PP
+\fBsd_device_ref()\fR,
+\fBsd_device_unref()\fR, and
+\fBsd_device_unrefp()\fR
+were added in version 251\&.
+.SH "NOTES"
+.IP " 1." 4
+Clean-up Variable Attribute
+.RS 4
+\%https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html
+.RE