| /Linux-v5.10/Documentation/translations/it_IT/process/ | 
| D | volatile-considered-harmful.rst | 1 .. include:: ../disclaimer-ita.rst3 :Original: :ref:`Documentation/process/volatile-considered-harmful.rst <volatile_considered_harmful…
 8 Perché la parola chiave "volatile" non dovrebbe essere usata
 9 ------------------------------------------------------------
 13 a volte saranno tentati dall'utilizzare *volatile* nel kernel per le
 15 *volatile* come una variabile atomica di facile utilizzo, ma non è così.
 16 L'uso di *volatile* nel kernel non è quasi mai corretto; questo documento ne
 19 Il punto chiave da capire su *volatile* è che il suo scopo è quello di
 20 sopprimere le ottimizzazioni, che non è quasi mai quello che si vuole.
 27 Come *volatile*, le primitive del kernel che rendono sicuro l'accesso ai dati
 [all …]
 
 | 
| /Linux-v5.10/include/asm-generic/bitops/ | 
| D | instrumented-non-atomic.h | 1 /* SPDX-License-Identifier: GPL-2.0 */4  * This file provides wrappers with sanitizer instrumentation for non-atomic
 17  * __set_bit - Set a bit in memory
 21  * Unlike set_bit(), this function is non-atomic. If it is called on the same
 25 static inline void __set_bit(long nr, volatile unsigned long *addr)  in __set_bit()
 32  * __clear_bit - Clears a bit in memory
 36  * Unlike clear_bit(), this function is non-atomic. If it is called on the same
 40 static inline void __clear_bit(long nr, volatile unsigned long *addr)  in __clear_bit()
 47  * __change_bit - Toggle a bit in memory
 51  * Unlike change_bit(), this function is non-atomic. If it is called on the same
 [all …]
 
 | 
| D | non-atomic.h | 1 /* SPDX-License-Identifier: GPL-2.0 */8  * __set_bit - Set a bit in memory
 12  * Unlike set_bit(), this function is non-atomic and may be reordered.
 16 static inline void __set_bit(int nr, volatile unsigned long *addr)  in __set_bit()
 24 static inline void __clear_bit(int nr, volatile unsigned long *addr)  in __clear_bit()
 33  * __change_bit - Toggle a bit in memory
 37  * Unlike change_bit(), this function is non-atomic and may be reordered.
 41 static inline void __change_bit(int nr, volatile unsigned long *addr)  in __change_bit()
 50  * __test_and_set_bit - Set a bit and return its old value
 54  * This operation is non-atomic and can be reordered.
 [all …]
 
 | 
| /Linux-v5.10/Documentation/block/ | 
| D | writeback_cache_control.rst | 2 Explicit volatile write back cache control6 ------------
 8 Many storage devices, especially in the consumer market, come with volatile
 10 operating system before data actually has hit the non-volatile storage.  This
 12 system needs to force data out to the non-volatile storage when it performs
 21 ----------------------
 24 the filesystem and will make sure the volatile cache of the storage device
 26 guarantees that previously completed write requests are on non-volatile
 34 ------------------
 38 signaled after the data has been committed to non-volatile storage.
 [all …]
 
 | 
| /Linux-v5.10/arch/ia64/include/asm/ | 
| D | bitops.h | 1 /* SPDX-License-Identifier: GPL-2.0 */6  * Copyright (C) 1998-2003 Hewlett-Packard Co
 7  *	David Mosberger-Tang <davidm@hpl.hp.com>
 23  * set_bit - Atomically set a bit in memory
 30  * restricted to acting on a single-word quantity.
 34  * operate on hw-defined data-structures, so we can't easily change these
 40 set_bit (int nr, volatile void *addr)  in set_bit()
 43 	volatile __u32 *m;  in set_bit()
 46 	m = (volatile __u32 *) addr + (nr >> 5);  in set_bit()
 56  * __set_bit - Set a bit in memory
 [all …]
 
 | 
| /Linux-v5.10/tools/include/asm-generic/bitops/ | 
| D | non-atomic.h | 1 /* SPDX-License-Identifier: GPL-2.0 */8  * __set_bit - Set a bit in memory
 12  * Unlike set_bit(), this function is non-atomic and may be reordered.
 16 static inline void __set_bit(int nr, volatile unsigned long *addr)  in __set_bit()
 24 static inline void __clear_bit(int nr, volatile unsigned long *addr)  in __clear_bit()
 33  * __change_bit - Toggle a bit in memory
 37  * Unlike change_bit(), this function is non-atomic and may be reordered.
 41 static inline void __change_bit(int nr, volatile unsigned long *addr)  in __change_bit()
 50  * __test_and_set_bit - Set a bit and return its old value
 54  * This operation is non-atomic and can be reordered.
 [all …]
 
 | 
| /Linux-v5.10/arch/powerpc/kvm/ | 
| D | tm.S | 1 /* SPDX-License-Identifier: GPL-2.0-only */11 #include <asm/asm-offsets.h>
 20  * Save transactional state and TM-related registers.
 22  * - r3 pointing to the vcpu struct
 23  * - r4 containing the MSR with current TS bits:
 25  * - r5 containing a flag indicating that non-volatile registers
 34 	stdu    r1, -SWITCH_FRAME_SIZE(r1)
 43 	rldimi	r8, r0, MSR_TM_LG, 63-MSR_TM_LG
 48 	rldicl. r4, r4, 64 - MSR_TS_S_LG, 62
 54 	/* Save CR on the stack - even if r5 == 0 we need to get cr7 back. */
 [all …]
 
 | 
| /Linux-v5.10/Documentation/devicetree/bindings/pmem/ | 
| D | pmem-region.txt | 1 Device-tree bindings for persistent memory regions2 -----------------------------------------------------
 16 -----------------------------
 19 	- compatible = "pmem-region"
 21 	- reg = <base, size>;
 33 	- Any relevant NUMA assocativity properties for the target platform.
 35 	- volatile; This property indicates that this region is actually
 36 	  backed by non-persistent memory. This lets the OS know that it
 41 	  is backed by non-volatile memory.
 44 --------------------
 [all …]
 
 | 
| /Linux-v5.10/arch/sh/include/asm/ | 
| D | bitops-op32.h | 1 /* SPDX-License-Identifier: GPL-2.0 */6  * The bit modifying instructions on SH-2A are only capable of working
 7  * with a 3-bit immediate, which signifies the shift position for the bit
 11 #define BITOP_LE_SWIZZLE	((BITS_PER_LONG-1) & ~0x7)
 19 static inline void __set_bit(int nr, volatile unsigned long *addr)  in __set_bit()
 36 static inline void __clear_bit(int nr, volatile unsigned long *addr)  in __clear_bit()
 55  * __change_bit - Toggle a bit in memory
 59  * Unlike change_bit(), this function is non-atomic and may be reordered.
 63 static inline void __change_bit(int nr, volatile unsigned long *addr)  in __change_bit()
 82  * __test_and_set_bit - Set a bit and return its old value
 [all …]
 
 | 
| D | bitops-cas.h | 1 /* SPDX-License-Identifier: GPL-2.0 */5 static inline unsigned __bo_cas(volatile unsigned *p, unsigned old, unsigned new)  in __bo_cas()
 14 static inline void set_bit(int nr, volatile void *addr)  in set_bit()
 17 	volatile unsigned *a = addr;  in set_bit()
 26 static inline void clear_bit(int nr, volatile void *addr)  in clear_bit()
 29 	volatile unsigned *a = addr;  in clear_bit()
 38 static inline void change_bit(int nr, volatile void *addr)  in change_bit()
 41 	volatile unsigned *a = addr;  in change_bit()
 50 static inline int test_and_set_bit(int nr, volatile void *addr)  in test_and_set_bit()
 53 	volatile unsigned *a = addr;  in test_and_set_bit()
 [all …]
 
 | 
| /Linux-v5.10/arch/alpha/include/asm/ | 
| D | bitops.h | 1 /* SPDX-License-Identifier: GPL-2.0 */17  * These have to be done with inline assembly: that way the bit-setting
 29 set_bit(unsigned long nr, volatile void * addr)  in set_bit()
 47  * WARNING: non atomic version.
 50 __set_bit(unsigned long nr, volatile void * addr)  in __set_bit()
 58 clear_bit(unsigned long nr, volatile void * addr)  in clear_bit()
 76 clear_bit_unlock(unsigned long nr, volatile void * addr)  in clear_bit_unlock()
 83  * WARNING: non atomic version.
 86 __clear_bit(unsigned long nr, volatile void * addr)  in __clear_bit()
 94 __clear_bit_unlock(unsigned long nr, volatile void * addr)  in __clear_bit_unlock()
 [all …]
 
 | 
| /Linux-v5.10/arch/riscv/include/asm/ | 
| D | bitops.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */18 #include <asm-generic/bitops/__ffs.h>
 19 #include <asm-generic/bitops/ffz.h>
 20 #include <asm-generic/bitops/fls.h>
 21 #include <asm-generic/bitops/__fls.h>
 22 #include <asm-generic/bitops/fls64.h>
 23 #include <asm-generic/bitops/find.h>
 24 #include <asm-generic/bitops/sched.h>
 25 #include <asm-generic/bitops/ffs.h>
 27 #include <asm-generic/bitops/hweight.h>
 [all …]
 
 | 
| /Linux-v5.10/Documentation/devicetree/bindings/rtc/ | 
| D | rtc-meson.txt | 4 - compatible: should be one of the following describing the hardware:5 	* "amlogic,meson6-rtc"
 6 	* "amlogic,meson8-rtc"
 7 	* "amlogic,meson8b-rtc"
 8 	* "amlogic,meson8m2-rtc"
 10 - reg: physical register space for the controller's memory mapped registers.
 11 - interrupts: the interrupt line of the RTC block.
 12 - clocks: reference to the external 32.768kHz crystal oscillator.
 13 - vdd-supply: reference to the power supply of the RTC block.
 14 - resets: reset controller reference to allow reset of the controller
 [all …]
 
 | 
| /Linux-v5.10/arch/powerpc/include/asm/ | 
| D | io.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */69  * set when the platform supports "special" PIO accesses via a non memory
 85  * This provides the non-bus specific accessors to MMIO. Those are PowerPC
 104 static inline u##size name(const volatile u##size __iomem *addr)	\
 113 static inline void name(volatile u##size __iomem *addr, u##size val)	\
 121 static inline u##size name(const volatile u##size __iomem *addr)	\
 130 static inline void name(volatile u##size __iomem *addr, u##size val)	\
 170 static inline u64 in_le64(const volatile u64 __iomem *addr)  in in_le64()
 175 static inline void out_le64(volatile u64 __iomem *addr, u64 val)  in out_le64()
 184 static inline u64 in_be64(const volatile u64 __iomem *addr)  in in_be64()
 [all …]
 
 | 
| /Linux-v5.10/arch/powerpc/lib/ | 
| D | test_emulate_step_exec_instr.S | 1 /* SPDX-License-Identifier: GPL-2.0 */3  * Non-emulated single-stepping support (currently limited to basic integer
 9 #include <asm/asm-offsets.h>
 11 #include <asm/code-patching-asm.h>
 19 	 *   In-memory pt_regs	(SP + STACK_FRAME_OVERHEAD)
 26 	 * states in an in-memory pt_regs and also create the back chain to
 29 	stdu	r1, -INT_FRAME_SIZE(r1)
 32 	 * Save non-volatile GPRs on stack. This includes TOC pointer (GPR2)
 52 	 * even though only fields 2 to 4 are non-volatile.
 59 	 * critical non-volatile registers. The register state is passed as a
 [all …]
 
 | 
| /Linux-v5.10/drivers/misc/lkdtm/ | 
| D | perms.c | 1 // SPDX-License-Identifier: GPL-2.04  * permissions: non-executable regions, non-writable regions, and
 5  * even non-readable regions.
 21 /* This is non-const, so it will end up in the .data section. */
 32  * non-executable memory regions.
 84 	/* Explicitly cast away "const" for the test and make volatile. */  in lkdtm_WRITE_RO()
 85 	volatile unsigned long *ptr = (unsigned long *)&rodata;  in lkdtm_WRITE_RO()
 94 	volatile unsigned long *ptr = &ro_after_init;  in lkdtm_WRITE_RO_AFTER_INIT()
 114 	volatile unsigned char *ptr;  in lkdtm_WRITE_KERN()
 116 	size = (unsigned long)do_overwritten - (unsigned long)do_nothing;  in lkdtm_WRITE_KERN()
 [all …]
 
 | 
| /Linux-v5.10/arch/hexagon/include/asm/ | 
| D | bitops.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */5  * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
 20  * (i.e. I get to shift by #5-2 (32 bits per long, 4 bytes per access),
 27  * test_and_clear_bit - clear a bit and return its old value
 31 static inline int test_and_clear_bit(int nr, volatile void *addr)  in test_and_clear_bit()
 51  * test_and_set_bit - set a bit and return its old value
 55 static inline int test_and_set_bit(int nr, volatile void *addr)  in test_and_set_bit()
 77  * test_and_change_bit - toggle a bit and return its old value
 81 static inline int test_and_change_bit(int nr, volatile void *addr)  in test_and_change_bit()
 106 static inline void clear_bit(int nr, volatile void *addr)  in clear_bit()
 [all …]
 
 | 
| /Linux-v5.10/Documentation/ABI/testing/ | 
| D | sysfs-bus-nfit | 8 Contact:	linux-nvdimm@lists.01.org10 		(RO) Serial number of the NVDIMM (non-volatile dual in-line
 17 Contact:	linux-nvdimm@lists.01.org
 26 Contact:	linux-nvdimm@lists.01.org
 34 Contact:	linux-nvdimm@lists.01.org
 42 Contact:	linux-nvdimm@lists.01.org
 52 Contact:	linux-nvdimm@lists.01.org
 54 		(RO) The flags in the NFIT memory device sub-structure indicate
 71 Contact:	linux-nvdimm@lists.01.org
 80 		only expect one code per-dimm as they will ignore
 [all …]
 
 | 
| /Linux-v5.10/drivers/scsi/ | 
| D | gvp11.h | 1 /* SPDX-License-Identifier: GPL-2.0 */24  * if the transfer address ANDed with this results in a non-zero
 31 	volatile unsigned short	CNTR;
 33 	volatile unsigned char	SASR;
 35 	volatile unsigned char	SCMD;
 37 	volatile unsigned short	BANK;
 39 	volatile unsigned long	ACR;
 40 	volatile unsigned short	secret1; /* store 0 here */
 41 	volatile unsigned short	ST_DMA;
 42 	volatile unsigned short	SP_DMA;
 [all …]
 
 | 
| D | a2091.h | 1 /* SPDX-License-Identifier: GPL-2.0 */24  * if the transfer address ANDed with this results in a non-zero
 31 	volatile unsigned short	ISTR;
 32 	volatile unsigned short	CNTR;
 34 	volatile unsigned int	WTC;
 35 	volatile unsigned long	ACR;
 37 	volatile unsigned short	DAWR;
 39 	volatile unsigned char	SASR;
 41 	volatile unsigned char	SCMD;
 43 	volatile unsigned short	ST_DMA;
 [all …]
 
 | 
| D | a3000.h | 1 /* SPDX-License-Identifier: GPL-2.0 */7  * Header file for the Amiga 3000 built-in SCSI controller for Linux
 24  * if the transfer address ANDed with this results in a non-zero
 31 	volatile unsigned short	DAWR;
 32 	volatile unsigned int	WTC;
 34 	volatile unsigned short	CNTR;
 35 	volatile unsigned long	ACR;
 37 	volatile unsigned short	ST_DMA;
 39 	volatile unsigned short	FLUSH;
 41 	volatile unsigned short	CINT;
 [all …]
 
 | 
| /Linux-v5.10/Documentation/arm/ | 
| D | kernel_user_helpers.rst | 2 Kernel-provided User Helpers43 --------------------
 77 -------------
 114   - Valid only if __kuser_helper_version >= 1 (from kernel version 2.6.12).
 117 -------------
 123   int __kuser_cmpxchg(int32_t oldval, int32_t newval, volatile int32_t *ptr);
 134   r0 = success code (zero or non-zero)
 144   Return zero if `*ptr` was changed or non-zero if no exchange happened.
 150   typedef int (__kuser_cmpxchg_t)(int oldval, int newval, volatile int *ptr);
 153   int atomic_add(volatile int *ptr, int val)
 [all …]
 
 | 
| /Linux-v5.10/drivers/nvdimm/ | 
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only3 	tristate "NVDIMM (Non-Volatile Memory Device) Support"
 9 	  Generic support for non-volatile memory devices including
 10 	  ACPI-6-NFIT defined resources.  On platforms that define an
 18 	  mode to non-volatile memory.
 31 	  non-standard OEM-specific E820 memory type (type-12, see
 34 	  Documentation/admin-guide/kernel-parameters.rst).  This driver converts
 36 	  capable of DAX (direct-access) file system mappings.  See
 37 	  Documentation/driver-api/nvdimm/nvdimm.rst for more details.
 46 	  Support NVDIMMs, or other devices, that implement a BLK-mode
 [all …]
 
 | 
| /Linux-v5.10/tools/arch/x86/include/asm/ | 
| D | cmpxchg.h | 1 /* SPDX-License-Identifier: GPL-2.0 */8  * Non-existant functions to indicate usage errors at link time
 9  * (or compile-time if the compiler implements __compiletime_error().
 15  * Constants for operation sizes. On 32-bit, the 64-bit size it set to
 16  * -1 because sizeof will never return -1, thereby making those switch
 27 #define	__X86_CASE_Q	-1		/* sizeof will never return -1 */
 43 		volatile u8 *__ptr = (volatile u8 *)(ptr);		\
 44 		asm volatile(lock "cmpxchgb %2,%1"			\
 52 		volatile u16 *__ptr = (volatile u16 *)(ptr);		\
 53 		asm volatile(lock "cmpxchgw %2,%1"			\
 [all …]
 
 | 
| D | barrier.h | 1 /* SPDX-License-Identifier: GPL-2.0 */7  * out from tools/perf/perf-sys.h so as to make it be located
 17  * Some non-Intel clones support out of order store. wmb() ceases to be a
 20 #define mb()	asm volatile("lock; addl $0,0(%%esp)" ::: "memory")
 21 #define rmb()	asm volatile("lock; addl $0,0(%%esp)" ::: "memory")
 22 #define wmb()	asm volatile("lock; addl $0,0(%%esp)" ::: "memory")
 24 #define mb()	asm volatile("mfence" ::: "memory")
 25 #define rmb()	asm volatile("lfence" ::: "memory")
 26 #define wmb()	asm volatile("sfence" ::: "memory")
 29 #define smp_mb()  asm volatile("lock; addl $0,-132(%%rsp)" ::: "memory", "cc")
 
 |