Commit Graph

780 Commits

Author SHA1 Message Date
yellows8
e8482f7581 Improved SwkbdArgV0, and updated swkbd docs. 2018-12-22 19:26:38 -05:00
yellows8
e892e91360 Moved swkbd version init into swkbdCreate, and use the newer swkbd versions. Added swkbdConfigMakePreset*(). Changed unk_x3e0 to u32, and various other adjustments. 2018-12-22 16:50:20 -05:00
yellows8
901dc817e7 Handle <=3.0.0 swkbd versions, and filled in the arg struct. Handle the workbuf. Added a param to swkbdCreate and added swkbdClose. Added swkbdConfigSet*Text and swkbdConfigSet*OptionalSymbolKey. Various other changes. 2018-12-22 11:51:51 -05:00
yellows8
854e3058ba Replaced appletSetMediaPlaybackStateForApplication with appletSetMediaPlaybackState, which now supports non-Application. Added _appletCmdInU8/_appletCmdInBool, the latter is now used by appletSetMediaPlaybackState. 2018-12-21 11:33:56 -05:00
Cpasjuste
8be5cad7f8 Added appletSetMediaPlaybackStateForApplication 2018-12-21 10:30:28 -05:00
yellows8
59382cab1f Added LibnxError_LibAppletBadExit, which is now used in swkbd. 2018-12-20 21:08:36 -05:00
yellows8
58cbacc76f Handle the output swkbd storage. 2018-12-20 20:49:50 -05:00
yellows8
32f93bef5d Added initial swkbd impl. 2018-12-20 13:06:20 -05:00
yellows8
d821185e3d Added buffer param to appletCreateTransferMemoryStorage and appletCreateHandleStorageTmem, tmemCreateFromMemory will now be used with this when buffer is not NULL. 2018-12-20 12:59:59 -05:00
yellows8
2d5000ba57 Added libappletPushInData. Moved common storage creation+writing code into 1 func, in libapplet.c. 2018-12-20 12:57:35 -05:00
fincs
252e8ef9ff Add tmemCreateFromMemory 2018-12-20 16:12:22 +01:00
yellows8
0bab302c3b Added libappletRequestHomeMenu and libappletRequestJumpToSystemUpdate. 2018-12-19 20:37:19 -05:00
yellows8
6e10568589 Added applets/libapplet. Added appletSetThemeColorType and appletGetThemeColorType. 2018-12-19 19:49:57 -05:00
fincs
f448b0fbad nvioctlMap_Param -> nvioctlNvmap_Param 2018-12-19 19:33:31 +01:00
fincs
5039c0815e console_sw: Switch to PIXEL_FORMAT_RGB_565, optimize scrollWindow 2018-12-19 19:33:31 +01:00
fincs
e7c58fe59e Deprecate old gfx API; scheduled for removal at a later date. 2018-12-19 19:33:31 +01:00
fincs
1b18a3b056 console_sw: Use Framebuffer object instead of old gfx api. Moved RGBA8/_MAXALPHA to framebuffer.h. 2018-12-19 19:33:31 +01:00
fincs
f37518d848 Add framebufferMakeLinear - linear shadow buffer support 2018-12-19 19:33:31 +01:00
fincs
dbc960a24f NWindow: Internal rework to fix resource leak in nwindowReleaseBuffers 2018-12-19 19:33:31 +01:00
fincs
3a77a7ace8 Introduce nwindowGetDefault 2018-12-19 19:33:31 +01:00
fincs
f381066a43 Add NvColorFormat enum 2018-12-19 19:33:31 +01:00
fincs
b1600c9add gfxGetFramebufferHandle: return id instead of handle 2018-12-19 19:33:31 +01:00
fincs
d87f9541d1 NvMap: added support for loading remote NvMap objects (from id) 2018-12-19 19:33:31 +01:00
fincs
72a48f6598 Add nvioctlMap_Param and NvMapParam enum 2018-12-19 19:33:31 +01:00
fincs
260f34fa4e NWindow: add several new functions:
- nwindowIsValid
- nwindowGetDimensions
- nwindowSetDimensions
- nwindowSetCrop
- nwindowSetTransform
- nwindowIsConsumerRunningBehind
2018-12-19 19:33:31 +01:00
fincs
bf43284c9f Misc code style fixes, rename NvGraphicBuffer::layers to planes 2018-12-19 19:33:31 +01:00
Michael Scire
798d8ff50c Add vi wrappers for system StrayLayer usage. 2018-12-19 19:33:31 +01:00
fincs
4879937946 Introduce Framebuffer, experimental wrapper object around a framebuffer queue for use by software rendering clients 2018-12-19 19:33:31 +01:00
fincs
62aa8e8b23 NWindow: add nwindowReleaseBuffers, which is also done automatically on Close 2018-12-19 19:33:31 +01:00
fincs
412c84d5f9 Rename NvInfo to NvGpu 2018-12-19 19:33:31 +01:00
fincs
c5f8275978 Rename nvMapFree to nvMapClose for consistency reasons 2018-12-19 19:33:31 +01:00
fincs
a9cbd9116a Introduce NWindow, an experimental replacement for the GFX API 2018-12-19 19:33:31 +01:00
fincs
b188f5fb33 gfx.c: fix two single-line bugs 2018-12-19 19:33:31 +01:00
fincs
2af9531f5b Const correctness in bqCancelBuffer 2018-12-19 19:33:31 +01:00
fincs
ec6d878d12 Major buffer producer refactor, see details:
- Introduced NativeHandle (display/types.h)
- Introduced NvGraphicBuffer (nvidia/graphic_buffer.h)
- Renamed BqQueueBufferInput to BqBufferInput
- Renamed BqQueueBufferOutput to BqBufferOutput
- BqGraphicBuffer is now defined and marshalled in a way that matches
  official sw more closely, with a pointer to a NativeHandle instead of
  inline flattened data and other miscellaneous junk
