Commit Graph

694 Commits

Author SHA1 Message Date
yellows8
0fb0f67d2e hidGetControllerConnected -> hidIsControllerConnected 2018-10-22 12:20:28 -04:00
yellows8
0370140c12 Added hidGetControllerConnected() and updated CONTROLLER_P1_AUTO comment. 2018-10-22 12:13:59 -04:00
yellows8
a62e29d5cf Added support for applet video-recording, currently not usable. In appletExit, only call appletSetFocusHandlingMode when g_appletExitProcessFlag is zero, so that it isn't called twice during proc-exit. 2018-10-21 22:24:54 -04:00
yellows8
cfbc3e9278 Added usbCommsSetErrorHandling, don't throw fatalSimple for usbComms by default. 2018-10-19 12:34:17 -04:00
yellows8
319cc578ca Fixed swapped params for memalign in jitCreate(). 2018-10-17 14:47:14 -04:00
fincs
8e1736c480 Add RandomSeed (14) homebrew ABI key and related handling 2018-10-17 17:17:05 +02:00
yellows8
6a9d194fe3 Added hidGetControllerColors and HidControllerColors. Changed rightColorbuttons to rightColorButtons in HidControllerHeader. Updated CONTROLLER_P1_AUTO comment. 2018-10-16 22:45:44 -04:00
TuxSH
052fb34397 Reduce usage of malloc in select and poll. Fix poll not acceping -1 fds 2018-10-16 18:53:05 -04:00
fincs
fba43b0f10 nvBufferCreate: use separate is_cpu_cacheable/is_gpu_cacheable parameters 2018-10-17 00:32:47 +02:00
Michael Scire
86a25e1edd Make fsp-ldr use domains 2018-10-16 17:56:39 -04:00
Michael Scire
d67ae02bc5 Add domain support to fsp-srv 2018-10-16 17:56:39 -04:00
yellows8
cde495241c Added _hidActivateNpad/_hidDeactivateNpad for internal use in hidInitialize/hidExit. Added hidSetNpadJoyHoldType. Added _hidCmdWithInputU64 and _hidCmdWithNoInput. 2018-10-15 12:10:07 -04:00
yellows8
d4277b6d32 Added hidSetSupportedNpadIdType(), which is automatically called during init. Closes #148, however vibration disable+enable in system-settings is still needed. 2018-10-14 21:47:26 -04:00
yellows8
52686826d1 Added fsdevGetDeviceFileSystem(). 2018-10-12 22:13:14 -04:00
yellows8
42d3c32b37 Use FatalType_ErrorReportAndErrorScreen instead of FatalType_ErrorScreen, on pre-3.0.0. FatalType_ErrorScreen is only available with 3.0.0+, this fixes a regression where using fatalSimple on pre-3.0.0 caused a system hang. 2018-10-11 15:41:05 -04:00
SciresM
347e3b3156 Refactor usb:ds, add 5.0.0+ support to usbComms. (#181)
* Refactor usb:ds, add support for 5.0.0+. Closes #109.
2018-10-11 15:35:22 -04:00
Samuel P
74ebf370dd add an exit request hook type, allow to delay exit (#183)
* add an exit request hook type, allow to delay exit
* appletMainLoop: return false on exit request msg
2018-10-09 11:04:33 -04:00
Thog
8178c0fa45 _socketDeserializeHostent: fix usage of uninitialized h_name 2018-10-08 21:44:30 -04:00
fincs
420d5d4e61 C11 thread support: address standard compilance issues
Also fixes #158
2018-10-06 22:00:31 +02:00
fincs
1563df3921 Refactor console device, see details:
- Added ConsoleRenderer interface, which abstracts all relevant
  operations needed to set up and write characters to a text mode display
- ConsoleFont now has tileWidth/tileHeight parameters
- PrintConsole now holds a pointer to a ConsoleRenderer
- Added consoleExit for deinitializing the console
- Added consoleUpdate for updating the display every frame
- Corrected lots of obsolete/outdated comments
- Separated console software renderer into its own file (console_sw.c)
- Added getDefaultConsoleRenderer weak function, for selecting the
  default console renderer when none (NULL) is specified in PrintConsole
- Software renderer now takes care of gfxInitDefault/gfxExit
- All these changes are backwards compatible with older programs because:
  - gfxInitDefault has double-init protection
  - Old programs don't call consoleUpdate/Exit, but their implementation
    in the software renderer is identical to what old programs were
    already doing anyway
2018-10-06 16:48:03 +02:00
fincs
cc70f19e61 nvservices: increase default tmem size to 8MB 2018-10-06 16:47:53 +02:00
fincs
20204e3c48 NvFence: fix regression on 1.x 2018-10-06 16:47:25 +02:00
yellows8
4fb364060c Added support for timezones, hence localtime() will now return actual localtime. Added timeToCalendarTimeWithMyRule and TimeCalendarTime/TimeCalendarAdditionalInfo, which are used for timezones support. 2018-10-05 19:59:24 -04:00
yellows8
dc011024f9 Call appletSetFocusHandlingMode in appletExit for AppletType_Application. 2018-10-04 22:19:58 -04:00
yellows8
6d2699b38d Added pmshellGetApplicationPid(). 2018-10-04 18:44:45 -04:00
yellows8
b4859873ec Added env AppletFlags handling. Don't enter the msg-loop for AppletType_Application when the output from _appletGetCurrentFocusState is already 1. This fixes the hang issue with AppletType_Application where applet init with AppletType_Application was previously done. Moved AppletType_*Application checks into a dedicated function which also checks for AppletType_SystemApplication, hence some of these funcs which didn't check for AppletType_SystemApplication now support it. 2018-10-04 18:06:00 -04:00
yellows8
96dce1a8b6 In __libnx_gtod set errno to EIO instead of EINVAL when __boottime is invalid due to timeGetCurrentTime() failing during time init, and added this to __libnx_clock_gettime. Set errno to ENOSYS in __libnx_clock_settime. 2018-10-03 20:55:58 -04:00
yellows8
0b1b7039ca Changed the value of TimeType_Default to TimeType_UserSystemClock. When timeGetCurrentTime fails where __nx_time_type isn't TimeType_Default, call it again with TimeType_Default. 2018-10-03 19:48:33 -04:00
yellows8
16bbf3411e Added automatic process exit handling with applet cmds, see __nx_applet_exit_mode. appletSelfExit is no longer user-accessible, see __nx_applet_exit_mode instead. Added envSetExitFuncPtr. Added disabled _appletSetTerminateResult func. 2018-10-03 19:04:48 -04:00
yellows8
beef09a27e Removed appletSelfExit and replaced it with the previously disabled _appletSelfExit, now renamed to appletSelfExit. 2018-10-01 18:35:49 -04:00
Vicki Pfau
7a952ab39b hid: Uncomment function that works now 2018-09-30 16:39:51 -04:00
Vicki Pfau
8add42378b hid: Add SixAxis sensor support 2018-09-30 16:39:51 -04:00
Vicki Pfau
68b2ad0c1e hid: Call SetSupportedNpadStyleSet to enable additional Npad features 2018-09-27 16:23:37 -04:00
fincs
eb11e25dc5 Add Module_HomebrewAbi/Loader. Reassign Module_LibnxBinder, as it inadvertently collided with Module_HomebrewLoader. 2018-09-27 21:03:29 +02:00
yellows8
1cc3547990 Removed TODO comment in _hidGetDeviceHandles(). 2018-09-27 12:01:58 -04:00
yellows8
1267019d83 Added partial support for hid SixAxisSensor. Moved some hid ipc code into a single func for using cmds with an input u32. Moved handle-generation code from hidInitializeVibrationDevices into a new func, with some improvements + support for SixAxisSensor. 2018-09-26 22:28:40 -04:00
fincs
67886bb3df nvGpuClose: correct order of operations 2018-09-26 21:08:30 +02:00
leo60228
1c948e2d32 applet: Add appletSelfExit() 2018-09-21 15:55:06 -04:00
plutooo
00287b6a69 Fix pm:dmnt for 5.0.0+ 2018-09-18 09:38:17 +02:00
TuxSH
3ecd841ec2 Update svcGetDebugThreadContext, add svcSetDebugThreadContext, implement threadDumpContext 2018-09-18 01:13:55 +02:00
TuxSH
5498d3e0c7 Add ThreadContext, RegisterGroup, svcGetThreadContext3, threadDumpContext 2018-09-18 01:13:55 +02:00
Vicki Pfau
d9e3be27a2 Add psm:GetChargerType 2018-09-18 01:13:24 +02:00
Lioncash
a06bfb74a7 kernel/random: Avoid casting away const in the U8TO32_LITTLE macro
This macro is only ever used with const input data within chachaInit(),
which causes -Wcast-qual warnings. This is trivial enough to fix, by
preserving the qualifier within the cast.
2018-09-18 01:13:04 +02:00
fincs
4645ef7004 gfx: Add gfxAppendFence. Remove obsolete comments related to double buffering. 2018-09-16 18:03:35 +02:00
fincs
a50942509f NvGpfifo: Redesign API to allow for submitting multiple entries at once 2018-09-16 16:35:57 +02:00
plutooo
4a13ee3e62 Fix function name to not cause linker problems due to symbol truncation issues 2018-09-15 08:42:32 +02:00
Lioncash
9ff32e3260 Resolve trivial -Wmissing-prototypes warnings
Gets rid of trivial warnings caused by headers not being included into
the relevant .c file, empty parameter lists missing void, or functions
missing a prototype in the header.
2018-09-14 19:07:34 +02:00
fincs
e7ae7ea846 nv wrappers: Handle cacheability settings properly, more details:
- nvAddressSpaceMapBuffer now accepts a flags parameter instead of
  hardcoding NvMapBufferFlags_IsCacheable.
- NvBufferFlags was incorrect and was thus removed.
- nvBufferCreate/nvBufferCreateRw replaced with nvBufferCreate, with
  an extra 'is_cacheable' bool parameter. There's no such thing as a
  "read-only/read-write" buffer.
- nvBufferMakeCpuUncached/nvBufferMakeCpuCached were removed.
2018-09-14 18:09:58 +02:00
fincs
f469fa7458 Add nvioctlChannel_KickoffPb (uses Ioctl2) 2018-09-14 02:15:55 +02:00
fincs
cae1954ebc nv: add cloned session handle used with certain requests; add Ioctl2 2018-09-14 02:15:24 +02:00
fincs
1cbc67e650 NvBuffer: actually unmap and free the buffer in nvBufferFree 2018-09-13 20:05:55 +02:00
Rajko Stojadinovic
dcdb5c28a4 Fix fsOpenFileSystem (#153)
* Fix fsOpenFileSystem

* Make fsOpenFileSystem and fsOpenFileSystemWithId work on all firmware versions

* Add some comments for fsOpenFileSystem(WithId)
2018-09-09 19:56:38 +02:00
Random
122fec028c Added nsListApplicationRecord and nsListContentMetaStatus (#163) 2018-09-09 19:56:16 +02:00
neonsea
20a39ef86c Add appletBeginBlockingHomeButton() and appletEndBlockingHomeButton() (#165) 2018-09-09 19:55:53 +02:00
XorTroll
cd813ddb60 Add psm service and psmGetBatteryChargePercentage function (fixed) (#166) 2018-09-09 19:55:36 +02:00
Michael Scire
6ef26bff1a Implement kernelAbove600() 2018-09-09 19:55:12 +02:00
fincs
81d56a9e23 console: disable forced flush/swap/vblank due to performance reasons 2018-09-08 14:19:24 +02:00
fincs
52c0cee10c Add nvioctlChannel_SetTimeout & nvChannelSetTimeout 2018-09-08 14:17:54 +02:00
fincs
999edaa8b2 Changes to NvCmdList and NvGpfifo, see details:
- NvCmdList:
  - Added 'offset' parameter: start of the cmdlist within the buffer
  - Added nvCmdListReset for resetting a cmdlist (offset/num_cmds cleared)
- NvGpfifo:
  - nvGpfifoCreate: disabled fence wait
  - nvGpfifoSubmit -> nvGpfifoSubmitCmdList:
    - Added fence_incr parameter
    - Cleaned up flags and gpfifo entry creation
    - Now advances cmdlist offset by the number of cmds submitted
      instead of going back to the beginning
2018-09-07 17:27:15 +02:00
fincs
7f4001bec2 Potentially fix race condition nvGpfifoCreate by waiting on the fence returned by nvioctlChannel_AllocGpfifoEx2 2018-09-05 14:00:28 +02:00
fincs
d718a8dd28 NvBufferFlags_Nintendo doesn't exist, it's a misreading of the alignment parameter 2018-09-05 13:59:50 +02:00
fincs
e3a7187973 gfx: Remove gfxSetDrawFlip. Make 0 the default transform instead of FLIP_V. 2018-08-31 20:14:50 +02:00
fincs
0d1b8bd723 BqQueueBufferInput: add swapInterval field (purpose currently unknown) 2018-08-31 20:11:53 +02:00
fincs
651dd72ac1 Add bqCancelBuffer and use it in gfx.c 2018-08-31 14:14:54 +02:00
fincs
c8ebe8a3b5 buffer_producer: convert Binder error codes to Result values 2018-08-31 14:05:04 +02:00
fincs
a62fae427b Introduce Module_LibnxBinder result codes (based on Android status_t) and binderConvertErrorCode 2018-08-31 13:59:18 +02:00
fincs
819a6f0d89 display/binder.h: refactoring and other changes:
- Removed session_handle/native_handle state
- Consequence of the above: simplified binderCreate/binderInitSession
- Now using viGetSession_IHOSBinderDriverRelay internally
- Changed binderGetNativeHandle to return an Event
- Added readable aliases for binderAdjustRefcount
- gfx: now using async bqDequeueBuffer when the binder event is available
2018-08-31 13:05:23 +02:00
fincs
60cbb68f46 gfx: use new NvFence waiting code 2018-08-31 13:05:23 +02:00
fincs
a70acdd445 Implement nvFence 2018-08-31 13:05:23 +02:00
fincs
57e1f5f4cb nvioctlNvhostCtrl: add EventWaitAsync, EventUnregister; fix EventRegister 2018-08-31 13:05:23 +02:00
fincs
99f37184fb nvQueryEvent: return an Event instead of a raw Handle 2018-08-31 13:05:23 +02:00
fincs
7f8b6af64c runtime/newlib.c: use armGetSystemTick instead of svcGetSystemTick 2018-08-31 13:05:23 +02:00
fincs
b26bb6ce76 viGetDisplayVsyncEvent: return an Event instead of a raw handle 2018-08-31 13:05:22 +02:00
fincs
88e9d3bb83 kernel/event.h: several fixes, including autoclear support 2018-08-31 13:05:22 +02:00
fincs
f2f59c75c0 display/gfx.h & buffer_producer.h: Start major refactor, highly WIP 2018-08-31 13:05:22 +02:00
fincs
10684e205a nvidia/fence.h: sketching on NvFence/NvMultiFence {not implemented} 2018-08-31 13:05:22 +02:00
fincs
30e2ca8ec3 Introduce nvidia/types.h & move NvBufferKind to it (renamed to NvKind) 2018-08-31 13:05:22 +02:00
fincs
27f5aecea8 nvgfx: Strip down to bare minimum - remove unused logic 2018-08-31 13:05:22 +02:00
fincs
4e7159ce02 VI service: major revamp, see details:
- Added viOpenDefaultDisplay.
- Replaced viOpenLayer with viCreateLayer.
- NativeWindow parcel data is now parsed by viCreateLayer, and the
  ViLayer struct contains a new igbp_binder_obj_id field.
- LayerFlags/LayerId parameters replaced by weak global variables
  __nx_vi_layer_id/__nx_vi_stray_layer_flags.
- The root vi:* session is closed on startup.
- Simplified corresponding gfx code.
- Misc style fixes
2018-08-31 13:05:22 +02:00
fincs
180cd9b550 display/parcel.h: publish ParcelHeader struct 2018-08-31 13:05:22 +02:00
fincs
a0b3d3e193 source/nvidia/: do NOT include <switch.h> 2018-08-31 13:05:22 +02:00
Jules Blok
e234129598 gfx: Add a buffer index to gfxGetFramebufferHandle(). 2018-08-31 13:05:22 +02:00
Jules Blok
4f331eb9f7 gfx: Add function to query framebuffer pitch. 2018-08-31 13:05:22 +02:00
Jules Blok
06e50f74ab gfx: Add a call to get the framebuffer nvmap handle. 2018-08-31 13:05:22 +02:00
Jules Blok
d93c45a18d gpfifo: Reset the command buffer after submission.
Don't forget to wait on the fence before re-using the buffer.
2018-08-31 13:05:22 +02:00
Jules Blok
9ce884f29e cmd_list: The number of entries is the number of ints. 2018-08-31 13:05:22 +02:00
Jules Blok
3a750138c5 buffer: Align the size based on the param. 2018-08-31 13:05:22 +02:00
Jules Blok
cd85610ebb Fix nvBuffer memory allocation failure 2018-08-31 13:05:22 +02:00
plutooo
de93886c56 Buildfix 2018-08-31 13:05:22 +02:00
plutooo
a3a2e57fc2 More updates to nvidia 2018-08-31 13:05:22 +02:00
plutooo
1c88d99131 Implement cmd list 2018-08-31 13:05:22 +02:00
plutooo
d6dbb59872 Change code style 2018-08-31 13:05:22 +02:00
plutooo
9c234d4d40 Started sketching on cmd lists 2018-08-31 13:05:22 +02:00
plutooo
50718ddccb Bad cleanup in gpu.c 2018-08-31 13:05:22 +02:00
plutooo
6d21700ff7 Get rid of flag todo 2018-08-31 13:05:22 +02:00
plutooo
28cac45af8 Completing error notifier 2018-08-31 13:05:22 +02:00
plutooo
267e4e509b Error notifier bringup 2018-08-31 13:05:22 +02:00
plutooo
d22bc791f4 Nv fixes 2018-08-31 13:05:22 +02:00
plutooo
d6f2e1118c Zcull context works 2018-08-31 13:05:22 +02:00
plutooo
420d445a84 Minor fixes, now gets to whitescreen 2018-08-31 13:05:22 +02:00
plutooo
577a76dc06 Minor fixes, adding custom flag to buffer allocation 2018-08-31 13:05:22 +02:00
plutooo
1a22b484f8 Implemented zcull_ctx, 3d_ctx, random fixes 2018-08-31 13:05:21 +02:00
plutooo
cff044f497 Implement 3d_ctx 2018-08-31 13:05:21 +02:00
plutooo
87d29bdeb3 gpu takes reference on singletons 2018-08-31 13:05:21 +02:00
plutooo
f62f6e8b54 Add refcounting to nvidia stuff 2018-08-31 13:05:21 +02:00
plutooo
e7daaf1e71 Hide nv tmem size from gfx 2018-08-31 13:05:21 +02:00
plutooo
74958c57ce Use reference counting across services 2018-08-31 13:05:21 +02:00
plutooo
194e335532 Let nv reference applet 2018-08-31 13:05:21 +02:00
plutooo
efacee6956 Simplify nv 2018-08-31 13:05:21 +02:00
plutooo
4b20f609a9 Stubbed 3d_ctx 2018-08-31 13:05:21 +02:00
plutooo
1660f99afe Stubbed gpfifo, zcull_ctx 2018-08-31 13:05:21 +02:00
plutooo
4bd1d3313c Fix nvgfx, add nvinfo 2018-08-31 13:05:21 +02:00
plutooo
f6aa4e3d52 Minimize nvgfx.c 2018-08-31 13:05:21 +02:00
plutooo
b24f6babbb Make compilable 2018-08-31 13:05:21 +02:00
plutooo
61ebd9ddfd Started implementing channels 2018-08-31 13:05:21 +02:00
plutooo
9a759c26f5 Rename nvmap->buffer 2018-08-31 13:05:21 +02:00
plutooo
04751087ca Stylechanges to binder, and implemented gpu address space 2018-08-31 13:05:21 +02:00
plutooo
cd753b1b58 Implemented nvmap.c 2018-08-31 13:05:21 +02:00
plutooo
112b2b5d8e Move nvidia driver to nvidia/ 2018-08-31 13:05:21 +02:00
plutooo
d8bb563546 Renamed gfx/ to display/ 2018-08-31 13:05:21 +02:00
plutooo
978c3f7f15 Style fixes, use structs for parsing parcels, renamed bufferProducer to bq 2018-08-31 13:05:21 +02:00
fincs
772c839c8c Add audio/ ("AudioDriver"), a high level wrapper around audren 2018-08-31 13:05:21 +02:00
fincs
6fbf25fb62 Add audren:u IPC service wrapper with structure definitions 2018-08-31 13:05:21 +02:00
fincs
80439a186b Add MOD0 header to crt0 2018-08-31 13:05:21 +02:00
plutooo
68a77ac950 Close sm session properly 2018-08-28 21:29:55 +02:00
David Marcec
d91c315f77 Fixed nifm not initializing properly for < 3.0.0 2018-08-27 16:10:53 +02:00
XorTroll
722450ae25 Add bpc service with ShutdownSystem and RebootSystem commands (#144) 2018-08-24 16:21:16 +02:00
Juan Antonio Hernández Cánovas
377683acd5 Add rwlockInit (#155) 2018-08-24 16:20:01 +02:00
yellows8
3513c91c3c Added the remaining init for AppletType_SystemApplet. 2018-08-17 21:55:37 -04:00
yellows8
a7ba75ea1a Added comment regarding the AppletType_Application double-init issue. 2018-08-15 16:32:11 -04:00
plutooo
fb42ebe53a Fix memory leak in tmemCreate 2018-08-11 15:01:12 +02:00
Lioncash
d3f388d2c8 socket: Correct missing break within _socketParseBsdResult() 2018-08-09 14:53:41 +02:00
Lioncash
12a473ecbe hid: Correct bitwise AND for pro controllers in hidInitializeVibrationDevices()
LAYOUT_PROCONTROLLER is a value of zero, so the bitwise AND condition
here would always be false (TYPE_PROCONTROLLER, on the other hand is a
value of 1)
2018-08-09 14:53:26 +02:00
fincs
f3b530cea3 C11 threads: enable preemptive scheduler and load balancing 2018-08-06 17:59:51 +02:00
fincs
b181d725ac Use revised CondVar API in C11 threads impl 2018-08-05 14:32:10 +02:00
fincs
1e349b6ce8 Change CondVar API to have the mutex be passed to condvarWait* instead of condvarInit 2018-08-05 14:31:31 +02:00
fincs
062ef2b188 Add svcGetThreadCoreMask and svcSetThreadCoreMask 2018-08-05 14:30:08 +02:00
fincs
d255fe730b Experimental partial C11 threads support 2018-08-05 13:23:08 +02:00
plutooo
9fc5e85c88 Event bringup 2018-08-05 13:23:08 +02:00
Jakob Dietrich
8e19bb5b0d Fix semaphoreTryWait 2018-08-04 12:14:02 +02:00
Michael Scire
81e6972ae1 Fatal: fix marshalling 2018-07-28 18:24:19 -07:00
Rajko Stojadinovic
d726c7c55c Implement some missing fs functions (#141) 2018-07-28 17:49:14 +02:00
klockee
27b8868646 Wrapped and implemented fsOpenBisFilesystem() (#140) 2018-07-28 17:08:42 +02:00
Rajko Stojadinovic
01fb4218ba Add ncmContentStorageGetPlaceHolderPath and ncmContentStorageCleanupAllPlaceHolder 2018-07-27 18:14:43 +02:00
Rajko Stojadinovic
1b7acba590 add ncmContentStorageDisableForcibly and ncmContentMetaDatabaseDisableForcibly 2018-07-27 18:14:43 +02:00
Rajko Stojadinovic
c3278ffd34 Add ncmContentStorage functions needed for writing content 2018-07-27 18:14:43 +02:00
Jakob Dietrich
a180a36cb3 Fixed hid in sysmodules (#135) 2018-07-27 18:01:41 +02:00
Dave Murphy
be509f62ce return through libc exit rather than __libnx_exit directly (#139) 2018-07-26 18:01:40 +02:00
Rajko Stojadinovic
e1d50dc129 Fix signature of ncmContentMetaDatabaseSet/Get, add ncmContentMetaDatabaseList (#134)
* Fix ncmContentMetaDatabaseSet/ncmContentMetaDatabaseGet, add ncmContentMetaDatabaseList
2018-07-25 20:15:54 -04:00
Oliver Kuckertz
1eafa1b283 Fix data race by reordering in _CacheValues 2018-07-22 17:03:36 +02:00