linux/arch/arm/include/asm/vdso_datapage.h
<<
>>
Prefs
   1/*
   2 * Adapted from arm64 version.
   3 *
   4 * Copyright (C) 2012 ARM Limited
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License version 2 as
   8 * published by the Free Software Foundation.
   9 *
  10 * This program is distributed in the hope that it will be useful,
  11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13 * GNU General Public License for more details.
  14 *
  15 * You should have received a copy of the GNU General Public License
  16 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  17 */
  18#ifndef __ASM_VDSO_DATAPAGE_H
  19#define __ASM_VDSO_DATAPAGE_H
  20
  21#ifdef __KERNEL__
  22
  23#ifndef __ASSEMBLY__
  24
  25#include <asm/page.h>
  26
  27/* Try to be cache-friendly on systems that don't implement the
  28 * generic timer: fit the unconditionally updated fields in the first
  29 * 32 bytes.
  30 */
  31struct vdso_data {
  32        u32 seq_count;          /* sequence count - odd during updates */
  33        u16 tk_is_cntvct;       /* fall back to syscall if false */
  34        u16 cs_shift;           /* clocksource shift */
  35        u32 xtime_coarse_sec;   /* coarse time */
  36        u32 xtime_coarse_nsec;
  37
  38        u32 wtm_clock_sec;      /* wall to monotonic offset */
  39        u32 wtm_clock_nsec;
  40        u32 xtime_clock_sec;    /* CLOCK_REALTIME - seconds */
  41        u32 cs_mult;            /* clocksource multiplier */
  42
  43        u64 cs_cycle_last;      /* last cycle value */
  44        u64 cs_mask;            /* clocksource mask */
  45
  46        u64 xtime_clock_snsec;  /* CLOCK_REALTIME sub-ns base */
  47        u32 tz_minuteswest;     /* timezone info for gettimeofday(2) */
  48        u32 tz_dsttime;
  49};
  50
  51union vdso_data_store {
  52        struct vdso_data data;
  53        u8 page[PAGE_SIZE];
  54};
  55
  56#endif /* !__ASSEMBLY__ */
  57
  58#endif /* __KERNEL__ */
  59
  60#endif /* __ASM_VDSO_DATAPAGE_H */
  61