# 1 "/usr/src/sys/cpu/i386/misc/atomic.c" # 1 "/usr/obj/usr/src/sys/GENERIC//" # 1 "" # 1 "" # 1 "./opt_global.h" 1 # 1 "" 2 # 1 "/usr/src/sys/cpu/i386/misc/atomic.c" # 34 "/usr/src/sys/cpu/i386/misc/atomic.c" # 1 "/usr/src/sys/sys/types.h" 1 # 46 "/usr/src/sys/sys/types.h" # 1 "/usr/src/sys/sys/cdefs.h" 1 # 47 "/usr/src/sys/sys/types.h" 2 # 1 "/usr/src/sys/../include/stdint.h" 1 # 32 "/usr/src/sys/../include/stdint.h" # 1 "/usr/src/sys/sys/stdint.h" 1 # 11 "/usr/src/sys/sys/stdint.h" # 1 "include/machine/stdint.h" 1 # 1 "./cpu/stdint.h" 1 # 47 "./cpu/stdint.h" typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef short __int16_t; typedef unsigned short __uint16_t; typedef int __int32_t; typedef unsigned int __uint32_t; typedef int __boolean_t; # 63 "./cpu/stdint.h" typedef int __attribute__((__mode__(__DI__))) __int64_t; typedef unsigned int __attribute__((__mode__(__DI__))) __uint64_t; # 73 "./cpu/stdint.h" typedef __int64_t __intmax_t; typedef __uint64_t __uintmax_t; typedef __int32_t __intptr_t; typedef __uint32_t __uintptr_t; typedef __int32_t __ptrdiff_t; typedef __int32_t __int_fast8_t; typedef __int32_t __int_fast16_t; typedef __int32_t __int_fast32_t; typedef __int64_t __int_fast64_t; typedef __int8_t __int_least8_t; typedef __int16_t __int_least16_t; typedef __int32_t __int_least32_t; typedef __int64_t __int_least64_t; typedef __uint32_t __uint_fast8_t; typedef __uint32_t __uint_fast16_t; typedef __uint32_t __uint_fast32_t; typedef __uint64_t __uint_fast64_t; typedef __uint8_t __uint_least8_t; typedef __uint16_t __uint_least16_t; typedef __uint32_t __uint_least32_t; typedef __uint64_t __uint_least64_t; # 105 "./cpu/stdint.h" typedef __uint32_t __size_t; typedef __int32_t __ssize_t; typedef long __time_t; typedef int __timer_t; typedef __int32_t __register_t; typedef __uint32_t __u_register_t; typedef __int32_t __sig_atomic_t; typedef unsigned long __clock_t; typedef unsigned long __clockid_t; typedef __uint32_t __socklen_t; typedef volatile int __atomic_intr_t; # 8 "include/machine/stdint.h" 2 # 12 "/usr/src/sys/sys/stdint.h" 2 # 30 "/usr/src/sys/sys/stdint.h" typedef int __wchar_t; typedef int __wint_t; typedef int __rune_t; typedef void *__wctrans_t; typedef void *__wctype_t; typedef union { __uint8_t __mbstate8[128]; __int64_t __mbstateL; } __mbstate_t; typedef __int64_t __off_t; typedef __int32_t __pid_t; # 33 "/usr/src/sys/../include/stdint.h" 2 typedef __int8_t int8_t; typedef __int16_t int16_t; typedef __int32_t int32_t; typedef __int64_t int64_t; typedef __uint8_t uint8_t; typedef __uint16_t uint16_t; typedef __uint32_t uint32_t; typedef __uint64_t uint64_t; typedef __intptr_t intptr_t; typedef __uintptr_t uintptr_t; typedef __intmax_t intmax_t; typedef __uintmax_t uintmax_t; typedef __ptrdiff_t ptrdiff_t; typedef __int_fast8_t int_fast8_t; typedef __int_fast16_t int_fast16_t; typedef __int_fast32_t int_fast32_t; typedef __int_fast64_t int_fast64_t; typedef __int_least8_t int_least8_t; typedef __int_least16_t int_least16_t; typedef __int_least32_t int_least32_t; typedef __int_least64_t int_least64_t; typedef __uint_fast8_t uint_fast8_t; typedef __uint_fast16_t uint_fast16_t; typedef __uint_fast32_t uint_fast32_t; typedef __uint_fast64_t uint_fast64_t; typedef __uint_least8_t uint_least8_t; typedef __uint_least16_t uint_least16_t; typedef __uint_least32_t uint_least32_t; typedef __uint_least64_t uint_least64_t; # 1 "include/machine/int_const.h" 1 # 1 "./cpu/int_const.h" 1 # 8 "include/machine/int_const.h" 2 # 74 "/usr/src/sys/../include/stdint.h" 2 # 1 "include/machine/int_limits.h" 1 # 1 "./cpu/int_limits.h" 1 # 8 "include/machine/int_limits.h" 2 # 78 "/usr/src/sys/../include/stdint.h" 2 # 50 "/usr/src/sys/sys/types.h" 2 # 1 "include/machine/stdarg.h" 1 # 1 "./cpu/stdarg.h" 1 # 45 "./cpu/stdarg.h" typedef __builtin_va_list __va_list; typedef __va_list __gnuc_va_list; # 8 "include/machine/stdarg.h" 2 # 52 "/usr/src/sys/sys/types.h" 2 # 1 "include/machine/endian.h" 1 # 1 "./cpu/endian.h" 1 # 146 "./cpu/endian.h" static __inline __uint16_t __bswap16(__uint16_t _x) { return ((__builtin_constant_p(_x) ? ((((_x) & 0xff00) >> 8) | (((_x) & 0x00ff) << 8)) : __extension__ ({ register __uint16_t __X = (_x); __asm ("xchgb %h0, %b0" : "+q" (__X)); __X; }))); } static __inline __uint32_t __bswap32(__uint32_t _x) { return ((__builtin_constant_p(_x) ? ((((_x) & 0xff000000) >> 24) | (((_x) & 0x00ff0000) >> 8) | (((_x) & 0x0000ff00) << 8) | (((_x) & 0x000000ff) << 24)) : __extension__ ({ register __uint32_t __X = (_x); __asm ("bswap %0" : "+r" (__X)); __X; }))); } static __inline __uint64_t __bswap64(__uint64_t _x) { return ((((_x) >> 56) | (((_x) >> 40) & 0xff00) | (((_x) >> 24) & 0xff0000) | (((_x) >> 8) & 0xff000000) | (((_x) << 8) & ((__uint64_t)0xff << 32)) | (((_x) << 24) & ((__uint64_t)0xff << 40)) | (((_x) << 40) & ((__uint64_t)0xff << 48)) | (((_x) << 56)))); } # 8 "include/machine/endian.h" 2 # 54 "/usr/src/sys/sys/types.h" 2 # 1 "./machine/types.h" 1 # 41 "./machine/types.h" # 1 "./cpu/types.h" 1 # 42 "./cpu/types.h" typedef unsigned long vm_offset_t; typedef unsigned long vm_size_t; typedef __int64_t vm_ooffset_t; typedef __uint64_t vm_pindex_t; typedef __uint64_t vm_poff_t; typedef __uint64_t vm_paddr_t; typedef __int32_t __segsz_t; typedef __int32_t register_t; typedef __uint32_t u_register_t; typedef int intfptr_t; typedef unsigned int uintfptr_t; typedef __uint32_t pd_entry_t; typedef __uint32_t pt_entry_t; typedef __uint32_t cpumask_t; # 42 "./machine/types.h" 2 typedef __uint32_t intrmask_t; # 57 "/usr/src/sys/sys/types.h" 2 # 1 "/usr/src/sys/sys/_pthreadtypes.h" 1 # 42 "/usr/src/sys/sys/_pthreadtypes.h" struct pthread; struct pthread_attr; struct pthread_cond; struct pthread_cond_attr; struct pthread_mutex; struct pthread_mutex_attr; struct pthread_once; struct pthread_rwlock; struct pthread_rwlockattr; struct pthread_barrier; struct pthread_barrier_attr; struct pthread_spinlock; # 62 "/usr/src/sys/sys/_pthreadtypes.h" typedef struct pthread *pthread_t; typedef struct pthread_attr *pthread_attr_t; typedef struct pthread_mutex *pthread_mutex_t; typedef struct pthread_mutex_attr *pthread_mutexattr_t; typedef struct pthread_cond *pthread_cond_t; typedef struct pthread_cond_attr *pthread_condattr_t; typedef int pthread_key_t; typedef struct pthread_once pthread_once_t; typedef struct pthread_rwlock *pthread_rwlock_t; typedef struct pthread_rwlockattr *pthread_rwlockattr_t; typedef struct pthread_barrier *pthread_barrier_t; typedef struct pthread_barrierattr *pthread_barrierattr_t; typedef struct pthread_spinlock *pthread_spinlock_t; typedef void *pthread_addr_t; typedef void *(*pthread_startroutine_t) (void *); struct pthread_once { int state; pthread_mutex_t mutex; }; # 63 "/usr/src/sys/sys/types.h" 2 typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef unsigned char unchar; typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; typedef __uint8_t u_int8_t; typedef __uint16_t u_int16_t; typedef __uint32_t u_int32_t; typedef __uint64_t u_int64_t; typedef __uint64_t u_quad_t; typedef __int64_t quad_t; typedef quad_t * qaddr_t; typedef __int64_t blkcnt_t; typedef __int64_t blksize_t; typedef char * caddr_t; typedef const char * c_caddr_t; typedef volatile char * v_caddr_t; typedef __int32_t daddr_t; typedef __uint32_t u_daddr_t; typedef __uint32_t fixpt_t; typedef __uint64_t fsblkcnt_t; typedef __uint64_t fsfilcnt_t; typedef __uint32_t gid_t; typedef __int64_t id_t; typedef __uint32_t in_addr_t; typedef __uint16_t in_port_t; typedef __uint64_t ino_t; typedef long key_t; typedef __uint16_t mode_t; typedef __uint32_t nlink_t; typedef __off_t off_t; typedef __pid_t pid_t; typedef __pid_t lwpid_t; typedef quad_t rlim_t; typedef __segsz_t segsz_t; typedef __uint32_t uid_t; typedef long suseconds_t; typedef __uint32_t useconds_t; typedef int mqd_t; typedef __boolean_t boolean_t; typedef u_int64_t uoff_t; # 144 "/usr/src/sys/sys/types.h" struct cdev; typedef u_int32_t udev_t; typedef struct cdev *cdev_t; # 159 "/usr/src/sys/sys/types.h" typedef udev_t dev_t; # 183 "/usr/src/sys/sys/types.h" typedef __clock_t clock_t; typedef __clockid_t clockid_t; typedef __size_t size_t; typedef __ssize_t ssize_t; typedef __time_t time_t; typedef __timer_t timer_t; # 1 "/usr/src/sys/sys/fd_set.h" 1 # 53 "/usr/src/sys/sys/fd_set.h" typedef unsigned long __fd_mask; typedef struct fd_set { __fd_mask fds_bits[(((1024) + ((((unsigned int)sizeof(__fd_mask) * 8)) - 1)) / (((unsigned int)sizeof(__fd_mask) * 8)))]; } fd_set; # 214 "/usr/src/sys/sys/types.h" 2 # 1 "/usr/src/sys/sys/_timeval.h" 1 # 37 "/usr/src/sys/sys/_timeval.h" # 1 "/usr/src/sys/sys/types.h" 1 # 38 "/usr/src/sys/sys/_timeval.h" 2 struct timeval { time_t tv_sec; suseconds_t tv_usec; }; # 215 "/usr/src/sys/sys/types.h" 2 # 35 "/usr/src/sys/cpu/i386/misc/atomic.c" 2 # 1 "include/machine/atomic.h" 1 # 1 "./cpu/atomic.h" 1 # 108 "./cpu/atomic.h" extern void atomic_set_char(volatile u_char *p, u_char v); extern void atomic_set_char_nonlocked(volatile u_char *p, u_char v); extern void atomic_clear_char(volatile u_char *p, u_char v); extern void atomic_clear_char_nonlocked(volatile u_char *p, u_char v); extern void atomic_add_char(volatile u_char *p, u_char v); extern void atomic_add_char_nonlocked(volatile u_char *p, u_char v); extern void atomic_subtract_char(volatile u_char *p, u_char v); extern void atomic_subtract_char_nonlocked(volatile u_char *p, u_char v); extern void atomic_set_short(volatile u_short *p, u_short v); extern void atomic_set_short_nonlocked(volatile u_short *p, u_short v); extern void atomic_clear_short(volatile u_short *p, u_short v); extern void atomic_clear_short_nonlocked(volatile u_short *p, u_short v); extern void atomic_add_short(volatile u_short *p, u_short v); extern void atomic_add_short_nonlocked(volatile u_short *p, u_short v); extern void atomic_subtract_short(volatile u_short *p, u_short v); extern void atomic_subtract_short_nonlocked(volatile u_short *p, u_short v); extern void atomic_set_int(volatile u_int *p, u_int v); extern void atomic_set_int_nonlocked(volatile u_int *p, u_int v); extern void atomic_clear_int(volatile u_int *p, u_int v); extern void atomic_clear_int_nonlocked(volatile u_int *p, u_int v); extern void atomic_add_int(volatile u_int *p, u_int v); extern void atomic_add_int_nonlocked(volatile u_int *p, u_int v); extern void atomic_subtract_int(volatile u_int *p, u_int v); extern void atomic_subtract_int_nonlocked(volatile u_int *p, u_int v); extern void atomic_set_long(volatile u_long *p, u_long v); extern void atomic_set_long_nonlocked(volatile u_long *p, u_long v); extern void atomic_clear_long(volatile u_long *p, u_long v); extern void atomic_clear_long_nonlocked(volatile u_long *p, u_long v); extern void atomic_add_long(volatile u_long *p, u_long v); extern void atomic_add_long_nonlocked(volatile u_long *p, u_long v); extern void atomic_subtract_long(volatile u_long *p, u_long v); extern void atomic_subtract_long_nonlocked(volatile u_long *p, u_long v); u_int atomic_readandclear_int(volatile u_int *addr); # 165 "./cpu/atomic.h" extern int atomic_swap_int(volatile int *addr, int value); extern int atomic_poll_acquire_int(volatile u_int *p); extern void atomic_poll_release_int(volatile u_int *p); # 252 "./cpu/atomic.h" void atomic_intr_init(__atomic_intr_t *p); int atomic_intr_handler_disable(__atomic_intr_t *p); void atomic_intr_handler_enable(__atomic_intr_t *p); int atomic_intr_handler_is_enabled(__atomic_intr_t *p); int atomic_intr_cond_test(__atomic_intr_t *p); int atomic_intr_cond_try(__atomic_intr_t *p); void atomic_intr_cond_enter(__atomic_intr_t *p, void (*func)(void *), void *arg); void atomic_intr_cond_exit(__atomic_intr_t *p, void (*func)(void *), void *arg); # 370 "./cpu/atomic.h" extern int atomic_cmpset_int(volatile u_int *_dst, u_int _old, u_int _new); extern long atomic_cmpset_long(volatile u_long *_dst, u_long _exp, u_long _src); extern u_int atomic_fetchadd_int(volatile u_int *_p, u_int _v); extern u_long atomic_fetchadd_long(volatile u_long *_p, u_long _v); # 460 "./cpu/atomic.h" extern u_char atomic_load_acq_char(volatile u_char *p); extern void atomic_store_rel_char(volatile u_char *p, u_char v);; extern u_short atomic_load_acq_short(volatile u_short *p); extern void atomic_store_rel_short(volatile u_short *p, u_short v);; extern u_int atomic_load_acq_int(volatile u_int *p); extern void atomic_store_rel_int(volatile u_int *p, u_int v);; extern u_long atomic_load_acq_long(volatile u_long *p); extern void atomic_store_rel_long(volatile u_long *p, u_long v);; # 8 "include/machine/atomic.h" 2 # 39 "/usr/src/sys/cpu/i386/misc/atomic.c" 2