D0
ˆ
ƒ9_•I|¥‰ÓMdœv ©ƒ&íK<óo¬ÂÁ Ò
Index of /anon_sym/anon/sys/dev/char/4:45/subsystem/ttyS0/device/00:00:0/power
Index of /anon_sym/anon/sys/dev/char/4:45/subsystem/ttyS0/device/00:00:0/power
�ÃÂÁ File not found.
�ÃÂÁ File not found.
+ ˆl–Ü4ý( ©
³( Å€fàB¦-ÿÀ
„¡uÏ_†I|¥�+Äà ?÷ /* SPDX-License-Identifier: GPL-2.0-only */
/*
* Pointer abstraction for IO/system memory
*/
#ifndef __IOSYS_MAP_H__
#define __IOSYS_MAP_H__
#include
#include
#include
/**
* DOC: overview
*
* When accessing a memory region, depending on its location, users may have to
* access it with I/O operations or memory load/store operations. For example,
* copying to system memory could be done with memcpy(), copying to I/O memory
* would be done with memcpy_toio().
*
* .. code-block:: c
*
* void *vaddr = ...; // pointer to system memory
* memcpy(vaddr, src, len);
*
* void *vaddr_iomem = ...; // pointer to I/O memory
* memcpy_toio(vaddr_iomem, src, len);
*
* The user of such pointer may not have information about the mapping of that
* region or may want to have a single code path to handle operations on that
* buffer, regardless if it's located in system or IO memory. The type
* :c:type:`struct iosys_map ` and its helpers abstract that so the
* buffer can be passed around to other drivers or have separate duties inside
* the same driver for allocation, read and write operations.
*
* Open-coding access to :c:type:`struct iosys_map ` is considered
* bad style. Rather then accessing its fields directly, use one of the provided
* helper functions, or implement your own. For example, instances of
* :c:type:`struct iosys_map ` can be initialized statically with
* IOSYS_MAP_INIT_VADDR(), or at runtime with iosys_map_set_vaddr(). These
* helpers will set an address in system memory.
*
* .. code-block:: c
*
* struct iosys_map map = IOSYS_MAP_INIT_VADDR(0xdeadbeaf);
*
* iosys_map_set_vaddr(&map, 0xdeadbeaf);
*
* To set an address in I/O memory, use IOSYS_MAP_INIT_VADDR_IOMEM() or
* iosys_map_set_vaddr_iomem().
*
* .. code-block:: c
*
* struct iosys_map map = IOSYS_MAP_INIT_VADDR_IOMEM(0xdeadbeaf);
*
* iosys_map_set_vaddr_iomem(&map, 0xdeadbeaf);
*
* Instances of struct iosys_map do not have to be cleaned up, but
* can be cleared to NULL with iosys_map_clear(). Cleared mappings
* always refer to system mem