iPXE
uaccess.h File Reference

Access to external ("user") memory. More...

#include <stdint.h>
#include <ipxe/api.h>
#include <config/ioapi.h>
#include <ipxe/virt_offset.h>
#include <ipxe/linux/linux_uaccess.h>
#include <bits/uaccess.h>

Go to the source code of this file.

Macros

#define UACCESS_PREFIX_flat   __flat_
#define UACCESS_INLINE(_subsys, _api_func)
 Calculate static inline user access API function name.
#define PROVIDE_UACCESS(_subsys, _api_func, _func)
 Provide an user access API implementation.
#define PROVIDE_UACCESS_INLINE(_subsys, _api_func)
 Provide a static inline user access API implementation.

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 FILE_SECBOOT (PERMITTED)
static __always_inline void * UACCESS_INLINE (flat, phys_to_virt)(physaddr_t phys)
static __always_inline physaddr_t UACCESS_INLINE (flat, virt_to_phys)(volatile const void *virt)
physaddr_t __attribute__ ((const)) virt_to_phys(volatile const void *virt)
 Convert virtual address to a physical address.

Detailed Description

Access to external ("user") memory.

Definition in file uaccess.h.

Macro Definition Documentation

◆ UACCESS_PREFIX_flat

#define UACCESS_PREFIX_flat   __flat_

Definition at line 21 of file uaccess.h.

◆ UACCESS_INLINE

#define UACCESS_INLINE ( _subsys,
_api_func )
Value:
SINGLE_API_INLINE ( UACCESS_PREFIX_ ## _subsys, _api_func )
#define SINGLE_API_INLINE(_prefix, _api_func)
Calculate static inline function name.
Definition api.h:45

Calculate static inline user access API function name.

Parameters
_prefixSubsystem prefix
_api_funcAPI function
Return values
_subsys_funcSubsystem API function

Definition at line 31 of file uaccess.h.

31#define UACCESS_INLINE( _subsys, _api_func ) \
32 SINGLE_API_INLINE ( UACCESS_PREFIX_ ## _subsys, _api_func )

◆ PROVIDE_UACCESS

#define PROVIDE_UACCESS ( _subsys,
_api_func,
_func )
Value:
PROVIDE_SINGLE_API ( UACCESS_PREFIX_ ## _subsys, _api_func, _func )
#define PROVIDE_SINGLE_API(_prefix, _api_func, _func)
Provide an API implementation.
Definition api.h:55

Provide an user access API implementation.

Parameters
_prefixSubsystem prefix
_api_funcAPI function
_funcImplementing function

Definition at line 41 of file uaccess.h.

41#define PROVIDE_UACCESS( _subsys, _api_func, _func ) \
42 PROVIDE_SINGLE_API ( UACCESS_PREFIX_ ## _subsys, _api_func, _func )

◆ PROVIDE_UACCESS_INLINE

#define PROVIDE_UACCESS_INLINE ( _subsys,
_api_func )
Value:
PROVIDE_SINGLE_API_INLINE ( UACCESS_PREFIX_ ## _subsys, _api_func )
#define PROVIDE_SINGLE_API_INLINE(_prefix, _api_func)
Provide a static inline API implementation.
Definition api.h:74

Provide a static inline user access API implementation.

Parameters
_prefixSubsystem prefix
_api_funcAPI function

Definition at line 50 of file uaccess.h.

50#define PROVIDE_UACCESS_INLINE( _subsys, _api_func ) \
51 PROVIDE_SINGLE_API_INLINE ( UACCESS_PREFIX_ ## _subsys, _api_func )

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )

◆ UACCESS_INLINE() [1/2]

__always_inline void * UACCESS_INLINE ( flat ,
phys_to_virt  )
inlinestatic

Definition at line 54 of file uaccess.h.

54 {
55 return ( ( void * ) phys );
56}
static signed char phys[4]
Definition epic100.c:88

References phys.

◆ UACCESS_INLINE() [2/2]

__always_inline physaddr_t UACCESS_INLINE ( flat ,
virt_to_phys  ) const volatile
inlinestatic

Definition at line 59 of file uaccess.h.

59 {
60 return ( ( physaddr_t ) virt );
61}
unsigned long physaddr_t
Definition stdint.h:20

◆ __attribute__()

physaddr_t __attribute__ ( (const) ) const volatile

Convert virtual address to a physical address.

Convert physical address to a virtual address.

Parameters
virtVirtual address
Return values
physPhysical address
Parameters
physPhysical address
Return values
virtVirtual address

This operation is not available under all memory models.

References __attribute__, and phys.