-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement GcSrv and SdmmcSrv #281
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
aa33749
to
2b69ec6
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
These two namespaces act as an abstraction over the
nn::gc
andnn::sdmmc
namespaces. Their goal is to provide a common interface for controlling different storage devices, and for attaching and detaching devices. Nintendo doesn't currently use theSetReady
andUnsetReady
functions on NX for anything other than setting its storage devices as being ready when FS starts up. Future consoles might or might not use these functions for attaching and detaching devices while the console is running.There are four main interfaces:
IStorageDeviceManagerFactory
: Set storage devices as ready or not ready, and createIStorageDeviceManager
instances for each storage device.IStorageDeviceManager
: Query the basic status of a storage device, and open other objects for operating on the device.IStorageDevice
: Read and write to a storage device, and open an operator for the currently inserted media.IStorageDeviceOperator
: Perform device-specific operations. Opening a device operator from anIStorageDeviceManager
will give you an operator for interacting with that storage device. Opening a device operator from anIStorageDevice
will give you an operator for interacting with the currently inserted storage media.The functions on this interface allow passing various combinations of an operation ID, storage offset, size, input buffers, and output buffers to the device operator. Each type of device operator defines its own operations. e.g. The
GetCid
operation on an SD card storage media operator takes a 16-byte output buffer and writes the CID to that buffer.