XenevaOS
Loading...
Searching...
No Matches
XenevaOS
BaseHdr
linux
fwnode.h
Go to the documentation of this file.
1
#ifndef __LINUX_FWNODE_H__
2
#define __LINUX_FWNODE_H__
3
4
/*
5
* DCL <linux/fwnode.h> -- the one fwnode entry point the vendored drm core
6
* links against, fwnode_handle_put().
7
*
8
* mainline v7.2 defines struct fwnode_handle in this header and spells
9
* fwnode_handle_put() as a static inline in <linux/property.h> (a
10
* fwnode_call_void_op over fwnode->ops->put). DCL keeps the struct in
11
* property.h -- that is where its only member reader, drm_connector.c:3492
12
* (`connector->fwnode->secondary`), picked it up -- and has no body for
13
* struct fwnode_operations at all, so an inline cannot reach ->ops->put.
14
* The declaration is therefore an ordinary extern whose no-op body sits in
15
* DCL/linux_device_shim.c, and that body is exactly what this kernel can
16
* observe: dev_fwnode() (property.h) answers NULL for every device and
17
* nothing creates a node, so the one caller, drm_connector_cleanup()
18
* (drm_connector.c:798), only ever passes NULL.
19
*
20
* property.h is included rather than re-declaring the tag so that a later
21
* consumer that names <linux/fwnode.h> the way mainline sources do finds a
22
* complete struct; property.h does not include this header, so there is no
23
* cycle. The header exists because device.h includes it for the callers
24
* that cannot name it themselves -- the same routing device.h's own comment
25
* describes.
26
*/
27
28
#include <
linux/property.h
>
/* struct fwnode_handle */
29
30
void
fwnode_handle_put
(
struct
fwnode_handle
* fwnode);
31
32
#endif
/* __LINUX_FWNODE_H__ */
fwnode_handle_put
void fwnode_handle_put(struct fwnode_handle *fwnode)
property.h
fwnode_handle
Definition
property.h:56
Generated by
1.9.8