Re: ntp_init() looks like a nop
- Reply: Warner Losh : "Re: ntp_init() looks like a nop"
- In reply to: Sebastian Huber : "ntp_init() looks like a nop"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 07 Feb 2022 15:18:29 UTC
On Mon, Feb 07, 2022 at 04:04:56PM +0100, Sebastian Huber wrote:
> Hello,
>
> I review currently the kern_ntptime.c module since I would like to use it in
> RTEMS. I have a question to ntp_init():
>
> /*
> * ntp_init() - initialize variables and structures
> *
> * This routine must be called after the kernel variables hz and tick
> * are set or changed and before the next tick interrupt. In this
> * particular implementation, these values are assumed set elsewhere in
> * the kernel. The design allows the clock frequency and tick interval
> * to be changed while the system is running. So, this routine should
> * probably be integrated with the code that does that.
> */
> static void
> ntp_init(void)
> {
>
> /*
> * The following variables are initialized only at startup. Only
> * those structures not cleared by the compiler need to be
> * initialized, and these only in the simulator. In the actual
> * kernel, any nonzero values here will quickly evaporate.
> */
> L_CLR(time_offset);
> L_CLR(time_freq);
> #ifdef PPS_SYNC
> pps_tf[0].tv_sec = pps_tf[0].tv_nsec = 0;
> pps_tf[1].tv_sec = pps_tf[1].tv_nsec = 0;
> pps_tf[2].tv_sec = pps_tf[2].tv_nsec = 0;
> pps_fcount = 0;
> L_CLR(pps_freq);
> #endif /* PPS_SYNC */
> }
>
> SYSINIT(ntpclocks, SI_SUB_CLOCKS, SI_ORDER_MIDDLE, ntp_init, NULL);
>
> The ntp_init() function sets a couple of global variables to zero. These
> variables should be in the .bss section. Are they not already cleared during
> the kernel loading?
This is nop indeed, be it linked in kernel, or loaded as a module.