iPXE
Macros | Functions
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)   SINGLE_API_INLINE ( UACCESS_PREFIX_ ## _subsys, _api_func )
 Calculate static inline user access API function name. More...
 
#define PROVIDE_UACCESS(_subsys, _api_func, _func)   PROVIDE_SINGLE_API ( UACCESS_PREFIX_ ## _subsys, _api_func, _func )
 Provide an user access API implementation. More...
 
#define PROVIDE_UACCESS_INLINE(_subsys, _api_func)   PROVIDE_SINGLE_API_INLINE ( UACCESS_PREFIX_ ## _subsys, _api_func )
 Provide a static inline user access API implementation. More...
 

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 
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. More...
 

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 20 of file uaccess.h.

◆ UACCESS_INLINE

#define UACCESS_INLINE (   _subsys,
  _api_func 
)    SINGLE_API_INLINE ( UACCESS_PREFIX_ ## _subsys, _api_func )

Calculate static inline user access API function name.

Parameters
_prefixSubsystem prefix
_api_funcAPI function
Return values
_subsys_funcSubsystem API function

Definition at line 30 of file uaccess.h.

◆ PROVIDE_UACCESS

#define PROVIDE_UACCESS (   _subsys,
  _api_func,
  _func 
)    PROVIDE_SINGLE_API ( UACCESS_PREFIX_ ## _subsys, _api_func, _func )

Provide an user access API implementation.

Parameters
_prefixSubsystem prefix
_api_funcAPI function
_funcImplementing function

Definition at line 40 of file uaccess.h.

◆ PROVIDE_UACCESS_INLINE

#define PROVIDE_UACCESS_INLINE (   _subsys,
  _api_func 
)    PROVIDE_SINGLE_API_INLINE ( UACCESS_PREFIX_ ## _subsys, _api_func )

Provide a static inline user access API implementation.

Parameters
_prefixSubsystem prefix
_api_funcAPI function

Definition at line 49 of file uaccess.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL  )

◆ UACCESS_INLINE() [1/2]

static __always_inline void* UACCESS_INLINE ( flat  ,
phys_to_virt   
)
inlinestatic

Definition at line 53 of file uaccess.h.

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

References phys.

◆ UACCESS_INLINE() [2/2]

static __always_inline physaddr_t UACCESS_INLINE ( flat  ,
virt_to_phys   
) const volatile
inlinestatic

Definition at line 58 of file uaccess.h.

58  {
59  return ( ( physaddr_t ) virt );
60 }
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.