XenevaOS
Loading...
Searching...
No Matches
Functions
aa64lowlevel.h File Reference
#include <aurora.h>
Include dependency graph for aa64lowlevel.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

AU_EXTERN AU_EXPORT uint64_t _getCurrentEL ()
 
AU_EXTERN AU_EXPORT uint64_t read_ttbr0_el1 ()
 
AU_EXTERN AU_EXPORT void write_ttbr0_el1 (uint64_t *base)
 
AU_EXTERN AU_EXPORT uint64_t read_ttbr1_el1 ()
 
AU_EXTERN AU_EXPORT void write_ttbr1_el1 (uint64_t *base)
 
void write_both_ttbr (uint64_t physicalBase)
 
AU_EXTERN AU_EXPORT uint64_t read_tcr_el1 ()
 
AU_EXTERN AU_EXPORT void write_tcr_el1 (uint64_t tcr)
 
AU_EXTERN AU_EXPORT uint64_t read_mair_el1 ()
 
AU_EXTERN AU_EXPORT void write_mair_el1 (uint64_t mair)
 
AU_EXTERN AU_EXPORT uint64_t read_sctlr_el1 ()
 
AU_EXTERN AU_EXPORT void write_sctlr_el1 (uint64_t sctlr)
 
AU_EXTERN AU_EXPORT void dsb_ish ()
 
AU_EXTERN AU_EXPORT void dmb_ish ()
 
AU_EXTERN AU_EXPORT void dmb_sy ()
 
AU_EXTERN AU_EXPORT void dsb_sy_barrier ()
 
AU_EXTERN AU_EXPORT void set_kstack (uint64_t stack)
 
AU_EXTERN AU_EXPORT void isb_flush ()
 
AU_EXTERN AU_EXPORT void tlb_flush (uint64_t virtul_addr)
 
AU_EXTERN AU_EXPORT void tlb_flush_vmalle1is ()
 
AU_EXTERN AU_EXPORT void set_vbar_el1 (uint64_t addr)
 
AU_EXTERN AU_EXPORT uint64_t get_cntpct_el0 ()
 
AU_EXTERN AU_EXPORT uint64_t get_cntfrq_el0 ()
 
AU_EXTERN AU_EXPORT uint64_t get_cpacr_el1 ()
 
uint64_t get_cntv_ctl_el0 ()
 
AU_EXTERN AU_EXPORT void set_cpacr_el1 (uint64_t val)
 
AU_EXTERN AU_EXPORT uint64_t read_esr_el1 ()
 
AU_EXTERN AU_EXPORT uint64_t read_far_el1 ()
 
AU_EXTERN AU_EXPORT uint64_t read_elr_el1 ()
 
void aa64_write_sysreg (const char *reg, uint64_t value)
 
uint64_t aa64_read_sysreg (const char *reg)
 
void enable_sre ()
 
uint32_t read_icc_iidr ()
 
void set_cntp_cval_el0 (uint64_t val)
 
void set_cntp_ctl_el0 (uint64_t val)
 
void setupTimerIRQ ()
 
void suspendTimer ()
 
uint64_t readTimerCtl ()
 
uint64_t read_spsr_el1 ()
 
void enable_irqs ()
 
void mask_irqs ()
 
uint32_t read_icc_iar1_el1 ()
 
uint32_t read_midr ()
 
uint64_t read_mpidr_el1 ()
 
uint64_t read_daif ()
 
uint64_t read_spsel ()
 
void aa64_enter_user (uint64_t stack, uint64_t entryAddr)
 
void aa64_svc_test ()
 
void aa64_utest ()
 
void dc_ivac (uint64_t address)
 
void aa64_store_fp (uint8_t *address, uint64_t *fpcr, uint64_t *fpsr)
 
void aa64_restore_fp (uint8_t *address, uint64_t *fpcr, uint64_t *fpsr)
 
void data_cache_flush (uint64_t *address)
 
void aa64_data_cache_clean_range (void *addr, size_t size)
 

Function Documentation

◆ _getCurrentEL()

AU_EXTERN AU_EXPORT uint64_t _getCurrentEL ( )

BSD 2-Clause License

Copyright (c) 2022-2025, 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.

◆ aa64_data_cache_clean_range()

void aa64_data_cache_clean_range ( void *  addr,
size_t  size 
)
extern

◆ aa64_enter_user()

void aa64_enter_user ( uint64_t  stack,
uint64_t  entryAddr 
)
extern

◆ aa64_read_sysreg()

uint64_t aa64_read_sysreg ( const char *  reg)
extern

◆ aa64_restore_fp()

void aa64_restore_fp ( uint8_t address,
uint64_t fpcr,
uint64_t fpsr 
)
extern

◆ aa64_store_fp()

void aa64_store_fp ( uint8_t address,
uint64_t fpcr,
uint64_t fpsr 
)
extern

◆ aa64_svc_test()

