mirror of
https://github.com/Atmosphere-NX/Atmosphere
synced 2024-11-14 00:56:35 +00:00
meso: makefile improvements, sysreg accessors
This commit is contained in:
parent
507ab46709
commit
ad0d2faa6c
4 changed files with 32 additions and 5 deletions
|
@ -71,4 +71,16 @@ namespace ams::kern::arm64::cpu {
|
||||||
EnsureInstructionConsistency();
|
EnsureInstructionConsistency();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ALWAYS_INLINE uintptr_t GetCoreLocalRegionAddress() {
|
||||||
|
register uintptr_t x18 asm("x18");
|
||||||
|
__asm__ __volatile__("" : [x18]"=r"(x18));
|
||||||
|
return x18;
|
||||||
|
}
|
||||||
|
|
||||||
|
ALWAYS_INLINE void SetCoreLocalRegionAddress(uintptr_t value) {
|
||||||
|
register uintptr_t x18 asm("x18") = value;
|
||||||
|
__asm__ __volatile__("":: [x18]"r"(x18));
|
||||||
|
SetTpidrEl1(value);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ namespace ams::kern::arm64::cpu {
|
||||||
|
|
||||||
MESOSPHERE_CPU_DEFINE_SYSREG_ACCESSORS(TcrEl1, tcr_el1)
|
MESOSPHERE_CPU_DEFINE_SYSREG_ACCESSORS(TcrEl1, tcr_el1)
|
||||||
MESOSPHERE_CPU_DEFINE_SYSREG_ACCESSORS(MairEl1, mair_el1)
|
MESOSPHERE_CPU_DEFINE_SYSREG_ACCESSORS(MairEl1, mair_el1)
|
||||||
|
MESOSPHERE_CPU_DEFINE_SYSREG_ACCESSORS(TpidrEl1, tpidr_el1)
|
||||||
|
|
||||||
MESOSPHERE_CPU_DEFINE_SYSREG_ACCESSORS(VbarEl1, vbar_el1)
|
MESOSPHERE_CPU_DEFINE_SYSREG_ACCESSORS(VbarEl1, vbar_el1)
|
||||||
|
|
||||||
|
|
|
@ -239,6 +239,15 @@ namespace ams::kern {
|
||||||
MESOSPHERE_INIT_ABORT();
|
MESOSPHERE_INIT_ABORT();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
iterator FindFirstBlockByType(u32 type_id) {
|
||||||
|
for (auto it = this->begin(); it != this->end(); it++) {
|
||||||
|
if (it->GetType() == type_id) {
|
||||||
|
return it;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MESOSPHERE_INIT_ABORT();
|
||||||
|
}
|
||||||
|
|
||||||
iterator FindFirstDerivedBlock(u32 type_id) {
|
iterator FindFirstDerivedBlock(u32 type_id) {
|
||||||
for (auto it = this->begin(); it != this->end(); it++) {
|
for (auto it = this->begin(); it != this->end(); it++) {
|
||||||
if (it->IsDerivedFrom(type_id)) {
|
if (it->IsDerivedFrom(type_id)) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
TARGETS := kernel kernel_ldr
|
TARGETS := kernel.bin kernel_ldr.bin
|
||||||
CLEAN_TARGETS := $(foreach target,$(TARGETS),$(target)-clean)
|
CLEAN_TARGETS := $(foreach target,$(TARGETS),$(target:.bin=)-clean)
|
||||||
|
|
||||||
SUBFOLDERS := $(MODULES)
|
SUBFOLDERS := $(MODULES)
|
||||||
|
|
||||||
|
@ -12,10 +12,15 @@ mesosphere.bin: $(TARGETS)
|
||||||
@python build_mesosphere.py
|
@python build_mesosphere.py
|
||||||
@echo "Built mesosphere.bin..."
|
@echo "Built mesosphere.bin..."
|
||||||
|
|
||||||
$(TARGETS):
|
$(TARGETS): check_libmeso
|
||||||
$(MAKE) -C $@
|
$(MAKE) -C $(@:.bin=)
|
||||||
|
@cp $(@:.bin=)/$(@) $(@)
|
||||||
|
|
||||||
|
check_libmeso:
|
||||||
|
@$(MAKE) --no-print-directory -C ../libraries/libmesosphere
|
||||||
|
|
||||||
$(CLEAN_TARGETS):
|
$(CLEAN_TARGETS):
|
||||||
$(MAKE) -C $(@:-clean=) clean
|
$(MAKE) -C $(@:-clean=) clean
|
||||||
|
@rm -f $(@:-clean=).bin
|
||||||
|
|
||||||
.PHONY: all clean $(TARGETS) $(CLEAN_TARGETS)
|
.PHONY: all clean $(CLEAN_TARGETS)
|
||||||
|
|
Loading…
Reference in a new issue