XenevaOS
Loading...
Searching...
No Matches
Macros
bordoisila_ptr.h File Reference
#include <stdint.h>
#include <aurora.h>
#include <Mm/vmmngr.h>
Include dependency graph for bordoisila_ptr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define __BORDOISILA_PTR_MIN   0x10000ULL
 
#define __BORDOISILA_PTR_USER_MAX   0x0000FFFFFFFFFFFFULL /* TTBR0 range, 48-bit VA */
 
#define __BORDOISILA_PTR_PHYS_BASE   0xFFFF800000000000ULL
 
#define __BORDOISILA_PTR_KIMG_BASE   0xFFFFC00000000000ULL
 
#define __BORDOISILA_PTR_HEAP_BASE   0xFFFFE00000000000ULL
 
#define __BORDOISILA_PTR_HEAP_END   0xFFFFFF1000000000ULL
 
#define __BORDOISILA_PTR_KERN_MAX   0xFFFFFFFFFFFFEFFFULL
 
#define __BORDOISILA_PTR_KERN_MIN   __BORDOISILA_PTR_PHYS_BASE
 
#define __BORDOISILA_PTR_REPEATED_BYTE(v)    ((uint64_t)(v) == (((uint64_t)(v) & 0xFFULL) * 0x0101010101010101ULL))
 
#define __BORDOISILA_PTR_REPEATED_WORD(v)
 
#define __BORDOISILA_PTR_POISONED(v)
 
#define __BORDOISILA_PTR_VALIDATE(p)
 
#define __BORDOISILA_HEAP_PTR_VALIDATE(p)
 
#define __BORDOISILA_PHYS_PTR_VALIDATE(p)
 
#define __BORDOISILA_KE_IMAGE_PTR_VALIDATE(p)
 
#define __BORDOISILA_KE_PTR_VALIDATE(p)
 
#define __BORDOISILA_UPTR_VALIDATE(p)
 
#define __BORDOISILA_UBUF_VALIDATE(p, len)
 
#define __BORDOISILA_PTR_VALIDATE_ALIGNED(p, align)    (__BORDOISILA_PTR_VALIDATE(p) && (((uintptr_t)(p) & ((align) - 1)) == 0))
 
#define __BORDOISILA_RETURN_ON_BADPTR(p, ret)
 
#define __BORDOISILA_CONTINUE_IF_BADPTR(p)
 

Detailed Description

BSD 2-Clause License

Copyright (c) 2022-2026, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Macro Definition Documentation

◆ __BORDOISILA_CONTINUE_IF_BADPTR

#define __BORDOISILA_CONTINUE_IF_BADPTR (   p)
Value:
continue
#define __BORDOISILA_PTR_VALIDATE(p)
Definition bordoisila_ptr.h:81

◆ __BORDOISILA_HEAP_PTR_VALIDATE

#define __BORDOISILA_HEAP_PTR_VALIDATE (   p)
Value:
({ \
uint64_t _h = (uint64_t)(uintptr_t)(p); \
__BORDOISILA_PTR_OK(_h) && \
})
unsigned int uintptr_t
Definition stdint.h:94
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
#define __BORDOISILA_PTR_HEAP_BASE
Definition bordoisila_ptr.h:59
#define __BORDOISILA_PTR_HEAP_END
Definition bordoisila_ptr.h:62

◆ __BORDOISILA_KE_IMAGE_PTR_VALIDATE

#define __BORDOISILA_KE_IMAGE_PTR_VALIDATE (   p)
Value:
({ \
uint64_t _i = (uint64_t)(uintptr_t)(p); \
__BORDOISILA_PTR_VALIDATE(_i) && \
})
#define __BORDOISILA_PTR_KIMG_BASE
Definition bordoisila_ptr.h:56

◆ __BORDOISILA_KE_PTR_VALIDATE

#define __BORDOISILA_KE_PTR_VALIDATE (   p)
Value:
({ \
uint64_t _k = (uint64_t)(uintptr_t)(p); \
__BORDOISILA_HEAP_PTR_VALIDATE(_k) || __BORDOISILA_PHYS_PTR_VALIDATE(_k) || \
__BORDOISILA_KIMG_PTR_VALIDATE(_k); \
})
#define __BORDOISILA_PHYS_PTR_VALIDATE(p)
Definition bordoisila_ptr.h:97

◆ __BORDOISILA_PHYS_PTR_VALIDATE

#define __BORDOISILA_PHYS_PTR_VALIDATE (   p)
Value:
({ \
uint64_t _f = (uint64_t)(uintptr_t)(p); \
__BORDOISILA_PTR_VALIDATE(_f) && \
})
#define __BORDOISILA_PTR_PHYS_BASE
Definition bordoisila_ptr.h:53

