lkml.org 
[lkml]   [2022]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 3/5] driver core: make struct device_type.uevent() take a const *
On Wed, Nov 23, 2022 at 04:37:59PM +0100, Greg Kroah-Hartman wrote:
> static inline struct device *__kobj_to_dev(struct kobject *kobj)
> {
> return container_of(kobj, struct device, kobj);
> }
>
> static inline const struct device *__kobj_to_dev_const(const struct kobject *kobj)
> {
> return container_of(kobj, const struct device, kobj);
> }
>
> /*
> * container_of() will happily take a const * and spit back a non-const * as it
> * is just doing pointer math. But we want to be a bit more careful in the
> * driver code, so manually force any const * of a kobject to also be a const *
> * to a device.
> */
> #define kobj_to_dev(kobj) \
> _Generic((kobj), \
> const struct kobject *: __kobj_to_dev_const, \
> struct kobject *: __kobj_to_dev)(kobj)
>
>
> Want me to do the same thing here as well?

It would be nice to have a shared macro code gen all of the above
instead of copy and pasting it. Then maybe other cases beyond struct
device could adopt const too..

Jason

\
 
 \ /
  Last update: 2022-11-23 17:27    [W:0.116 / U:0.884 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site