mirror of
https://github.com/switchbrew/switch-tools.git
synced 2025-06-21 13:32:39 +02:00
JSON->NPDM: Write IRQs in the correct order
This commit is contained in:
parent
34a304999c
commit
23b1993b42
@ -370,17 +370,18 @@ int ParseKipConfiguration(const char *json, KipHeader *kip_hdr) {
|
||||
goto PARSE_CAPS_END;
|
||||
}
|
||||
const cJSON *irq = NULL;
|
||||
int desc_idx = 0;
|
||||
cJSON_ArrayForEach(irq, value) {
|
||||
desc <<= 10;
|
||||
if (cJSON_IsNull(irq)) {
|
||||
desc |= 0x3FF;
|
||||
desc |= 0x3FF << desc_idx;
|
||||
} else if (cJSON_IsNumber(irq)) {
|
||||
desc |= ((u16)(irq->valueint)) & 0x3FF;
|
||||
desc |= (((u16)(irq->valueint)) & 0x3FF) << desc_idx;
|
||||
} else {
|
||||
fprintf(stderr, "Failed to parse IRQ value.\n");
|
||||
status = 0;
|
||||
goto PARSE_CAPS_END;
|
||||
}
|
||||
desc_idx += 10;
|
||||
}
|
||||
kip_hdr->Capabilities[cur_cap++] = (u32)((desc << 12) | (0x07FF));
|
||||
} else if (!strcmp(type_str, "application_type")) {
|
||||
|
@ -518,17 +518,18 @@ int CreateNpdm(const char *json, void **dst, u32 *dst_size) {
|
||||
goto NPDM_BUILD_END;
|
||||
}
|
||||
const cJSON *irq = NULL;
|
||||
int desc_idx = 0;
|
||||
cJSON_ArrayForEach(irq, value) {
|
||||
desc <<= 10;
|
||||
if (cJSON_IsNull(irq)) {
|
||||
desc |= 0x3FF;
|
||||
desc |= 0x3FF << desc_idx;
|
||||
} else if (cJSON_IsNumber(irq)) {
|
||||
desc |= ((u16)(irq->valueint)) & 0x3FF;
|
||||
desc |= (((u16)(irq->valueint)) & 0x3FF) << desc_idx;
|
||||
} else {
|
||||
fprintf(stderr, "Failed to parse IRQ value.\n");
|
||||
status = 0;
|
||||
goto NPDM_BUILD_END;
|
||||
}
|
||||
desc_idx += 10;
|
||||
}
|
||||
caps[cur_cap++] = (u32)((desc << 12) | (0x07FF));
|
||||
} else if (!strcmp(type_str, "application_type")) {
|
||||
|
Loading…
Reference in New Issue
Block a user