Michael Scire
16cd1141d1
kern: fix some typos/naming semantics
2020-12-12 05:36:48 -08:00
Michael Scire
4b71e3a87e
kern: implement process cpu utilization debug
2020-12-12 05:34:31 -08:00
Michael Scire
d090a7886d
kern: add kernel thread utilization debug
2020-12-12 05:02:23 -08:00
Michael Scire
9a6cca7499
kern: add page table contents debug
2020-12-11 19:30:48 -08:00
Michael Scire
569e1bc650
kern: cfi fix pt 2
2020-12-11 04:59:20 -08:00
Michael Scire
652e9bf9e8
kern: fix cfi (requires x18 not cleared on return to userland)
2020-12-11 04:53:25 -08:00
Michael Scire
17c8c390fc
kern: fix building debug config
2020-12-11 03:48:34 -08:00
Michael Scire
7fb902d8fb
kern: update for 11.0.1
2020-12-11 02:59:09 -08:00
Michael Scire
be8473cf65
kern: implement memory debug
2020-12-10 16:32:19 -08:00
Michael Scire
6df26d674c
kern/sm: fix debug port output
2020-12-10 04:06:02 -08:00
Michael Scire
1a6e003a5d
kern: add kernel object debug
2020-12-10 03:31:57 -08:00
Michael Scire
0acd79c8c2
kern: implement port debug
2020-12-10 01:44:27 -08:00
Michael Scire
8a4bf6a0a8
kern: add handle table/process/suspend/resume debug
2020-12-09 23:44:36 -08:00
Michael Scire
af259eabda
kern: implement thread call stack debug
2020-12-09 22:49:04 -08:00
Michael Scire
bcc7eed037
kern: add debug thread dump
2020-12-09 05:59:54 -08:00
Michael Scire
abd7ad2720
meso: properly initialize per-thread CFI-value for 11.x
2020-12-08 16:16:49 -08:00
Michael Scire
2de85c633a
exo/meso/fusee: support dynamic control of log port/baud rate
2020-12-07 19:25:06 -08:00
Michael Scire
c45088d1cd
kern: add support for InfoType_FreeThreadCount
2020-12-04 18:20:56 -08:00
Michael Scire
bba99d49da
kern: fix inverted conditional in UnmapProcessCodeMemory
2020-12-02 11:31:50 -08:00
Michael Scire
e760a9d4b0
kern: fix reboot to fatal error
2020-12-02 11:31:15 -08:00
Michael Scire
972283032a
kern: tweak KScopedAutoObject
2020-12-02 06:43:37 -08:00
Michael Scire
57f935391d
kern: allow non-inline GetObjectForIpc
2020-12-02 06:43:37 -08:00
Michael Scire
4804e1e1e0
kern: fix KHandleTable null deref in ipc
2020-12-02 06:43:37 -08:00
Michael Scire
4ae74b9b4e
kern: session mapping getters are on the hotpath
2020-12-02 06:43:37 -08:00
Michael Scire
726d7b6e4d
kern: tweak optimization settings for hot paths
2020-12-02 06:43:37 -08:00
Michael Scire
ab8de72db0
microkernel: hot paths are pretty fucking hot
2020-12-02 06:43:37 -08:00
Michael Scire
331fa1d00d
kern: update KConditionVariable to support new has_waiter_flag rules
2020-12-02 06:43:37 -08:00
Michael Scire
fd745ab2d3
kern: fix SvcGetResourceLimitPeakValue
2020-12-02 06:43:37 -08:00
Michael Scire
972b396f61
kern: fix copy/paste error
2020-12-02 06:43:37 -08:00
Michael Scire
3c8e7de915
kern: fix bugs caused by UB + transition to -Os
2020-12-02 06:43:37 -08:00
Michael Scire
3d4ab95ab2
kern: allow non-inline KSchedulerLock::Lock
2020-12-02 06:43:37 -08:00
Michael Scire
152def19c0
kern: build as -Os instead of -O2
2020-12-02 06:43:37 -08:00
Michael Scire
63974d9bce
kern: reduce KMemoryRegionAllocator slab size
2020-12-02 06:43:37 -08:00
Michael Scire
2b483866c7
kern: assume that uart has been setup by secmon
2020-12-02 06:43:37 -08:00
Michael Scire
7e1da15f6e
kern: update Initialize0 to account for new ordering
2020-12-02 06:43:37 -08:00
Michael Scire
0a1465f198
kern: add new overflow checks on KMemoryRegions
2020-12-02 06:43:37 -08:00
Michael Scire
748893fe77
kern: fix assertion in the multi-region pool partition code
2020-12-02 06:43:37 -08:00
Michael Scire
1ca64cf2a1
kern: improve KMemoryManager pool detection
2020-12-02 06:43:37 -08:00
Michael Scire
aac8af8bf5
kern: update KMemoryRegion to store last address rather than size
2020-12-02 06:43:37 -08:00
Michael Scire
5da6b60008
kern: add KAlpha/KBeta
2020-12-02 06:43:37 -08:00
Michael Scire
e400e2afc7
kern: stubs for Svc39, 3A, 46, 47
2020-12-02 06:43:37 -08:00
Michael Scire
56c6e4244a
kern: remove now unused SetupFor*Compare funcs
2020-12-02 06:43:37 -08:00
Michael Scire
c8ebd7eea0
KConditionVariable/KAddressArbiter: no need for global compare thread
2020-12-02 06:43:37 -08:00
Michael Scire
28f9b534b6
kern: implement 64-virtual-core interface
2020-12-02 06:43:37 -08:00
Michael Scire
8b2ed36698
kern: cleanup KThread, optimize/normalize KThreadQueue/KWaitObject
2020-12-02 06:43:37 -08:00
Michael Scire
1852fe8612
kern: improve KSynchronizationObject, kill KSynchronization
2020-12-02 06:43:37 -08:00
Michael Scire
b60054dba1
kern: update for new interrupt event locking scheme
2020-12-02 06:43:37 -08:00
Michael Scire
c7f37f81ee
kern: fix sleep save/resume for new x18/tpidr scheme
2020-12-02 06:43:37 -08:00
Michael Scire
19a279ce45
kern: fix race-crash on interrupt controller save, improve fatal output
2020-12-02 06:43:37 -08:00
Michael Scire
783f1077be
kern: KObjectContainer::Register -> void
2020-12-02 06:43:37 -08:00
Michael Scire
b0debd72a7
kern: Kill KCoreLocalRegion
2020-12-02 06:43:37 -08:00
Michael Scire
24d545701c
kern: remove more of clc
2020-12-02 06:43:37 -08:00
Michael Scire
aae565629e
kern: move scheduler/interrupt task manager out of core local region
2020-12-02 06:43:37 -08:00
Michael Scire
bee629b8ad
kern: update KHardwareTimer, move out of KCoreLocalRegion
2020-12-02 06:43:37 -08:00
Michael Scire
5cb237d030
kern: use single interrupt manager object
2020-12-02 06:43:37 -08:00
Michael Scire
a4e09fc6c4
kern: fix unnecessary align-down
2020-12-02 06:43:37 -08:00
Michael Scire
73d9d5ff47
kern: fix error in SeparatePages
2020-12-02 06:43:37 -08:00
Michael Scire
08cfee54fa
kern: fix re-order/assert in KMemoryBlock
2020-12-02 06:43:37 -08:00
Michael Scire
7b279ab863
kern: remove KPageTableBase::MakeAndOpenContiguousPageGroup
2020-12-02 06:43:37 -08:00
Michael Scire
6a85f7225d
kern: implement DisableDeviceAddressSpaceMerge
2020-12-02 06:43:37 -08:00
Michael Scire
f469dfbeb3
kern: SvcGetResourceLimitPeakValue
2020-12-02 06:43:37 -08:00
Michael Scire
cc11d452e5
kern: KMemoryManager::Allocate -> AllocateAndOpen
2020-12-02 06:43:37 -08:00
Michael Scire
3bce008170
kern: implement kmemoryblock/kmemoryinfo merge disable
2020-12-02 06:43:37 -08:00
Michael Scire
3383509da6
kern: remove KMemoryAttribute_AnyLocked
2020-12-02 06:43:37 -08:00
Michael Scire
281dcf232a
kern: update KMemoryBlockManagerUpdateAllocator api
2020-12-02 06:43:37 -08:00
Michael Scire
71a2fe1bb6
kern: implement new software-reserved page table bits
2020-12-02 06:43:37 -08:00
Michael Scire
4a216dc928
kern: update KPageTableBase for new disable-merge attrs
2020-12-02 06:43:37 -08:00
SciresM
166318ba77
sdmmc: implement driver suitable for fs + bootloader
...
* sdmmc: begin skeletoning sdmmc driver
* sdmmc: add most of SdHostStandardController
* sdmmc: implement most of SdmmcController
* sdmmc: Sdmmc2Controller
* sdmmc: skeleton implementation of Sdmmc1Controller
* sdmmc: complete abstract logic for Sdmmc1 power controller
* sdmmc: implement gpio handling for sdmmc1-register-control
* sdmmc: implement pinmux handling for sdmmc1-register-control
* sdmmc: fix building for arm32 and in stratosphere context
* sdmmc: implement voltage enable/set for sdmmc1-register-control
* util: move T(V)SNPrintf from kernel to util
* sdmmc: implement BaseDeviceAccessor
* sdmmc: implement MmcDeviceAccessor
* sdmmc: implement clock reset controller for register api
* sdmmc: fix bug in WaitWhileCommandInhibit, add mmc accessors
* exo: add sdmmc test program
* sdmmc: fix speed mode extension, add CheckMmcConnection for debug
* sdmmc: add DeviceDetector, gpio: implement client api
* gpio: modernize client api instead of doing it the lazy way
* sdmmc: SdCardDeviceAccessor impl
* sdmmc: update test program to read first two sectors of sd card
* sdmmc: fix vref sel
* sdmmc: finish outward-facing api (untested)
* ams: changes for libvapours including tegra register defs
* sdmmc: remove hwinit
2020-10-30 11:54:30 -07:00
SciresM
ac04e02a08
Meso build targets ( #1196 )
...
* meso: commit wip (thanks fincs) rewrite to support build targets
* meso: commit mostly-working build system
* meso: correct .o dependencies in kernel/kldr
* libstratosphere: fix building after PCH related build changes
Co-authored-by: fincs <fincs@devkitpro.org>
2020-10-27 13:55:19 -07:00
Michael Scire
2ee2a4f1ac
docs/fatal error: update for 0.15.0
2020-10-26 16:00:34 -07:00
Michael Scire
2e7214b6fa
kern: perform rescheduling on dispatch re-enable ( closes #1169 )
2020-10-13 23:07:51 -07:00
Michael Scire
388f9e6455
kern: minor behavioral fixes to condvar/address arbiter
2020-10-12 01:06:19 -07:00
Michael Scire
48b4dd48a4
ams: expose reboot payload for kernel panic
2020-09-18 00:43:55 -07:00
Michael Scire
dbe59fd041
kern: fix KCodeMemory SVCs when Owner process != Generator process
2020-09-17 08:26:08 -07:00
Michael Scire
9b65daf439
kern: default to release config
2020-09-17 08:26:08 -07:00
Michael Scire
4acdc899f5
kern: generate fatal error on panic
2020-09-17 08:26:08 -07:00
Michael Scire
76957e502d
kern: add build-define for logging to iram ringbuffer
2020-09-17 08:26:08 -07:00
Michael Scire
e36fe62fca
kern: lps driver fixes, sleep confirmed working on 1.0.0
2020-09-07 10:43:35 -07:00
Michael Scire
870b589379
kern: fix c/p error
2020-09-07 10:43:35 -07:00
Michael Scire
acdce230da
kern: add debug logging on smmu error interrupt
2020-09-07 10:43:35 -07:00
Michael Scire
34dc062c11
kern: finish 1.x lps driver
2020-09-07 10:43:35 -07:00
Michael Scire
ab2568ddfb
kern: add most of 1.x lps driver
2020-09-07 10:43:35 -07:00
Michael Scire
4dc728824f
kern: skeleton legacy lps driver
2020-09-07 10:43:35 -07:00
Michael Scire
cc6b8ea4d1
exo/kern: 1.0.0 requires access to bpmp smmu regs, userland (am) needs to map bpmp exception vectors
2020-09-07 10:43:35 -07:00
Michael Scire
49af4fae32
kern: begin 1.0.0 backwards compat changes (kips run, full boot fails)
2020-09-07 10:43:35 -07:00
Michael Scire
e8ffbe630f
kern: support 2-pool layout on 2.x-4.x instead of modern 4-pool layout
2020-09-07 10:43:35 -07:00
Michael Scire
ce95af89ef
kern: change terminology metadata -> management
2020-09-07 10:43:35 -07:00
Michael Scire
546e2de300
kern: pool management should be within carveout
2020-09-07 10:43:35 -07:00
Michael Scire
11b120b667
kern: fix phys/virt pool management mixup
2020-09-07 10:43:35 -07:00
Michael Scire
1983f86875
kern: revamp KMemoryRegionType to better encode derivation hierarchies
2020-09-07 10:43:35 -07:00
Michael Scire
d50c7c5c79
kern: PMC must be user-mappable for 1.0.0 compat
2020-09-07 10:43:35 -07:00
Michael Scire
496f93ccdb
kern: expose mesosphere meta over GetInfo instead of GetSystemInfo
2020-09-07 10:43:35 -07:00
Michael Scire
79c9bed528
kern/pm: support for 5.x under mesosphere
2020-09-07 10:43:35 -07:00
Michael Scire
bb11c57e7d
kern: fix warn-errors
2020-09-07 10:43:35 -07:00
Michael Scire
fac502aaa3
kern: fix KTypedAddress, strengthen assertions
2020-08-18 15:17:40 -07:00
Michael Scire
47f2e93a42
kern: add version bounds checking
2020-08-18 15:17:40 -07:00
Michael Scire
56ec55f3c4
kern: avoid hardcoding maximum board memory size
2020-08-18 15:17:40 -07:00
Michael Scire
1a262c1063
kern: improve resource region size definitions/calculations
2020-08-18 15:17:40 -07:00
Michael Scire
79201428b0
kern: resolve NonSecure definition TODO
2020-08-18 15:17:40 -07:00
Michael Scire
a75c16226e
kern: correct thread termination atomicity
2020-08-18 15:17:40 -07:00
Michael Scire
e5d30217d3
kern: fix reference leak in KThread::GetThreadFromId callers
2020-08-18 15:17:40 -07:00
Michael Scire
f77a4fbf98
kern: non-loop cas-weak -> cas-strong
2020-08-18 15:17:40 -07:00
Michael Scire
717265a54c
kern: fix bug in KScheduler::ClearPreviousThread
2020-08-18 15:17:40 -07:00
fincs
68e29b56b6
kern: add stubbed KDevicePageTable implementation for systems without iommu
2020-08-18 15:17:40 -07:00
fincs
8e688de570
kern: move SetupPoolPartitionMemoryRegions into board specific implementation
2020-08-18 15:17:40 -07:00
fincs
b917ea283e
kern: make GetTargetFirmware a compile-time constant when not building for Switch
2020-08-18 15:17:40 -07:00
Michael Scire
3c85e37667
kern: use std::atomic_ref instead of reinterpret_cast to std::atomic
2020-08-18 15:17:40 -07:00
Michael Scire
48e8562033
kern: use common GIC implementation for arm/arm64
2020-08-18 15:17:40 -07:00
Michael Scire
f07bd0e337
kern: correct flushing of init arguments
2020-08-18 15:17:40 -07:00
Michael Scire
4a35904d73
kern: simplify SetupForIpcClient cleanup
2020-08-18 15:17:40 -07:00
Michael Scire
b8c2782ede
kern: SvcLegacyGetFutureThreadInfo
2020-08-18 15:17:40 -07:00
Michael Scire
3ec9a9e59f
kern: rename CacheHelper operation for accuracy
2020-08-18 15:17:40 -07:00
Michael Scire
595c6dbe8f
kern: KPageTableBase::WriteDebugMemory stores/invalidates cache
2020-08-18 15:17:40 -07:00
Michael Scire
b5f2698bf0
kern: fix multicore instruction cache invalidation
2020-08-18 15:17:40 -07:00
Michael Scire
f058536b59
kern: add tracing for irq/scheduling
2020-08-18 15:17:40 -07:00
Michael Scire
8e5c0a9663
kern: cleanup some KMemoryManager functions
2020-08-18 15:17:40 -07:00
Michael Scire
1b63002f91
kern: refactor KMemoryLayout
2020-08-18 15:17:40 -07:00
Michael Scire
c3fa3bd5d6
kern: N reduced the slabheap gap size in 10.0.0
2020-08-18 15:17:40 -07:00
Michael Scire
cda15f08d8
kern: mark KThread/KProcess.GetId() final to save virtual calls
2020-08-18 15:17:40 -07:00
Michael Scire
e1bd6fb874
kern: fix missing scheduler updates in KLightLock/Exception, fix RequestScheduleOnInterrupt
2020-08-18 15:17:40 -07:00
Michael Scire
920b017677
kern: implement svc trace
2020-08-18 15:17:40 -07:00
Michael Scire
f9d68db3f6
kern: SvcChangeKernelTraceState
2020-08-18 15:17:40 -07:00
Michael Scire
89f1c0ce33
kern: remove stray log in SetHeapSize
2020-08-18 15:17:40 -07:00
Michael Scire
73798cb812
kern: build with -Wextra
2020-08-17 14:20:24 -07:00
Michael Scire
51b5c3d87d
ams: avoid UB infinite loops
2020-08-13 17:28:29 -07:00
Michael Scire
420bc7df9b
ams: update build system to add generic-fallback support
2020-08-11 11:22:56 -07:00
Michael Scire
29358dc593
kernel_ldr: use unoptimized memcpy before mmu bringup ( closes #1102 )
...
Before the MMU is up, all reads/writes must be aligned; the optimized
memcpy implementation does not guarantee all reads/writes it performs
are aligned.
This commit splits the libc impl to be separate for kernel/kernel_ldr,
and so now only kernel will use the optimized impl. This is safe,
as the MMU is brought up before kernel begins executing.
2020-08-02 14:40:28 -07:00
Michael Scire
3fd4002bc9
kern: complete final SVC stubs (KernelDebug/Trace debug-impl still TODO)
2020-07-31 14:50:52 -07:00
Michael Scire
5d462c626c
kern: SvcReturnFromException
2020-07-31 14:50:52 -07:00
Michael Scire
8cd81b3092
kern: fix dynamic calculation of slab heap size
2020-07-31 14:50:52 -07:00
Michael Scire
5c4fbf5c67
kern SvcGetDebugThreadContext, SvcSetDebugThreadContext
2020-07-31 14:50:52 -07:00
Michael Scire
3afd723b92
kern: SvcGetDebugThreadParam
2020-07-31 14:50:52 -07:00
Michael Scire
e1f3bb10a5
kern: clean up majority of TODOs
2020-07-31 14:50:52 -07:00
Michael Scire
bea550ebce
kern: resolve final non-user-exception MESOSPHERE_UNIMPLEMENTED
2020-07-31 14:50:52 -07:00
Michael Scire
85f533e6c4
kern: SvcGetDebugEventInfo64From32
2020-07-31 14:50:52 -07:00
Michael Scire
c9f8252577
kern: resolve MESOSPHERE_UNIMPLEMENTEDs other than UserException
2020-07-31 14:50:52 -07:00
Michael Scire
325802e29d
kern: Add real SvcBreak implementation
2020-07-31 14:50:52 -07:00
Michael Scire
4c3c910774
kern: SvcBreakDebugProcess, SvcTerminateDebugProcess
2020-07-31 14:50:52 -07:00
Michael Scire
b88e09de5b
kern: SvcSetHardwareBreakPoint
2020-07-31 14:50:52 -07:00
Michael Scire
b143f1e05f
kern: Svc(Legacy)ContinueDebugEvent
2020-07-31 14:50:52 -07:00
Michael Scire
3289b45408
kern: Add 4.x InitialProcessIdRange to SvcGetInfo
2020-07-31 14:50:52 -07:00
Michael Scire
91fa0d651f
kern: SvcQueryPhysicalAddress
2020-07-31 14:50:52 -07:00
Michael Scire
9bc2c0c0c5
kern: style parity for return in GetThreadList
2020-07-31 14:50:52 -07:00
Michael Scire
96c3dfee14
kern: SvcGetThreadList
2020-07-31 14:50:52 -07:00
Michael Scire
51084c0837
kern: SvcGetLastThreadInfo, SvcGetDebugFutureThreadInfo
2020-07-31 14:50:52 -07:00
Michael Scire
0993ae0685
kern: SvcFlushDataCache, SvcFlushEntireDataCache
2020-07-31 14:50:52 -07:00
Michael Scire
f6f43300e0
kern: SvcReadDebugProcessMemory, SvcWriteDebugProcessMemory
2020-07-31 14:50:52 -07:00
Michael Scire
f866f37cdc
kern: panic on failure-to-open auto object in debug config
2020-07-31 14:50:52 -07:00
Michael Scire
008bfc27f3
kern: automatic PC alignment on ERET is implementation defined
2020-07-31 14:50:52 -07:00
Michael Scire
7352d87b20
kern: switch memset to optimized impl
2020-07-31 14:50:52 -07:00
Michael Scire
9ddb4194b3
kern: use optimized memcmp/memcpy implementations
2020-07-31 14:50:52 -07:00
Michael Scire
3f17a34b67
SvcQueryDebugProcessMemory
2020-07-31 14:50:52 -07:00
Michael Scire
5de853b662
kern: fix ARM vs THUMB mode selection on 32-bit entry
2020-07-31 14:50:52 -07:00
Michael Scire
36a3909a24
kern: fix whoops in light ipc
2020-07-31 14:50:52 -07:00
Michael Scire
8922bbd108
kern: SendSyncRequestLight, ReplyAndReceiveLight
2020-07-31 14:50:52 -07:00
Michael Scire
b6cb561c47
kern: fix slab heap atomics
2020-07-31 14:50:52 -07:00
Michael Scire
2db6760461
kern: fix bug in server handle cleanup
2020-07-31 14:50:52 -07:00
Michael Scire
bb7f320f7f
kern: fix nonsensical copy/pasted comments in QueryMemory
2020-07-31 14:50:52 -07:00
Michael Scire
94a170c437
kern: QueryMemory64From32, QueryProcessMemory64From32
2020-07-31 14:50:52 -07:00
Michael Scire
7cf0432569
kern: add KCodeMemory code left out of previous commit
2020-07-31 14:50:52 -07:00
Michael Scire
39b22cee8c
kern: implement KCodeMemory (and SVCs)
2020-07-31 14:50:52 -07:00
Michael Scire
3fb3beeaff
kern: SvcGetSystemTick
2020-07-31 14:50:52 -07:00
Michael Scire
4bb9ef061a
kern: implement SvcGetThreadContext3
2020-07-31 14:50:52 -07:00
Michael Scire
f70ee67753
kern: correct behavior when setting activity/core mask for pinned thread
2020-07-31 14:50:52 -07:00
Michael Scire
787964f7e7
kern: implement thread pinning/SvcSynchronizePreemptionState
2020-07-31 14:50:52 -07:00
Michael Scire
b1f38be3ae
kern: fix building under release config
2020-07-31 14:50:52 -07:00
Michael Scire
9dc3e025fc
kern: Map L1/L2 blocks when possible
2020-07-31 14:50:52 -07:00
Michael Scire
4ac94e9179
kern: improve KLightLock accuracy
2020-07-31 14:50:52 -07:00
Michael Scire
1448068b69
kern: fix assertion in KThread::(Try)Suspend
2020-07-31 14:50:52 -07:00
Michael Scire
0af44d2875
kern: fix bug in page table mapping calculations
2020-07-31 14:50:52 -07:00
Michael Scire
a4d376cc0f
kern: fix hardware timer task corruption on core migration
2020-07-31 14:50:52 -07:00
Michael Scire
840ab0785c
kern: SvcMapPhysicalMemoryUnsafe, SvcUnmapPhysicalMemoryUnsafe
2020-07-31 14:50:52 -07:00
Michael Scire
583899ede3
kern: General system stability improvements to enhance the user's experience.
2020-07-31 14:50:52 -07:00
Michael Scire
2ad9927a88
kern: Fix bug in thread core migration
2020-07-31 14:50:52 -07:00
Michael Scire
893b046111
kern: update interrupt manager
2020-07-31 14:50:52 -07:00
Michael Scire
1b9acc4a6a
kern: SvcUnmapPhysicalMemory, cleanup thread pinning
2020-07-31 14:50:52 -07:00
Michael Scire
cbecda2a27
kern: SvcQueryProcessMemory64, notification SvcBreaks
2020-07-31 14:50:52 -07:00
Michael Scire
5ecc80a5f6
kern: implement SvcMapPhysicalMemory
2020-07-31 14:50:52 -07:00
Michael Scire
695b82b945
kern: finish SvcGetInfo
2020-07-31 14:50:52 -07:00
Michael Scire
fd9b986938
kern: Implement SecureMemory (system resource)
2020-07-31 14:50:52 -07:00
Michael Scire
9231646f33
kern: implement SvcSleepSystem
2020-07-31 14:50:52 -07:00
Michael Scire
418de7b0dc
kern: SvcInvalidateProcessDataCache
2020-07-31 14:50:52 -07:00
Michael Scire
46935fea80
kern: fix resource leak bugs
2020-07-31 14:50:52 -07:00
Michael Scire
11d5353827
kern: SvcMapProcessCodeMemory, SvcUnmapProcessCodeMemory
2020-07-31 14:50:52 -07:00
Michael Scire
240e6227e9
kern: Fix bug when reducing heap size
2020-07-31 14:50:52 -07:00
Michael Scire
1d4d637818
kern SvcGetCurrentProcessorNumber, SvcSetProcessActivity, half of SvcSetThreadActivity
2020-07-31 14:50:52 -07:00
Michael Scire
23eed522d3
kern: SvcGetThreadCoreMask, SvcSetThreadCoreMask
2020-07-31 14:50:52 -07:00
Michael Scire
c622539b95
kern: SvcSetMemoryPermission
2020-07-31 14:50:52 -07:00
Michael Scire
d87a9f011c
kern: implement transfer memory (and SVCs)
2020-07-31 14:50:52 -07:00
Michael Scire
28aab09b5d
kern: implement process exit
2020-07-31 14:50:52 -07:00
Michael Scire
3917ecad46
kern: add SvcFlushProcessDataCache, SvcStoreProcessDataCache
2020-07-31 14:50:52 -07:00
Michael Scire
ab96255a5d
kern: implement SvcSetMemoryAttribute
2020-07-31 14:50:52 -07:00
Michael Scire
eecf59dd00
kern: fix bugs in interrupt permittance, DpcManager init
2020-07-31 14:50:52 -07:00
Michael Scire
afe7e41de8
kern: SvcGetProcessInfo, SvcTerminateProcess
2020-07-31 14:50:52 -07:00
Michael Scire
632a75eee7
kern: KConditionVariable::SignalImpl
2020-07-31 14:50:52 -07:00
Michael Scire
7aa3120f60
kern: fully implement KSharedMemory (and Svcs)
2020-07-31 14:50:52 -07:00
Michael Scire
81db43932d
kern: add SvcStartProcess
2020-07-31 14:50:52 -07:00
Michael Scire
51311a7332
kern: add KProcess::Initialize (for non-kip processes)
2020-07-31 14:50:52 -07:00
Michael Scire
8759cb4da3
kern: implement first half of SvcCreateProcess
2020-07-31 14:50:52 -07:00
Michael Scire
fb6e85b291
kern: implement SvcMapProcessMemory, SvcUnmapProcessMemory
2020-07-31 14:50:52 -07:00
Michael Scire
3cf793f87e
kern: implement KThread::Finalize
2020-07-31 14:50:52 -07:00
Michael Scire
3265927ed7
kern: KDevicePageTable::Finalize, InfoType_RandomEntropy
2020-07-31 14:50:52 -07:00
Michael Scire
0c82709af4
kern: fix attribute checks in device unmap
2020-07-31 14:50:52 -07:00
Michael Scire
058f223b97
kern: finish SvcGetSystemInfo
2020-07-31 14:50:52 -07:00
Michael Scire
43ad4eb794
kern: fix asid tlb invalidation
2020-07-31 14:50:52 -07:00
Michael Scire
dea1235e12
kern: dump page table on user exception
2020-07-31 14:50:52 -07:00
Michael Scire
266001ded4
kern: implement ResourceLimit Svcs
2020-07-31 14:50:52 -07:00
Michael Scire
ea6000b372
kern: add ResourceLimit to svcGetInfo
2020-07-31 14:50:52 -07:00
Michael Scire
4fca870f2f
kern: fix incorrect cache routines, implement SvcSetProcessMemoryPermission
2020-07-31 14:50:52 -07:00
Michael Scire
26df56cd87
kern: implement SvcCancelSynchronization
2020-07-31 14:50:52 -07:00
Michael Scire
5b8a20dbf7
kern: fix bug in SvcSetThreadPriority
2020-07-31 14:50:52 -07:00
Michael Scire
94f9cc1626
kern: SvcCreateSession, KDebug finalization
2020-07-31 14:50:52 -07:00
Michael Scire
36eb78a3ce
kern: implement SvcDebugActiveProcess, svcGetDebugEvent, SvcWaitProcessWideKeyAtomic
2020-07-31 14:50:52 -07:00
Michael Scire
0bd14b7114
kern: fix bug in KPageTableBase::SetupForIpcServer
2020-07-31 14:50:52 -07:00
Michael Scire
75e6999668
kern: implement SvcSetThreadPriority
2020-07-31 14:50:52 -07:00
Michael Scire
5fa59ec888
kern: fix kscheduler interrupt api, adjust debug logging
2020-07-31 14:50:52 -07:00
Michael Scire
fae2daf77c
kern: fix bug in up/downcasting of scoped auto objects
2020-07-31 14:50:52 -07:00
Michael Scire
8d507aa5a1
kern: implement SvcSignalToAddress, SvcWaitForAddress
2020-07-31 14:50:52 -07:00
Michael Scire
a0cc22302c
kern: add KAddressArbiter::WaitIfEqual
2020-07-31 14:50:52 -07:00
Michael Scire
01a7606f95
kern: implement SvcSetHeapSize
2020-07-31 14:50:52 -07:00
Michael Scire
9c4c058307
kern: implement all device address space svcs
2020-07-31 14:50:52 -07:00
Michael Scire
9beb05da50
kern: retrieve target firmware from exosphere instead of hardcoding
2020-07-31 14:50:52 -07:00
Michael Scire
2ca6772475
kern: implement DetachDeviceAddressSpace, skeleton other das funcs in KDevicePageTable
2020-07-31 14:50:52 -07:00
Michael Scire
0d3aa13f70
kern: add infra (but not impl) for all DeviceAddressSpace svcs
2020-07-31 14:50:52 -07:00
Michael Scire
863515a3b5
kern: qualify inherited KAutoObjectWithListContainer accessor typenames
2020-07-31 14:50:52 -07:00
Michael Scire
fe035736ca
kern: implement SvcGetProcessList
2020-07-31 14:50:52 -07:00
Michael Scire
cfddb75398
kern: add SvcCreateDeviceAddressSpace, SvcAttachDeviceAddressSpace
2020-07-31 14:50:52 -07:00
Michael Scire
04f325cf5a
kern: implement SvcCreateInterruptEvent
2020-07-31 14:50:52 -07:00
Michael Scire
b35380a942
kern: implement SvcCreateEvent, SvcSignalEvent, SvcClearEvent, SvcResetSignal
2020-07-31 14:50:52 -07:00
Michael Scire
93be2ffcba
kern: add SvcCreatePort, SvcConnectToPort
2020-07-31 14:50:52 -07:00
Michael Scire
9f79710cb7
kern: add SvcReadWriteRegister
2020-07-31 14:50:52 -07:00
Michael Scire
ef1763334b
kern: patch svc tables via asm, instead of relying on compiler to be nice
2020-07-31 14:50:52 -07:00
Michael Scire
d9e9fbe3c2
kern: Implement QueryIoMapping logic for < 8.0.0
2020-07-31 14:50:52 -07:00
Michael Scire
ff022115ca
kern: Support older SVC ABIs
2020-07-31 14:50:52 -07:00
Michael Scire
18698bf1d3
kern: add SvcQueryIoMapping (NOTE: pre-10.x, ABI needs update)
2020-07-13 13:24:32 -07:00
Michael Scire
57867d6ced
kern: fix/add InfoType_(Total/Used)(NonSystem/)MemorySize
2020-07-13 12:17:28 -07:00
Michael Scire
35c1959131
kern: assert correctness for complete class hierarchy
2020-07-13 11:11:30 -07:00
Michael Scire
84d8634938
kern: fix bugs in Receive/Exchange ipc buffers
2020-07-13 10:02:01 -07:00
Michael Scire
095fc6b996
kern: fix UpdateLock perms for ipc
2020-07-12 22:22:54 -07:00
Michael Scire
bc767742f7
kern: fix unaligned map alias buffers
2020-07-12 18:53:45 -07:00
Michael Scire
e2e5a2ccc2
kern: fix bugs in MapAlias ipc mappings
2020-07-12 18:17:29 -07:00
Michael Scire
a8d4b10b17
kern: implement IPC KPageTable functionality
2020-07-12 15:42:47 -07:00
Michael Scire
3c8d8161cc
kern: fix bug in ToMessageBuffer pointer transfer selection
2020-07-11 02:06:44 -07:00
Michael Scire
4a7ce9dd75
kern/KScheduler: implement special yields
2020-07-11 00:48:26 -07:00
Michael Scire
ca9327a120
kern: implement SvcSleepThread for ns > 0
2020-07-10 23:30:15 -07:00
Michael Scire
f37eda6b86
kern: implement KPageTableBase::CopyHeapToHeap(WithoutCheckDestination)
2020-07-10 21:37:56 -07:00
Michael Scire
c72bdec328
kern: add KPageTableBase::CopyMemory Linear <-> User and Linear <-> Kernel
2020-07-10 20:09:06 -07:00
Michael Scire
4a767c9082
kern: mostly implement thread exit
2020-07-10 18:39:53 -07:00
Michael Scire
c8f71007ec
kern/ipc: fix bug in SendMessage
2020-07-10 16:57:11 -07:00
Michael Scire
4ff10f3ce0
kern/ipc: implement remaining KServerSession reply code
2020-07-10 16:46:55 -07:00
Michael Scire
d52655eaf1
kern: add SvcExitThread, SvcSendAsyncRequestWithUserBuffer, SvcReplyAndReceiveWithUserBuffer
2020-07-10 15:31:23 -07:00
Michael Scire
1b429918de
kern/ipc: implement most of reply
2020-07-10 13:42:36 -07:00
Michael Scire
b29dc76b20
kern/ipc: implement SendReply, declare SendMessage
2020-07-10 12:49:52 -07:00
Michael Scire
2ec4ed3568
kern/ipc: add Atmosphere's mitm pid passthrough logic
2020-07-10 11:55:33 -07:00
Michael Scire
4e226b523e
ipc/receive: trivially correct result return codeflow
2020-07-10 11:55:33 -07:00
Michael Scire
9fa6d12586
kern/ipc: finish Receive part of ReplyAndReceive
2020-07-10 11:55:33 -07:00
Michael Scire
804aa0e55d
ipc: add MapAlias processing logic for Receive
2020-07-10 11:55:33 -07:00
Michael Scire
9d57783aa8
ipc::Reply -> implement Pointer handling logic
2020-07-10 11:55:33 -07:00
Michael Scire
a510a1138d
ipc::Reply -> add raw data copy logic
2020-07-10 11:55:33 -07:00
Michael Scire
4e667bc7c1
kern: implement remaining non-KServerSession:: part of Reply/Receive
2020-07-10 11:55:33 -07:00
Michael Scire
84b1be1d58
kern: partially implement Receive half of ReplyAndReceive
2020-07-10 11:55:33 -07:00
Michael Scire
1b2203d102
kern: implement SvcSendSyncRequest(WithUserBuffer)
2020-07-10 11:55:33 -07:00
Michael Scire
4f12449acf
kern: implement SvcArbitrateLock, SvcArbitrateUnlock
2020-07-10 11:55:33 -07:00
Michael Scire
f4fd4cbbb2
kern: skeleton SvcReplyAndReceive
2020-07-10 11:55:33 -07:00
Michael Scire
be98aaa185
kern: partially implement SvcSignalProcessWideKey
2020-07-10 11:55:33 -07:00
Michael Scire
7f4c6ae9e7
kern: implement SvcCreateThread, SvcStartThread
2020-07-10 11:55:33 -07:00
Michael Scire
9503aae522
kern: implement SvcMapMemory
2020-07-10 11:55:33 -07:00
Michael Scire
78da7422ae
kern: implement SvcAcceptSession
2020-07-10 11:55:33 -07:00
Michael Scire
f52232f0f2
kern: implement SvcWaitSynchronization
2020-07-10 11:55:33 -07:00
Michael Scire
16c9c53a4a
kern: implement KEvent, KWritableEvent, KServerSession::OnClientClosed
2020-07-10 11:55:33 -07:00
Michael Scire
d0d8914f28
kern: implement SvcCloseHandle
2020-07-10 11:55:33 -07:00
Michael Scire
7400a8ff68
kern: SvcConnectToNamedPort
2020-07-10 11:55:33 -07:00
Michael Scire
a2eb93fde8
kern: svcOutputDebugString, svcGetThreadPriority, svcGetThreadId
2020-07-10 11:55:33 -07:00
Michael Scire
1a0696f8a3
kern: implement SvcUnmapMemory, more of SvcGetInfo
2020-07-10 11:55:33 -07:00
SciresM
3a1ccdd919
Switch atmosphere's build target to C++20. ( #952 )
...
* ams: update to build with gcc10/c++20
* remove mno-outline-atomics
* ams: take care of most TODO C++20s
* fusee/sept: update for gcc10
* whoosh, your code now uses pre-compiled headers
* make: dependency fixes
2020-05-11 15:02:10 -07:00
Michael Scire
8e75a4169d
ams: revamp target firmware
2020-05-06 22:29:07 -07:00
Michael Scire
9ddc6e596b
kern: fix link error
2020-05-02 22:30:34 -07:00
Michael Scire
52c89a76b2
kern: fix KLinkedList dtor
2020-04-27 03:56:12 -07:00
Michael Scire
71d266f867
kern: implement SvcSetUnsafeLimit
2020-04-26 02:49:59 -07:00
Michael Scire
970b85bf9a
kern: implement KUnsafeMemory
2020-04-26 02:35:10 -07:00
Michael Scire
6ad0f0e7f2
kern/kldr: fix bugs in physical randomization
2020-04-22 03:45:21 -07:00
Michael Scire
4f50f57bb7
os: bug fixes after re-review of rwlock code
2020-04-21 22:40:45 -07:00
Michael Scire
b39b6f0d5b
kern: implement 10.x perm change, fix many page table bugs
2020-04-19 17:16:19 -07:00
Michael Scire
dcfb3bc9b5
kern: randomize dynamic slab heaps to reflect 10.x changes
2020-04-19 00:35:05 -07:00
Michael Scire
b4d003b4b9
kern: fix suboptimal mapping choices by kernel/kernelldr
2020-04-19 00:01:06 -07:00
Michael Scire
bc1d3ccc91
kern: Update init to reflect 10.0.0 changes
2020-04-18 22:19:09 -07:00
Michael Scire
152a945561
kern: Update page bitmaps/alloc to reflect 10.0.0 changes
2020-04-18 17:10:26 -07:00
Michael Scire
f2944d36ba
kern: amend syntax
2020-04-16 18:00:42 -07:00
Michael Scire
46d79387e8
mesosphere: implement KMemoryBlockManager::UpdateLock
2020-04-16 17:58:51 -07:00
Michael Scire
0bb2c0a04f
licensing: update exemptions (approved by contributors).
2020-04-16 17:33:04 -07:00
Michael Scire
94b10b5779
ams: fix boot sysmodule/kernel for 10.0.0
2020-04-14 10:11:58 -07:00
Michael Scire
116e00c21c
kernel_ldr: update to support 10.0.0
2020-04-14 07:38:01 -07:00
Michael Scire
eb48e7cc59
buildsystem: fix building
2020-04-06 17:44:14 -07:00
bunnei
6096fa0e45
KPageHeap: Fix a typo in initialization block alignment. ( #862 )
2020-03-30 19:27:02 -07:00
Michael Scire
ca26d8ce27
kern: Implement SvcManageNamedPort
2020-03-18 00:09:51 -07:00
Michael Scire
6c52cc3e26
memset: use neon-less impl, reformat other asm
2020-03-18 00:09:50 -07:00
Michael Scire
e42d3a3abf
libmesosphere: use ARM-software/optimized-routines for memcpy/memset/memcmp
2020-03-18 00:09:50 -07:00
Michael Scire
96d15b28c6
kern: implement CallSecureMonitor, some of GetInfo/GetSystemInfo
2020-03-18 00:09:50 -07:00
Michael Scire
45f8343659
kern: tweak KHandleTable impl
2020-03-10 04:54:53 -07:00
Adubbz
c7026b9094
Implement the NCM sysmodule ( closes #91 )
...
* Implement NCM
* Modernize ncm_main
* Remove unnecessary smExit
* Give access to svcCallSecureMonitor
* Stack size bump
* Fix incorrect setup for NandUser's content storage entry
* Fix a potential data abort when flushing the placeholder accessor cache
* Fix HasFile and HasDirectory
* Use r+b, not w+b
* Misc fixes
* errno begone
* Fixed more stdio error handling
* More main fixes
* Various command improvements
* Make dispatch tables great again
* Fix logic inversion
* Fixed content path generation
* Bump heap size, fix CleanupAllPlaceHolder
* Various fixes. Note: This contains debug stuff which will be removed later. I was getting tired of having to cherrypick tiny changes
* Fixed placeholder/content deletion
* Fixed incorrect content manager destruction
* Prevent automatic placeholder creation on open
* Fixed List implementation. Also lots of debug logging.
* Removed debug code
* Added a scope guard for WritePlaceHolder
* Manually prevent placeholder/content appending
* Revert "Removed debug code"
This reverts commit d6ff261fcc
.
* Always cache placeholder file. Switch to ftell for preventing appending
* Universally use EnsureEnabled
* Abstract away file writing logic
* Misc cleanup
* Refactor placeholder cacheing
* Remove debug code (again)
* Revert "Remove debug code (again)"
This reverts commit 168447d80e
.
* Misc changes
* Fixed file modes
* Fixed ContentId/PlaceHolderId alignment
* Improved type safety
* Fixed reinitialization
* Fixed doubleup on path creation
* Remove debug code
* Fixed 1.0.0 booting
* Correct amount of add on content
* Correct main thread stack size
* lr: Introducing registered data
* Reorder stratosphere Makefile
* Move results to libstrat
* lr: Cleanup lr_redirection
* lr: lr_manager tweaks
* lr: Imrpoved path handling and adjust ResolveAddOnContentPath order
* lr: Organise types
* Add eof newlines
* lr: Eliminate unnecessary vars
* lr: Unnecessary vars 2 electric boogaloo
* lr: Various helpers
* lr: RegisteredLocationResolver helpers
* ncm: Move ncm_types to libstrat
* ncm: Misc cleanup
* Implement NCM
* Modernize ncm_main
* Remove unnecessary smExit
* Give access to svcCallSecureMonitor
* Stack size bump
* Fix incorrect setup for NandUser's content storage entry
* Fix a potential data abort when flushing the placeholder accessor cache
* Fix HasFile and HasDirectory
* Use r+b, not w+b
* Misc fixes
* errno begone
* Fixed more stdio error handling
* More main fixes
* Various command improvements
* Make dispatch tables great again
* Fix logic inversion
* Fixed content path generation
* Bump heap size, fix CleanupAllPlaceHolder
* Various fixes. Note: This contains debug stuff which will be removed later. I was getting tired of having to cherrypick tiny changes
* Fixed placeholder/content deletion
* Fixed incorrect content manager destruction
* Prevent automatic placeholder creation on open
* Fixed List implementation. Also lots of debug logging.
* Removed debug code
* Added a scope guard for WritePlaceHolder
* Manually prevent placeholder/content appending
* Revert "Removed debug code"
This reverts commit d6ff261fcc
.
* Always cache placeholder file. Switch to ftell for preventing appending
* Universally use EnsureEnabled
* Abstract away file writing logic
* Misc cleanup
* Refactor placeholder cacheing
* Remove debug code (again)
* Revert "Remove debug code (again)"
This reverts commit 168447d80e
.
* Misc changes
* Fixed file modes
* Fixed ContentId/PlaceHolderId alignment
* Improved type safety
* Fixed reinitialization
* Fixed doubleup on path creation
* Remove debug code
* Fixed 1.0.0 booting
* Correct amount of add on content
* Correct main thread stack size
* lr: Introducing registered data
* Reorder stratosphere Makefile
* Move results to libstrat
* lr: Cleanup lr_redirection
* lr: lr_manager tweaks
* lr: Imrpoved path handling and adjust ResolveAddOnContentPath order
* lr: Organise types
* Add eof newlines
* lr: Eliminate unnecessary vars
* lr: Unnecessary vars 2 electric boogaloo
* lr: Various helpers
* lr: RegisteredLocationResolver helpers
* ncm: Move ncm_types to libstrat
* ncm: Misc cleanup
* Updated AddOnContentLocationResolver and RegisteredLocationResolver to 9.0.0
* Finished updating lr to 9.0.0
* Updated NCM to 9.0.0
* Fix libstrat includes
* Fixed application launching
* title_id_2 -> owner_tid
* Updated to new-ipc
* Change to using pure virtuals
* Title Id -> Program Id
* Fixed compilation against master
* std::scoped_lock<> -> std::scoped_lock
* Adopted R_UNLESS and R_CONVERT
* Prefix namespace to Results
* Adopt std::numeric_limits
* Fixed incorrect error handling in ReadFile
* Adopted AMS_ABORT_UNLESS
* Adopt util::GenerateUuid()
* Syntax improvements
* ncm_types: Address review
* Address more review comments
* Updated copyrights
* Address more feedback
* More feedback addressed
* More changes
* Move dispatch tables out of interface files
* Addressed remaining comments
* lr: move into libstratosphere
* ncm: Fix logic inversion
* lr: Add comments
* lr: Remove whitespace
* ncm: Start addressing feedback
* ncm: Cleanup InitializeContentManager
* lr: support client-side usage
* lr_service -> lr_api
* ncm: Begin refactoring content manager
* ncm: More content manager improvements
* ncm: Content manager mount improvements
* ldr: use lr bindings
* lr bindings usage: minor fixes
* ncm/lr: Pointer placement
* ncm: placeholder accessor cleanup
* ncm: minor fixes
* ncm: refactor rights cache
* ncm: content meta database cleanup
* ncm: move content meta database impl out of interface file
* ncm: Use const ContentMetaKey &
* ncm: fix other non-const ContentMetaKey references
* ncm: content meta database cleanup
* ncm: content storage fixes for 2.0.0
* ncm: add missing end of file newlines
* ncm: implement ContentMetaReader
* ncm: client-side api
* ncm: trim trailing spaces
* ncm: FS_MAX_PATH-1 -> fs::EntryNameLengthMax
* ncm: Use PathString and Path
* fs: implement accessor wrappers for ncm
* fs: implement user fs wrappers
* fs: add MountSdCard
* ncm: move to content manager impl
* ncm: fix up main
* kvdb: use fs::
* fs: Add wrappers needed for ncm
* ncm: use fs bindings, other refactoring
* ncm: minor fixes
* fsa: fix ReadFile without size output
* fs: add substorage, rom path tool
* ncm: fix dangling fsdev usage
* fs: fix bug in Commit
* fs: fixed incorrect mode check
* fs: implement Mount(System)Data
* ncm: don't delete hos
* results: add R_SUCCEED_IF
* ams-except-ncm: use R_SUCCEED_IF
* ncm: added comments
* ncm: fix api definitions
* ncm: use R_SUCCEED_IF
* pm: think of the savings
* ncm: employ kernel strats
* ncm: Nintendo has 5 MiB of heap. Give ourselves 4 to be safe, pending analysis
* ncm: refactor IDs, split types header into many headers
* ams.mitm: use fs bindings instead of stdio
* fs: SystemData uses SystemDataId
* ncm: improve meta-db accuracy
* ncm: inline getlatestkey
* fs: improve UnsupportedOperation results
* fs: modernize mount utils
* ams: misc fixes for merge-errors
* fs: improve unsupportedoperation results
* git subrepo pull emummc
subrepo:
subdir: "emummc"
merged: "d12dd546"
upstream:
origin: "https://github.com/m4xw/emuMMC "
branch: "develop"
commit: "d12dd546"
git-subrepo:
version: "0.4.1"
origin: "???"
commit: "???"
* util: add boundedmap
* ncm: minor style fixes
* ncm: don't unmount if mounting fails
* lr: bug fixes
* ncm: implement ncm.for-initialize + ncm.for-safemode
* lr: ncm::ProgramId::Invalid -> ncm::InvalidProgramId
* ncm: fix open directory mode on 1.0.0
* ncm: fix fs use, implement more of < 4.0.0 for-initialize/safemode
* ncm: implement packagedcontent -> content for building metadb
* ncm: fix save data flag management
* ncm: address some review suggestions (thanks @leoetlino!)
* updater: use fs bindings
* fs: implement MountCode
* fs: prefer make_unique to operator new
* ncm: implement remaining ContentMetaDatabaseBuilder functionality
Co-authored-by: Michael Scire <SciresM@gmail.com>
2020-03-08 00:06:23 -08:00