@ -2356,7 +2356,7 @@ impl Default for StartupInfo {
@@ -2356,7 +2356,7 @@ impl Default for StartupInfo {
}
extern"C"{
#[must_use]
#[doc = "Memory management\n# **\n* Controls memory mapping\n* # Arguments\n\n* `addr_out` (direction out) - The virtual address resulting from the operation. Usually the same as addr0.\n* * `addr0` - The virtual address to be used for the operation.\n* * `addr1` - The virtual address to be (un)mirrored by `addr0` when using MEMOP_MAP or MEMOP_UNMAP.\n* It has to be pointing to a RW memory.\n* Use NULL if the operation is MEMOP_FREE or MEMOP_ALLOC.\n* * `size` - The requested size for MEMOP_ALLOC and MEMOP_ALLOC_LINEAR.\n* * `op` - Operation flags. See MemOp.\n* * `perm` - A combination of MEMPERM_READ and MEMPERM_WRITE. Using MEMPERM_EXECUTE will return an error.\n* Value 0 is used when unmapping memory.\n*\n* If a memory is mapped for two or more addresses, you have to use MEMOP_UNMAP before being able to MEMOP_FREE it.\n* MEMOP_MAP will fail if `addr1` was already mapped to another address.\n*\n* More information is available at http://3dbrew.org/wiki/SVC#Memory_Mapping.\n*\n* [`svcControlProcessMemory`]\n*/"]
#[doc = "Memory management\n# *\n* Controls memory mapping\n # Arguments\n\n* `addr_out` (direction out) - The virtual address resulting from the operation. Usually the same as addr0.\n * `addr0` - The virtual address to be used for the operation.\n * `addr1` - The virtual address to be (un)mirrored by `addr0` when using MEMOP_MAP or MEMOP_UNMAP.\n It has to be pointing to a RW memory.\n* Use NULL if the operation is MEMOP_FREE or MEMOP_ALLOC.\n * `size` - The requested size for MEMOP_ALLOC and MEMOP_ALLOC_LINEAR.\n * `op` - Operation flags. See MemOp.\n * `perm` - A combination of MEMPERM_READ and MEMPERM_WRITE. Using MEMPERM_EXECUTE will return an error.\n Value 0 is used when unmapping memory.\n*\n* If a memory is mapped for two or more addresses, you have to use MEMOP_UNMAP before being able to MEMOP_FREE it.\n* MEMOP_MAP will fail if `addr1` was already mapped to another address.\n\n* More information is available at http://3dbrew.org/wiki/SVC#Memory_Mapping.\n*\n* [`svcControlProcessMemory`]\n/"]
#[doc = "Process management\n# **\n* Gets the handle of a process.\n* # Arguments\n\n* `process` (direction out) - The handle of the process\n* processId The ID of the process to open\n*/"]
#[doc = "Process management\n# *\n* Gets the handle of a process.\n # Arguments\n\n* `process` (direction out) - The handle of the process\n * `processId` - The ID of the process to open\n/"]
#[doc = "Multithreading\n# **\n* Creates a new thread.\n* # Arguments\n\n* `thread` (direction out) - The thread handle\n* * `entrypoint` - The function that will be called first upon thread creation\n* * `arg` - The argument passed to `entrypoint`\n* * `stack_top` - The top of the thread's stack. Must be 0x8 bytes mem-aligned.\n* * `thread_priority` - Low values gives the thread higher priority.\n* For userland apps, this has to be within the range [0x18;0x3F]\n* * `processor_id` - The id of the processor the thread should be ran on. Those are labelled starting from 0.\n* For old 3ds it has to be <2, and for new 3DS <4.\n* Value -1 means all CPUs and -2 read from the Exheader.\n*\n* The processor with ID 1 is the system processor.\n* To enable multi-threading on this core you need to call APT_SetAppCpuTimeLimit at least once with a non-zero value.\n*\n* Since a thread is considered as a waitable object, you can use svcWaitSynchronization\n* and svcWaitSynchronizationN to join with it.\n*\n* > **Note:** The kernel will clear the `stack_top's` address low 3 bits to make sure it is 0x8-bytes aligned.\n*/"]
#[doc = "Multithreading\n# *\n* Creates a new thread.\n # Arguments\n\n* `thread` (direction out) - The thread handle\n * `entrypoint` - The function that will be called first upon thread creation\n * `arg` - The argument passed to `entrypoint`\n * `stack_top` - The top of the thread's stack. Must be 0x8 bytes mem-aligned.\n * `thread_priority` - Low values gives the thread higher priority.\n For userland apps, this has to be within the range [0x18;0x3F]\n* * `processor_id` - The id of the processor the thread should be ran on. Those are labelled starting from 0.\n For old 3ds it has to be <2, and for new 3DS <4.\n* Value -1 means all CPUs and -2 read from the Exheader.\n*\n* The processor with ID 1 is the system processor.\n* To enable multi-threading on this core you need to call APT_SetAppCpuTimeLimit at least once with a non-zero value.\n*\n* Since a thread is considered as a waitable object, you can use svcWaitSynchronization\n and svcWaitSynchronizationN to join with it.\n\n* > **Note:** The kernel will clear the `stack_top's` address low 3 bits to make sure it is 0x8-bytes aligned.\n/"]
#[doc = "Gets the handle of a thread.\n # Arguments\n\n* `thread` (direction out) - The handle of the thread\n process The ID of the process linked to the thread"]
#[doc = "Gets the handle of a thread.\n # Arguments\n\n* `thread` (direction out) - The handle of the thread\n* `process` - The ID of the process linked to the thread"]
#[doc = "Synchronization\n# **\n* Creates a mutex.\n* # Arguments\n\n* `mutex` (direction out) - Pointer to output the handle of the created mutex to.\n* * `initially_locked` - Whether the mutex should be initially locked.\n*/"]
#[doc = "Synchronization\n# *\n* Creates a mutex.\n # Arguments\n\n* `mutex` (direction out) - Pointer to output the handle of the created mutex to.\n * `initially_locked` - Whether the mutex should be initially locked.\n/"]
#[doc = "Time\n# **\n* Creates a timer.\n* # Arguments\n\n* `timer` (direction out) - Pointer to output the handle of the created timer to.\n* * `reset_type` - Type of reset to perform on the timer.\n*/"]
#[doc = "Time\n# *\n* Creates a timer.\n # Arguments\n\n* `timer` (direction out) - Pointer to output the handle of the created timer to.\n * `reset_type` - Type of reset to perform on the timer.\n/"]
#[doc = "Convert a UTF-8 sequence into a UTF-32 codepoint\n\n # Arguments\n\n* `out` (direction out) - Output codepoint\n in Input sequence\n\n # Returns\n\nnumber of input code units consumed\n -1 for error"]
#[doc = "Convert a UTF-8 sequence into a UTF-32 codepoint\n\n # Arguments\n\n* `out` (direction out) - Output codepoint\n*`in`(direction in) - Input sequence\n\n # Returns\n\nnumber of input code units consumed\n -1 for error"]
#[doc = "Convert a UTF-16 sequence into a UTF-32 codepoint\n\n # Arguments\n\n* `out` (direction out) - Output codepoint\n in Input sequence\n\n # Returns\n\nnumber of input code units consumed\n -1 for error"]
#[doc = "Convert a UTF-16 sequence into a UTF-32 codepoint\n\n # Arguments\n\n* `out` (direction out) - Output codepoint\n*`in`(direction in) - Input sequence\n\n # Returns\n\nnumber of input code units consumed\n -1 for error"]
#[doc = "Convert a UTF-32 codepoint into a UTF-8 sequence\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n in Input codepoint\n\n # Returns\n\nnumber of output code units produced\n-1 for error\n\n > **Note:** _out_ must be able to store 4 code units"]
#[doc = "Convert a UTF-32 codepoint into a UTF-8 sequence\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n*`in`(direction in) - Input codepoint\n\n # Returns\n\nnumber of output code units produced\n -1 for error\n\n > **Note:** _out_ must be able to store 4 code units"]
pubfnencode_utf8(out: *mutu8,in_: u32)-> isize;
}
extern"C"{
#[doc = "Convert a UTF-32 codepoint into a UTF-16 sequence\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n in Input codepoint\n\n # Returns\n\nnumber of output code units produced\n-1 for error\n\n > **Note:** _out_ must be able to store 2 code units"]
#[doc = "Convert a UTF-32 codepoint into a UTF-16 sequence\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n*`in`(direction in) - Input codepoint\n\n # Returns\n\nnumber of output code units produced\n -1 for error\n\n > **Note:** _out_ must be able to store 2 code units"]
pubfnencode_utf16(out: *mutu16,in_: u32)-> isize;
}
extern"C"{
#[doc = "Convert a UTF-8 sequence into a UTF-16 sequence\n\nFills the output buffer up to _len_ code units.\n Returns the number of code units that the input would produce;\nif it returns greater than _len,_ the output has been\ntruncated.\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n in Input sequence (null-terminated)\n len Output length\n\n# Returns\n\nnumber of output code units produced\n-1 for error\n\n > **Note:** _out_ is not null-terminated"]
#[doc = "Convert a UTF-8 sequence into a UTF-16 sequence\n\n Fills the output buffer up to _len_ code units.\n Returns the number of code units that the input would produce;\n if it returns greater than _len,_ the output has been\n truncated.\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n*`in`(direction in) - Input sequence (null-terminated)\n* `len` (direction in) - Output length\n\n # Returns\n\nnumber of output code units produced\n -1 for error\n\n > **Note:** _out_ is not null-terminated"]
#[doc = "Convert a UTF-8 sequence into a UTF-32 sequence\n\nFills the output buffer up to _len_ code units.\n Returns the number of code units that the input would produce;\nif it returns greater than _len,_ the output has been\ntruncated.\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n in Input sequence (null-terminated)\n len Output length\n\n# Returns\n\nnumber of output code units produced\n-1 for error\n\n > **Note:** _out_ is not null-terminated"]
#[doc = "Convert a UTF-8 sequence into a UTF-32 sequence\n\n Fills the output buffer up to _len_ code units.\n Returns the number of code units that the input would produce;\n if it returns greater than _len,_ the output has been\n truncated.\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n*`in`(direction in) - Input sequence (null-terminated)\n* `len` (direction in) - Output length\n\n # Returns\n\nnumber of output code units produced\n -1 for error\n\n > **Note:** _out_ is not null-terminated"]
#[doc = "Convert a UTF-16 sequence into a UTF-8 sequence\n\nFills the output buffer up to _len_ code units.\n Returns the number of code units that the input would produce;\nif it returns greater than _len,_ the output has been\ntruncated.\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n in Input sequence (null-terminated)\n len Output length\n\n# Returns\n\nnumber of output code units produced\n-1 for error\n\n > **Note:** _out_ is not null-terminated"]
#[doc = "Convert a UTF-16 sequence into a UTF-8 sequence\n\n Fills the output buffer up to _len_ code units.\n Returns the number of code units that the input would produce;\n if it returns greater than _len,_ the output has been\n truncated.\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n*`in`(direction in) - Input sequence (null-terminated)\n* `len` (direction in) - Output length\n\n # Returns\n\nnumber of output code units produced\n -1 for error\n\n > **Note:** _out_ is not null-terminated"]
#[doc = "Convert a UTF-16 sequence into a UTF-32 sequence\n\nFills the output buffer up to _len_ code units.\n Returns the number of code units that the input would produce;\nif it returns greater than _len,_ the output has been\ntruncated.\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n in Input sequence (null-terminated)\n len Output length\n\n# Returns\n\nnumber of output code units produced\n-1 for error\n\n > **Note:** _out_ is not null-terminated"]
#[doc = "Convert a UTF-16 sequence into a UTF-32 sequence\n\n Fills the output buffer up to _len_ code units.\n Returns the number of code units that the input would produce;\n if it returns greater than _len,_ the output has been\n truncated.\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n*`in`(direction in) - Input sequence (null-terminated)\n* `len` (direction in) - Output length\n\n # Returns\n\nnumber of output code units produced\n -1 for error\n\n > **Note:** _out_ is not null-terminated"]
#[doc = "Convert a UTF-32 sequence into a UTF-8 sequence\n\nFills the output buffer up to _len_ code units.\n Returns the number of code units that the input would produce;\nif it returns greater than _len,_ the output has been\ntruncated.\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n in Input sequence (null-terminated)\n len Output length\n\n# Returns\n\nnumber of output code units produced\n-1 for error\n\n > **Note:** _out_ is not null-terminated"]
#[doc = "Convert a UTF-32 sequence into a UTF-8 sequence\n\n Fills the output buffer up to _len_ code units.\n Returns the number of code units that the input would produce;\n if it returns greater than _len,_ the output has been\n truncated.\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n*`in`(direction in) - Input sequence (null-terminated)\n* `len` (direction in) - Output length\n\n # Returns\n\nnumber of output code units produced\n -1 for error\n\n > **Note:** _out_ is not null-terminated"]
#[doc = "Convert a UTF-32 sequence into a UTF-16 sequence\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n in Input sequence (null-terminated)\n len Output length\n\n # Returns\n\nnumber of output code units produced\n-1 for error\n\n > **Note:** _out_ is not null-terminated"]
#[doc = "Convert a UTF-32 sequence into a UTF-16 sequence\n\n # Arguments\n\n* `out` (direction out) - Output sequence\n*`in`(direction in) - Input sequence (null-terminated)\n* `len` (direction in) - Output length\n\n # Returns\n\nnumber of output code units produced\n -1 for error\n\n > **Note:** _out_ is not null-terminated"]
#[doc = "< Second to last outputted PCM16 sample."]
pubhistory1: s16,
}
#[doc = " Wave buffer struct."]
#[doc = "Wave buffer type."]
pubtypendspWaveBuf=tag_ndspWaveBuf;
#[doc = "< The wave buffer is not queued."]
pubconstNDSP_WBUF_FREE: _bindgen_ty_29=0;
@ -17142,7 +17142,7 @@ pub type ndspAuxCallback = ::core::option::Option<
@@ -17142,7 +17142,7 @@ pub type ndspAuxCallback = ::core::option::Option<
),
>;
extern"C"{
#[doc = "Initialization and basic operations\n# **\n* Sets up the DSP component.\n* # Arguments\n\n* `binary` - DSP binary to load.\n* * `size` - Size of the DSP binary.\n* * `progMask` - Program RAM block mask to load the binary to.\n* * `dataMask` - Data RAM block mask to load the binary to.\n*/"]
#[doc = "Initialization and basic operations\n# *\n* Sets up the DSP component.\n # Arguments\n\n* `binary` - DSP binary to load.\n * `size` - Size of the DSP binary.\n * `progMask` - Program RAM block mask to load the binary to.\n * `dataMask` - Data RAM block mask to load the binary to.\n/"]
#[doc = "Auxiliary output\n# **\n* Configures whether an auxiliary output is enabled.\n* # Arguments\n\n* `id` - ID of the auxiliary output.\n* * `enable` - Whether to enable the auxiliary output.\n*/"]
#[doc = "Auxiliary output\n# *\n* Configures whether an auxiliary output is enabled.\n # Arguments\n\n* `id` - ID of the auxiliary output.\n * `enable` - Whether to enable the auxiliary output.\n/"]
#[doc = "Configuration\n# **\n* Sets the format of a channel.\n* # Arguments\n\n* `id` - ID of the channel (0..23).\n* * `format` - Format to use.\n*/"]
#[doc = "Configuration\n# *\n* Sets the format of a channel.\n # Arguments\n\n* `id` - ID of the channel (0..23).\n * `format` - Format to use.\n/"]
#[doc = "Wave buffers\n# **\n* Clears the wave buffer queue of a channel and stops playback.\n* # Arguments\n\n* `id` - ID of the channel (0..23).\n*/"]
#[doc = "Wave buffers\n# *\n* Clears the wave buffer queue of a channel and stops playback.\n # Arguments\n\n* `id` - ID of the channel (0..23).\n/"]
#[doc = "IIR filters\n# **\n* Configures whether the IIR monopole filter of a channel is enabled.\n* # Arguments\n\n* `id` - ID of the channel (0..23).\n* * `enable` - Whether to enable the IIR monopole filter.\n*/"]
#[doc = "IIR filters\n# *\n* Configures whether the IIR monopole filter of a channel is enabled.\n # Arguments\n\n* `id` - ID of the channel (0..23).\n * `enable` - Whether to enable the IIR monopole filter.\n/"]