ncm: add ncmContentMetaDatabaseGetAttributes

This commit is contained in:
Michael Scire 2019-05-08 19:52:43 -07:00 committed by fincs
parent 39db25c81d
commit a1861509f5
2 changed files with 38 additions and 0 deletions

View File

@ -93,3 +93,4 @@ Result ncmContentMetaDatabaseListApplication(NcmContentMetaDatabase* db, u8 filt
Result ncmContentMetaDatabaseHas(NcmContentMetaDatabase* db, const NcmMetaRecord* record, bool* out);
Result ncmContentMetaDatabaseDisableForcibly(NcmContentMetaDatabase* db);
Result ncmContentMetaDatabaseCommit(NcmContentMetaDatabase* db);
Result ncmContentMetaDatabaseGetAttributes(NcmContentMetaDatabase* db, const NcmMetaRecord* record, u8* out);

View File

@ -986,3 +986,40 @@ Result ncmContentMetaDatabaseCommit(NcmContentMetaDatabase* db) {
return rc;
}
Result ncmContentMetaDatabaseGetAttributes(NcmContentMetaDatabase* db, const NcmMetaRecord* record, u8* out) {
IpcCommand c;
ipcInitialize(&c);
struct {
u64 magic;
u64 cmd_id;
NcmMetaRecord meta_record;
} *raw;
raw = ipcPrepareHeader(&c, sizeof(*raw));
raw->magic = SFCI_MAGIC;
raw->cmd_id = 18;
memcpy(&raw->meta_record, record, sizeof(NcmMetaRecord));
Result rc = serviceIpcDispatch(&db->s);
if (R_SUCCEEDED(rc)) {
IpcParsedCommand r;
ipcParse(&r);
struct {
u64 magic;
u64 result;
u8 out;
} *resp = r.Raw;
rc = resp->result;
if (R_SUCCEEDED(rc)) {
if (out) *out = resp->out;
}
}
return rc;
}