◆ __BORDOISILA_PTR_HEAP_BASE

#define __BORDOISILA_PTR_HEAP_BASE   0xFFFFE00000000000ULL

◆ __BORDOISILA_PTR_HEAP_END

#define __BORDOISILA_PTR_HEAP_END   0xFFFFFF1000000000ULL

◆ __BORDOISILA_PTR_KERN_MAX

#define __BORDOISILA_PTR_KERN_MAX   0xFFFFFFFFFFFFEFFFULL

◆ __BORDOISILA_PTR_KERN_MIN

#define __BORDOISILA_PTR_KERN_MIN   __BORDOISILA_PTR_PHYS_BASE

◆ __BORDOISILA_PTR_KIMG_BASE

#define __BORDOISILA_PTR_KIMG_BASE   0xFFFFC00000000000ULL

◆ __BORDOISILA_PTR_MIN

#define __BORDOISILA_PTR_MIN   0x10000ULL

◆ __BORDOISILA_PTR_PHYS_BASE

#define __BORDOISILA_PTR_PHYS_BASE   0xFFFF800000000000ULL

◆ __BORDOISILA_PTR_POISONED

#define __BORDOISILA_PTR_POISONED (   v)
Value:
((uint64_t)(v) == 0xDEADBEEFDEADBEEFULL || (uint64_t)(v) == 0xDEADDEADDEADDEADULL || \
(uint64_t)(v) == 0xBAADF00DBAADF00DULL || (uint64_t)(v) == 0xFEEEFEEEFEEEFEEEULL || \
(uint64_t)(v) == 0xDEADBEEFULL || (uint64_t)(v) == 0xBAADF00DULL)

◆ __BORDOISILA_PTR_REPEATED_BYTE

#define __BORDOISILA_PTR_REPEATED_BYTE (   v)     ((uint64_t)(v) == (((uint64_t)(v) & 0xFFULL) * 0x0101010101010101ULL))

◆ __BORDOISILA_PTR_REPEATED_WORD

#define __BORDOISILA_PTR_REPEATED_WORD (   v)
Value:
((((uint64_t)(v) >> 32) == ((uint64_t)(v) & 0xFFFFFFFFULL)) || \
(((uint64_t)(v) & 0xFFFFFFFFULL) == 0xFFFFFFFFULL))

◆ __BORDOISILA_PTR_USER_MAX

#define __BORDOISILA_PTR_USER_MAX   0x0000FFFFFFFFFFFFULL /* TTBR0 range, 48-bit VA */

◆ __BORDOISILA_PTR_VALIDATE

#define __BORDOISILA_PTR_VALIDATE (   p)
Value:
({ \
uint64_t _v = (uint64_t)(uintptr_t)(p); \
})
#define __BORDOISILA_PTR_REPEATED_WORD(v)
Definition bordoisila_ptr.h:72
#define __BORDOISILA_PTR_REPEATED_BYTE(v)
Definition bordoisila_ptr.h:69
#define __BORDOISILA_PTR_KERN_MAX
Definition bordoisila_ptr.h:65
#define __BORDOISILA_PTR_KERN_MIN
Definition bordoisila_ptr.h:67
#define __BORDOISILA_PTR_USER_MAX
Definition bordoisila_ptr.h:43
#define __BORDOISILA_PTR_MIN
Definition bordoisila_ptr.h:40
#define __BORDOISILA_PTR_POISONED(v)
Definition bordoisila_ptr.h:76

◆ __BORDOISILA_PTR_VALIDATE_ALIGNED

#define __BORDOISILA_PTR_VALIDATE_ALIGNED (   p,
  align 
)     (__BORDOISILA_PTR_VALIDATE(p) && (((uintptr_t)(p) & ((align) - 1)) == 0))

◆ __BORDOISILA_RETURN_ON_BADPTR

#define __BORDOISILA_RETURN_ON_BADPTR (   p,
  ret 
)
Value:
do { \
return (ret); \
} while (0)

◆ __BORDOISILA_UBUF_VALIDATE

#define __BORDOISILA_UBUF_VALIDATE (   p,
  len 
)
Value:
({ \
uint64_t _bp = (uint64_t)(uintptr_t)(p); \
uint64_t _bl = (uint64_t)(len); \
__BORDOISILA_UPTR_VALIDATE(_bp) && _bl <= (__BORDOISILA_PTR_USER_MAX - _bp + 1ULL); \
})
size_t len
Definition initial.c:23

◆ __BORDOISILA_UPTR_VALIDATE

#define __BORDOISILA_UPTR_VALIDATE (   p)
Value:
({ \
uint64_t _u = (uint64_t)(uintptr_t)(p); \
__BORDOISILA_PTR_VALIDATE(_u) && _u <= __BORDOISILA_PTR_USER_MAX; \
})