- Const correctness fixes
- bqSetPreallocatedBuffer now has flattening logic for BqGraphicBuffer
- bqRequestBuffer doesn't have this logic for now, passing anything other
  than NULL will fail
- gfx.c updated to use the refactored buffer producer
2018-12-19 19:33:31 +01:00
fincs
d717507541 display/parcel.h: Const correctness fixes 2018-12-19 19:33:31 +01:00
fincs
ae77cbea97 gfx/hid/irs/nv/vi: changes related to sysmodule users, see details:
- Removed hard dependency on applet
- Allow appletGetAppletResourceUserId to fail (using default zero in that case)
- nvInitialize uses nvdrv:s for AppletType_None
- gfx now uses weak global __nx_gfx_vi_service_type for the ViServiceType passed to viInitialize
2018-12-19 19:33:31 +01:00
fincs
3a31df429e gfx: finally get rid of nvgfx, replaced with an NvMap object 2018-12-19 19:33:31 +01:00
fincs
5fe01c065a Major refactor and redesign of nvidia wrapper objects, see details:
- NvBuffer replaced with NvMap, which only manages the creation of
  raw nvmap objects. Users must map these objects manually to
  address spaces.
- nvAddressSpaceBindToChannel removed.
- nvChannelSetNvmapFd is now automatic and has been removed.
- Nv3DContext, NvCmdList, NvErrorNotifier, NvGpfifo, NvGpu and
  NvZcullContext have all been removed.
- Introduced NvGpuChannel, which provides all functionality that was
  part of said removed objects.
