tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: struct ifnet and ifaddr handling [was: Re: Making global variables of if.c MPSAFE]



On Thu, Nov 20, 2014 at 6:16 PM, Ryota Ozaki <ozaki-r%netbsd.org@localhost> wrote:
> BTW, moving #include <sys/callout.h> out of #ifdef _KERNEL
> doesn't work because struct callout of callout.h conflicts
> with that of external/bsd/am-utils. (Fixing this conflict
> is an option though...)
>
> Thanks,
>   ozaki-r
>
> diff --git a/sys/net/if.h b/sys/net/if.h
> index f6d2d23..2b2a2ae 100644
> --- a/sys/net/if.h
> +++ b/sys/net/if.h
> @@ -342,7 +342,9 @@ typedef struct ifnet {
>             const struct sockaddr *);
>         int (*if_setflags)(struct ifnet *, const short);
>         struct ifnet_lock *if_ioctl_lock;
> +#ifdef _KERNEL
>         callout_t if_watchdog_ch;
> +#endif
>  } ifnet_t;
>
>  #define        if_mtu          if_data.ifi_mtu

I don't think userland really needs to look into callout_t.  But also
I'm not sure the influence of changing struct size for kvm(3) users.
How about this:

#ifdef _KERNEL
        callout_t if_watchdog_ch;
#else
        void *if_watchdog_ch[10]; /* sys/callout.h */
#endif


Home | Main Index | Thread Index | Old Index