����JFIF��H�H����Exif��MM�*���� ��3����V�����3������3�(��������������������3�����
Server IP : 74.208.127.88 / Your IP : 216.73.216.192 Web Server : Apache/2.4.41 (Ubuntu) System : Linux ubuntu 5.4.0-163-generic #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023 x86_64 User : www-data ( 33) PHP Version : 7.4.3-4ubuntu2.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/lib/modules/5.4.0-163-generic/build/arch/sparc/include/asm/ |
Upload File : |
/* * Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved. */ #ifndef _ASM_SPARC_VVAR_DATA_H #define _ASM_SPARC_VVAR_DATA_H #include <asm/clocksource.h> #include <linux/seqlock.h> #include <linux/time.h> #include <linux/types.h> struct vvar_data { unsigned int seq; int vclock_mode; struct { /* extract of a clocksource struct */ u64 cycle_last; u64 mask; int mult; int shift; } clock; /* open coded 'struct timespec' */ u64 wall_time_sec; u64 wall_time_snsec; u64 monotonic_time_snsec; u64 monotonic_time_sec; u64 monotonic_time_coarse_sec; u64 monotonic_time_coarse_nsec; u64 wall_time_coarse_sec; u64 wall_time_coarse_nsec; int tz_minuteswest; int tz_dsttime; }; extern struct vvar_data *vvar_data; extern int vdso_fix_stick; static inline unsigned int vvar_read_begin(const struct vvar_data *s) { unsigned int ret; repeat: ret = READ_ONCE(s->seq); if (unlikely(ret & 1)) { cpu_relax(); goto repeat; } smp_rmb(); /* Finish all reads before we return seq */ return ret; } static inline int vvar_read_retry(const struct vvar_data *s, unsigned int start) { smp_rmb(); /* Finish all reads before checking the value of seq */ return unlikely(s->seq != start); } static inline void vvar_write_begin(struct vvar_data *s) { ++s->seq; smp_wmb(); /* Makes sure that increment of seq is reflected */ } static inline void vvar_write_end(struct vvar_data *s) { smp_wmb(); /* Makes the value of seq current before we increment */ ++s->seq; } #endif /* _ASM_SPARC_VVAR_DATA_H */