- Other miscellaneous changes and fixes.
2018-12-19 19:33:31 +01:00
fincs
85a20f43dc NvAddressSpace: major overhaul, see details:
- Now contains a 'page_size' field, used throughout the functions
- Removed NvPageSize
- Removed nvAddressSpaceReserveAlign/AtFixedAddr/Full
- Added nvAddressSpaceAlloc/AllocFixed/Free (replacing above functions)
- Removed nvAddressSpaceMapBuffer/UnmapBuffer
- Added nvAddressSpaceMap/MapFixed/Modify/Unmap (replacing above functions)
- Adapted NvBuffer/NvGpu to use the new functions
2018-12-19 19:33:31 +01:00
fincs
22499d8ddf nvhost-as-gpu.c: fix some mistakes, add nvioctlNvhostAsGpu_FreeSpace, add NvAllocSpaceFlags, add NvMapBufferFlags_Modify 2018-12-19 19:33:31 +01:00
fincs
f0de0c869d Added nvInfoGetGpuCharacteristics 2018-12-19 19:33:31 +01:00
yellows8
9f63f29988 Use eventActive for g_appletLibraryAppletLaunchableEvent. Fixed _appletWaitLibraryAppletLaunchableEvent, and set rc to eventWait ret in _appletWaitLibraryAppletLaunchableEvent. Added appletHolderWaitInteractiveOut. 2018-12-19 13:00:40 -05:00
yellows8
ced4f16ee1 Fixed+enabled appletSetTerminateResult and added it to applet.h. 2018-12-18 21:45:13 -05:00
yellows8
d8683ea188 Added appletHolderPopOutData and appletHolderPopInteractiveOutData. 2018-12-18 20:07:29 -05:00
yellows8
a6e1413712 Added storage pushing for AppletHolder. Verify that the input storage is initialized in _appletCmdInStorage(). 2018-12-18 19:37:07 -05:00
yellows8
5874a272d0 Added appletHolderJoin and appletHolderGetExitReason. 2018-12-18 19:03:22 -05:00
yellows8
bca797afc2 Use LibraryAppletLaunchableEvent and handle LibraryApplet self-creation. Implemented LibraryApplet starting. 2018-12-17 20:23:43 -05:00
yellows8
8f22e9e213 Initial impl for LibraryApplet creation. 2018-12-17 12:16:46 -05:00
natinusala
c8f732fda8 Add missing applet focus states and handling modes 2018-12-17 11:03:49 -05:00
fincs
beeeb057d2 Finishing touches to user-mode synchronization primitives 2018-12-17 16:06:23 +01:00
fincs
21f69bfa57 Add, document, and use MAX_WAIT_OBJECTS 2018-12-17 16:06:23 +01:00
fincs
33dad9b893 UTimer: use an actual 'started' flag instead of a magic tick value 2018-12-17 16:06:23 +01:00
fincs
8d813ee666 Generalize Waitable, moving UEvent/UTimer specific code into a vtable. 2018-12-17 16:06:23 +01:00
fincs
1d14cad1cf Separate WaiterNode initialization again, which is now done in waitImpl 2018-12-17 16:06:23 +01:00
fincs
a23d38ac77 Move waiterForXyz() functions to Xyz's header file. Implement waiter for (kernel mode) Event, and use it instead. 2018-12-17 16:06:23 +01:00
fincs
c9ee12ce20 Simplify WaiterNode, make it private. Improve UEvent autoclear logic. 2018-12-17 16:06:23 +01:00
fincs
47b786bcea Synchronize eventWait and _waitLoop code 2018-12-17 16:06:23 +01:00
fincs
2e76b2b150 waitN: Fix index bug when there are handles before UEvents in the array 2018-12-17 16:06:23 +01:00
fincs
3c9a84fe68 wait.c: Fix no-timeout handling; use new kernel error result codes 2018-12-17 16:06:23 +01:00
fincs
9144d78031 Stylefixes, part 1 2018-12-17 16:06:23 +01:00
plutooo
eb7d835a79 wait: Rename UsermodeEvent and UsermodeTimer 2018-12-17 16:06:23 +01:00
plutooo
376add30a4 wait: Introduce wait for raw handles too 2018-12-17 16:06:23 +01:00
plutooo
68b4d323a0 utimer: Add TimerType_OneShot 2018-12-17 16:06:23 +01:00
plutooo
0c0261bf2f wait: Improve timer calculation, thanks derrek 2018-12-17 16:06:23 +01:00
plutooo
b38983c1b7 wait: Fix a race 2018-12-17 16:06:23 +01:00
plutooo
eb01ccd097 wait: Doxygen 2018-12-17 16:06:23 +01:00
plutooo
6a6f654526 wait: Final implementation 2018-12-17 16:06:23 +01:00
plutooo
03ddd464a0 arm: Rename armTickToNs(), etc 2018-12-17 16:06:23 +01:00
plutooo
26b17cdae5 kernel: Review comments (move to private interface to private headers, atomics) 2018-12-17 16:06:23 +01:00
plutooo
9da123f916 wait: Check for disabled timer 2018-12-17 16:06:23 +01:00
plutooo
c6fc6a41e5 wait: Bug-fixes and lock-free utimer stop/start 2018-12-17 16:06:23 +01:00
plutooo
370d78453e kernel: Introduce utimer, uevent, and waitN 2018-12-17 16:06:23 +01:00
yellows8
42e7cf44cb Implemented applet IPC code for pushing storages/objects. Added appletPushToGeneralChannel(). 2018-12-16 18:16:01 -05:00
yellows8
f61e9237e6 Added accountGetPreselectedUser. 2018-12-15 21:50:27 -05:00
yellows8
41e75d0b7d Removed AppletStorage.isHandleStorage since it's not usable for storages not created by the current process. Hence, appletStorageGetSize no longer supports HandleStorage. 2018-12-15 18:11:21 -05:00
yellows8
10826dda13 Added appletPopLaunchParameter. 2018-12-15 17:31:36 -05:00
yellows8
d65c2ec94b Added support for tmem with AppletStorage, and added HandleStorage support. applet IPC improvements. 2018-12-15 16:34:23 -05:00
yellows8
1077cc2b46 Implemented AppletStorage. Various IPC improvements in applet.c, etc. 2018-12-13 22:48:48 -05:00
yellows8
8b86e4ecb8 Use domains for applet. 2018-12-12 21:13:01 -05:00
Michael Scire
3cff199b42 Add remaining pm:shell services, address issues 2018-12-10 00:12:46 +01:00
Michael Scire
0fad4244da Add ro:dmnt, ldr:ro. 2018-12-10 00:12:46 +01:00
Michael Scire
8e1ba23b83 pm: Add remaining pm:dmnt services 2018-12-10 00:12:46 +01:00
Michael Scire
0a92b0eb07 ns: Implement all of ns:dev 2018-12-10 00:12:46 +01:00
plutooo
bfad4d4557 Fix whitespace 2018-12-09 19:07:39 +01:00
plutooo
c328a74f71 Add fsIsExFatSupported() 2018-12-09 17:06:47 +01:00
Lioncash
69a98dc0cb kernel/svc: Correct SVC instruction values for svcMapPhysicalMemory and svcUnmapPhysicalMemory
0x2A corresponds to svcFlushEntireDataCache, while 0x2B corresponds to
svcFlushDataCache.
2018-12-07 12:19:16 +01:00
Michael Scire
40bccd7838 Add svcTerminateDebugProcess 2018-12-06 13:18:06 +01:00
yellows8
bc2dff0361 Added hidAcquireNpadStyleSetUpdateEventHandle. 2018-12-02 16:48:59 -05:00
Michael Scire
2a831c6196 Fix struct definition for splSetConfig 2018-12-01 21:29:41 +01:00
yellows8
ee066a27ee Implemented usbhs endpoints, other adjustments. Updated field name in UsbHsXferReport. Added defines in usb.h from libusb. 2018-11-30 20:13:58 -05:00
yellows8
31cea3a6b6 Implemented usbhs control transfers. Fixed eventCtrlXfer init. Updated a field name in UsbHsXferReport. 2018-11-30 20:13:58 -05:00
yellows8
2049ff081d Updated usbhs comments and store the interface ID in UsbHsClientIfSession. Added: usbHsIfSetInterface, usbHsIfGetInterface, usbHsIfGetAlternateInterface, usbHsIfGetCurrentFrame, and usbHsIfResetDevice. 2018-11-30 20:13:58 -05:00
yellows8
83dfc58adb Moved interface-specific data from UsbHsInterface into UsbHsInterfaceInfo. Added usbHsAcquireUsbIf/usbHsIfClose and the related structs. 2018-11-30 20:13:58 -05:00
yellows8
f1ba199d1c Initial usbhs support. 2018-11-30 20:13:58 -05:00
yellows8
725ac9f00a Moved usb code specific to usbds into seperate .c/.h. 2018-11-28 17:34:53 -05:00
yellows8
3726eb8950 Use PACKED for _usbDsGetSession resp, required for domains. Use domains for usbds, with changes from @SciresM. 2018-11-28 16:40:45 -05:00
yellows8
7ae659c2cb Handle the output u8 in _usbDsGetSession, without using it in the callers. 2018-11-28 15:03:06 -05:00
yellows8
36bed9f8fc Added support for getting file timestamps via 3.0.0+ fsFsGetFileTimeStampRaw, *stat() timestamps are now set when fsFsGetFileTimeStampRaw is successful. This is now used in fsdev_open() for supporting fstat. The sysver is now checked in fsFsCleanDirectoryRecursively(). Closes #204. 2018-11-20 14:22:19 -05:00
pixel-stuck
a7577f7b56 Add pcvSetVoltageEnabled and pcvGetVoltageEnabled (#208)
* Add pcvSetVoltageEnabled and pcvGetVoltageEnabled
2018-11-19 10:37:59 -05:00