Files
Project_CTR/cia_read.c
2014-04-21 18:44:00 +08:00

61 lines
1.2 KiB
C

#include "lib.h"
#include "cia.h"
u64 GetCiaCertOffset(cia_hdr *hdr)
{
u64 hdrSize = u8_to_u32(hdr->hdrSize,LE);
return align(hdrSize,CIA_ALIGN_SIZE);
}
u64 GetCiaCertSize(cia_hdr *hdr)
{
return u8_to_u32(hdr->certChainSize,LE);
}
u64 GetTikOffset(cia_hdr *hdr)
{
u64 certOffset = GetCiaCertOffset(hdr);
u64 certSize = GetCiaCertSize(hdr);
return align(certOffset + certSize,CIA_ALIGN_SIZE);
}
u64 GetTikSize(cia_hdr *hdr)
{
return u8_to_u32(hdr->tikSize,LE);
}
u64 GetTmdOffset(cia_hdr *hdr)
{
u64 tikOffset = GetTikOffset(hdr);
u64 tikSize = GetTikSize(hdr);
return align(tikOffset + tikSize,CIA_ALIGN_SIZE);
}
u64 GetTmdSize(cia_hdr *hdr)
{
return u8_to_u32(hdr->tmdSize,LE);
}
u64 GetContentOffset(cia_hdr *hdr)
{
u64 tmdOffset = GetTmdOffset(hdr);
u64 tmdSize = GetTmdSize(hdr);
return align(tmdOffset + tmdSize,CIA_ALIGN_SIZE);
}
u64 GetContentSize(cia_hdr *hdr)
{
return u8_to_u64(hdr->contentSize,LE);
}
u64 GetMetaOffset(cia_hdr *hdr)
{
u64 contentOffset = GetContentOffset(hdr);
u64 contentSize = GetContentSize(hdr);
return align(contentOffset + contentSize,CIA_ALIGN_SIZE);
}
u64 GetMetaSize(cia_hdr *hdr)
{
return u8_to_u32(hdr->metaSize,LE);
}