void aa64_svc_test ( )
extern

◆ aa64_utest()

void aa64_utest ( )
extern

◆ aa64_write_sysreg()

void aa64_write_sysreg ( const char *  reg,
uint64_t  value 
)
extern

◆ data_cache_flush()

void data_cache_flush ( uint64_t address)
extern

◆ dc_ivac()

void dc_ivac ( uint64_t  address)
extern

◆ dmb_ish()

AU_EXTERN AU_EXPORT void dmb_ish ( )

◆ dmb_sy()

AU_EXTERN AU_EXPORT void dmb_sy ( )

◆ dsb_ish()

AU_EXTERN AU_EXPORT void dsb_ish ( )

◆ dsb_sy_barrier()

AU_EXTERN AU_EXPORT void dsb_sy_barrier ( )

◆ enable_irqs()

void enable_irqs ( )
extern

◆ enable_sre()

void enable_sre ( )
extern

◆ get_cntfrq_el0()

AU_EXTERN AU_EXPORT uint64_t get_cntfrq_el0 ( )

◆ get_cntpct_el0()

AU_EXTERN AU_EXPORT uint64_t get_cntpct_el0 ( )

◆ get_cntv_ctl_el0()

uint64_t get_cntv_ctl_el0 ( )
extern

◆ get_cpacr_el1()

AU_EXTERN AU_EXPORT uint64_t get_cpacr_el1 ( )

◆ isb_flush()

AU_EXTERN AU_EXPORT void isb_flush ( )

◆ mask_irqs()

void mask_irqs ( )
extern

◆ read_daif()

uint64_t read_daif ( )
extern

◆ read_elr_el1()

AU_EXTERN AU_EXPORT uint64_t read_elr_el1 ( )

◆ read_esr_el1()

AU_EXTERN AU_EXPORT uint64_t read_esr_el1 ( )

◆ read_far_el1()

AU_EXTERN AU_EXPORT uint64_t read_far_el1 ( )

◆ read_icc_iar1_el1()

uint32_t read_icc_iar1_el1 ( )
extern

◆ read_icc_iidr()

uint32_t read_icc_iidr ( )
extern

◆ read_mair_el1()

AU_EXTERN AU_EXPORT uint64_t read_mair_el1 ( )

◆ read_midr()

uint32_t read_midr ( )
extern

◆ read_mpidr_el1()

uint64_t read_mpidr_el1 ( )
extern

◆ read_sctlr_el1()

AU_EXTERN AU_EXPORT uint64_t read_sctlr_el1 ( )

◆ read_spsel()

uint64_t read_spsel ( )
extern

◆ read_spsr_el1()

uint64_t read_spsr_el1 ( )
extern

◆ read_tcr_el1()

AU_EXTERN AU_EXPORT uint64_t read_tcr_el1 ( )

◆ read_ttbr0_el1()

AU_EXTERN AU_EXPORT uint64_t read_ttbr0_el1 ( )

◆ read_ttbr1_el1()

AU_EXTERN AU_EXPORT uint64_t read_ttbr1_el1 ( )

◆ readTimerCtl()

uint64_t readTimerCtl ( )
extern

◆ set_cntp_ctl_el0()

void set_cntp_ctl_el0 ( uint64_t  val)
extern

◆ set_cntp_cval_el0()

void set_cntp_cval_el0 ( uint64_t  val)
extern

◆ set_cpacr_el1()

AU_EXTERN AU_EXPORT void set_cpacr_el1 ( uint64_t  val)

◆ set_kstack()

AU_EXTERN AU_EXPORT void set_kstack ( uint64_t  stack)

◆ set_vbar_el1()

AU_EXTERN AU_EXPORT void set_vbar_el1 ( uint64_t  addr)

◆ setupTimerIRQ()

void setupTimerIRQ ( )
extern

◆ suspendTimer()

void suspendTimer ( )
extern

◆ tlb_flush()

AU_EXTERN AU_EXPORT void tlb_flush ( uint64_t  virtul_addr)

◆ tlb_flush_vmalle1is()

AU_EXTERN AU_EXPORT void tlb_flush_vmalle1is ( )

◆ write_both_ttbr()

void write_both_ttbr ( uint64_t  physicalBase)
extern

◆ write_mair_el1()

AU_EXTERN AU_EXPORT void write_mair_el1 ( uint64_t  mair)

◆ write_sctlr_el1()

AU_EXTERN AU_EXPORT void write_sctlr_el1 ( uint64_t  sctlr)

◆ write_tcr_el1()

AU_EXTERN AU_EXPORT void write_tcr_el1 ( uint64_t  tcr)

◆ write_ttbr0_el1()

AU_EXTERN AU_EXPORT void write_ttbr0_el1 ( uint64_t base)

◆ write_ttbr1_el1()

AU_EXTERN AU_EXPORT void write_ttbr1_el1 ( uint64_t base)