[CPU/Kernel] Cleanup and rework of how kernel exports are declared.

This commit is contained in:
gibbed
2018-11-20 11:01:25 -06:00
parent 613be1425e
commit 394105d359
31 changed files with 399 additions and 502 deletions

View File

@@ -66,18 +66,16 @@ dword_result_t XMACreateContext(lpdword_t context_out_ptr) {
}
return X_STATUS_SUCCESS;
}
DECLARE_XBOXKRNL_EXPORT(XMACreateContext, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMACreateContext, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMAReleaseContext(lpvoid_t context_ptr) {
auto xma_decoder = kernel_state()->emulator()->audio_system()->xma_decoder();
xma_decoder->ReleaseContext(context_ptr);
return 0;
}
DECLARE_XBOXKRNL_EXPORT(XMAReleaseContext, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMAReleaseContext, kAudio, kImplemented,
kHighFrequency);
void StoreXmaContextIndexedRegister(KernelState* kernel_state,
uint32_t base_reg, uint32_t context_ptr) {
@@ -147,9 +145,8 @@ dword_result_t XMAInitializeContext(lpvoid_t context_ptr,
return 0;
}
DECLARE_XBOXKRNL_EXPORT(XMAInitializeContext, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMAInitializeContext, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMASetLoopData(lpvoid_t context_ptr,
pointer_t<XMA_CONTEXT_DATA> loop_data) {
@@ -165,17 +162,14 @@ dword_result_t XMASetLoopData(lpvoid_t context_ptr,
return 0;
}
DECLARE_XBOXKRNL_EXPORT(XMASetLoopData, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMASetLoopData, kAudio, kImplemented, kHighFrequency);
dword_result_t XMAGetInputBufferReadOffset(lpvoid_t context_ptr) {
XMA_CONTEXT_DATA context(context_ptr);
return context.input_buffer_read_offset;
}
DECLARE_XBOXKRNL_EXPORT(XMAGetInputBufferReadOffset,
ExportTag::kImplemented | ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMAGetInputBufferReadOffset, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMASetInputBufferReadOffset(lpvoid_t context_ptr,
dword_t value) {
@@ -185,9 +179,8 @@ dword_result_t XMASetInputBufferReadOffset(lpvoid_t context_ptr,
return 0;
}
DECLARE_XBOXKRNL_EXPORT(XMASetInputBufferReadOffset,
ExportTag::kImplemented | ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMASetInputBufferReadOffset, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMASetInputBuffer0(lpvoid_t context_ptr, lpvoid_t buffer,
dword_t packet_count) {
@@ -200,17 +193,15 @@ dword_result_t XMASetInputBuffer0(lpvoid_t context_ptr, lpvoid_t buffer,
return 0;
}
DECLARE_XBOXKRNL_EXPORT(XMASetInputBuffer0, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMASetInputBuffer0, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMAIsInputBuffer0Valid(lpvoid_t context_ptr) {
XMA_CONTEXT_DATA context(context_ptr);
return context.input_buffer_0_valid;
}
DECLARE_XBOXKRNL_EXPORT(XMAIsInputBuffer0Valid, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMAIsInputBuffer0Valid, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMASetInputBuffer0Valid(lpvoid_t context_ptr) {
XMA_CONTEXT_DATA context(context_ptr);
@@ -219,9 +210,8 @@ dword_result_t XMASetInputBuffer0Valid(lpvoid_t context_ptr) {
return 0;
}
DECLARE_XBOXKRNL_EXPORT(XMASetInputBuffer0Valid, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMASetInputBuffer0Valid, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMASetInputBuffer1(lpvoid_t context_ptr, lpvoid_t buffer,
dword_t packet_count) {
@@ -234,17 +224,15 @@ dword_result_t XMASetInputBuffer1(lpvoid_t context_ptr, lpvoid_t buffer,
return 0;
}
DECLARE_XBOXKRNL_EXPORT(XMASetInputBuffer1, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMASetInputBuffer1, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMAIsInputBuffer1Valid(lpvoid_t context_ptr) {
XMA_CONTEXT_DATA context(context_ptr);
return context.input_buffer_1_valid;
}
DECLARE_XBOXKRNL_EXPORT(XMAIsInputBuffer1Valid, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMAIsInputBuffer1Valid, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMASetInputBuffer1Valid(lpvoid_t context_ptr) {
XMA_CONTEXT_DATA context(context_ptr);
@@ -253,17 +241,15 @@ dword_result_t XMASetInputBuffer1Valid(lpvoid_t context_ptr) {
return 0;
}
DECLARE_XBOXKRNL_EXPORT(XMASetInputBuffer1Valid, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMASetInputBuffer1Valid, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMAIsOutputBufferValid(lpvoid_t context_ptr) {
XMA_CONTEXT_DATA context(context_ptr);
return context.output_buffer_valid;
}
DECLARE_XBOXKRNL_EXPORT(XMAIsOutputBufferValid, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMAIsOutputBufferValid, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMASetOutputBufferValid(lpvoid_t context_ptr) {
XMA_CONTEXT_DATA context(context_ptr);
@@ -272,17 +258,15 @@ dword_result_t XMASetOutputBufferValid(lpvoid_t context_ptr) {
return 0;
}
DECLARE_XBOXKRNL_EXPORT(XMASetOutputBufferValid, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMASetOutputBufferValid, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMAGetOutputBufferReadOffset(lpvoid_t context_ptr) {
XMA_CONTEXT_DATA context(context_ptr);
return context.output_buffer_read_offset;
}
DECLARE_XBOXKRNL_EXPORT(XMAGetOutputBufferReadOffset,
ExportTag::kImplemented | ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMAGetOutputBufferReadOffset, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMASetOutputBufferReadOffset(lpvoid_t context_ptr,
dword_t value) {
@@ -292,32 +276,28 @@ dword_result_t XMASetOutputBufferReadOffset(lpvoid_t context_ptr,
return 0;
}
DECLARE_XBOXKRNL_EXPORT(XMASetOutputBufferReadOffset,
ExportTag::kImplemented | ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMASetOutputBufferReadOffset, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMAGetOutputBufferWriteOffset(lpvoid_t context_ptr) {
XMA_CONTEXT_DATA context(context_ptr);
return context.output_buffer_write_offset;
}
DECLARE_XBOXKRNL_EXPORT(XMAGetOutputBufferWriteOffset,
ExportTag::kImplemented | ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMAGetOutputBufferWriteOffset, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMAGetPacketMetadata(lpvoid_t context_ptr) {
XMA_CONTEXT_DATA context(context_ptr);
return context.packet_metadata;
}
DECLARE_XBOXKRNL_EXPORT(XMAGetPacketMetadata,
ExportTag::kImplemented | ExportTag::kAudio);
DECLARE_XBOXKRNL_EXPORT1(XMAGetPacketMetadata, kAudio, kImplemented);
dword_result_t XMAEnableContext(lpvoid_t context_ptr) {
StoreXmaContextIndexedRegister(kernel_state(), 0x1940, context_ptr);
return 0;
}
DECLARE_XBOXKRNL_EXPORT(XMAEnableContext, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMAEnableContext, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMADisableContext(lpvoid_t context_ptr, dword_t wait) {
X_HRESULT result = X_E_SUCCESS;
@@ -331,9 +311,8 @@ dword_result_t XMADisableContext(lpvoid_t context_ptr, dword_t wait) {
}
return result;
}
DECLARE_XBOXKRNL_EXPORT(XMADisableContext, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMADisableContext, kAudio, kImplemented,
kHighFrequency);
dword_result_t XMABlockWhileInUse(lpvoid_t context_ptr) {
do {
@@ -345,9 +324,8 @@ dword_result_t XMABlockWhileInUse(lpvoid_t context_ptr) {
} while (true);
return 0;
}
DECLARE_XBOXKRNL_EXPORT(XMABlockWhileInUse, ExportTag::kImplemented |
ExportTag::kAudio |
ExportTag::kHighFrequency);
DECLARE_XBOXKRNL_EXPORT2(XMABlockWhileInUse, kAudio, kImplemented,
kHighFrequency);
void RegisterAudioXmaExports(xe::cpu::ExportResolver* export_resolver,
KernelState* kernel_state) {}