summaryrefslogtreecommitdiff
path: root/rnn
diff options
context:
space:
mode:
authorMarcin Ślusarz <marcin.slusarz@gmail.com>2014-09-09 23:54:36 +0200
committerMarcin Ślusarz <marcin.slusarz@gmail.com>2014-09-10 00:20:52 +0200
commit410816724aa26a66f16fb374ee194c7e28af9aab (patch)
treec75f806d6236a2fb46acf49c74d80f64c2ca4cf4 /rnn
parentac2f7462ad5dd462e9e849678a7977818a6b3d41 (diff)
demmt/nvrm: deal with paddings
- rename fields which are always 0 in my traces to _pad* - rename fields marked as paddings which are sometimes != 0 to unk* - print fields marked as paddings when they are != 0
Diffstat (limited to 'rnn')
-rw-r--r--rnn/demmt_nvrm.c56
-rw-r--r--rnn/nvrm_ioctl.h24
-rw-r--r--rnn/nvrm_mthd.h12
3 files changed, 61 insertions, 31 deletions
diff --git a/rnn/demmt_nvrm.c b/rnn/demmt_nvrm.c
index ac8b03a1..32d84c60 100644
--- a/rnn/demmt_nvrm.c
+++ b/rnn/demmt_nvrm.c
@@ -235,6 +235,8 @@ static const char *pfx = "";
#define print_i32(strct, field) do { mmt_log_cont("%s" #field ": %d", pfx, strct->field); pfx = sep; } while (0)
#define print_i32_align(strct, field, algn) do { mmt_log_cont("%s" #field ": %" #algn "d", pfx, strct->field); pfx = sep; } while (0)
+#define print_pad_u32(strct, field) do { if (strct->field) mmt_log_cont("%s%s" #field ": 0x%08x%s", pfx, colors->err, strct->field, colors->reset); pfx = sep; } while (0)
+
#define print_str(strct, field) do { mmt_log_cont("%s" #field ": \"%s\"", pfx, strct->field); pfx = sep; } while (0)
#define print_ptr(strct, field, args, argc) \
@@ -380,6 +382,7 @@ static void decode_nvrm_ioctl_create(struct nvrm_ioctl_create *s, struct mmt_mem
print_class(s, cls);
struct mmt_buf *data = print_ptr(s, ptr, args, argc);
print_status(s, status);
+ print_pad_u32(s, _pad);
print_ln();
if (data)
@@ -391,6 +394,7 @@ static void decode_nvrm_ioctl_call(struct nvrm_ioctl_call *s, struct mmt_memory_
print_cid(s, cid);
print_handle(s, handle, cid);
print_u32(s, mthd);
+ print_pad_u32(s, _pad);
print_ptr(s, ptr, args, argc);
print_u32(s, size);
print_status(s, status);
@@ -409,6 +413,7 @@ static void decode_nvrm_ioctl_unk4d(struct nvrm_ioctl_unk4d *s, struct mmt_memor
print_u64(s, unk30);
print_u64(s, unk38);
print_status(s, status);
+ print_pad_u32(s, _pad);
print_ln();
if (data)
@@ -428,10 +433,11 @@ static void decode_nvrm_ioctl_create_vspace(struct nvrm_ioctl_create_vspace *s)
print_handle(s, handle, cid);
print_class(s, cls);
print_u32(s, flags);
- print_u32(s, unk14);
+ print_pad_u32(s, _pad1);
print_u64(s, foffset);
print_u64(s, limit);
print_status(s, status);
+ print_pad_u32(s, _pad2);
print_ln();
}
@@ -441,11 +447,12 @@ static void decode_nvrm_ioctl_create_dma(struct nvrm_ioctl_create_dma *s)
print_handle(s, handle, cid);
print_class(s, cls);
print_u32(s, flags);
- print_u32(s, unk10);
+ print_pad_u32(s, _pad1);
print_handle(s, parent, cid);
print_u64(s, base);
print_u64(s, limit);
print_status(s, status);
+ print_pad_u32(s, _pad2);
print_ln();
}
@@ -454,10 +461,12 @@ static void decode_nvrm_ioctl_host_map(struct nvrm_ioctl_host_map *s)
print_cid(s, cid);
print_handle(s, subdev, cid);
print_handle(s, handle, cid);
+ print_pad_u32(s, _pad);
print_u64(s, base);
print_u64(s, limit);
print_u64(s, foffset);
print_status(s, status);
+ print_u32(s, unk);
print_ln();
}
@@ -479,9 +488,10 @@ static void decode_nvrm_ioctl_vspace_map(struct nvrm_ioctl_vspace_map *s)
print_u64(s, base);
print_u64(s, size);
print_u32(s, flags);
- print_u32(s, unk24);
+ print_pad_u32(s, _pad1);
print_u64(s, addr);
print_status(s, status);
+ print_pad_u32(s, _pad2);
print_ln();
}
@@ -490,8 +500,10 @@ static void decode_nvrm_ioctl_host_unmap(struct nvrm_ioctl_host_unmap *s)
print_cid(s, cid);
print_handle(s, subdev, cid);
print_handle(s, handle, cid);
+ print_pad_u32(s, _pad);
print_u64(s, foffset);
print_status(s, status);
+ print_pad_u32(s, _pad2);
print_ln();
}
@@ -536,6 +548,7 @@ static void decode_nvrm_ioctl_vspace_unmap(struct nvrm_ioctl_vspace_unmap *s)
print_u64(s, unk10);
print_u64(s, addr);
print_status(s, status);
+ print_pad_u32(s, _pad);
print_ln();
}
@@ -544,10 +557,11 @@ static void decode_nvrm_ioctl_unk5e(struct nvrm_ioctl_unk5e *s)
print_cid(s, cid);
print_handle(s, subdev, cid);
print_handle(s, handle, cid);
+ print_pad_u32(s, _pad1);
print_u64(s, foffset);
print_u64(s, ptr);
print_status(s, status);
- print_u32(s, unk24);
+ print_pad_u32(s, _pad2);
print_ln();
}
@@ -607,6 +621,7 @@ static void decode_nvrm_ioctl_query(struct nvrm_ioctl_query *s, struct mmt_memor
print_u32(s, size);
struct mmt_buf *data = print_ptr(s, ptr, args, argc);
print_status(s, status);
+ print_pad_u32(s, _pad);
print_ln();
if (data)
@@ -633,7 +648,7 @@ static void decode_nvrm_ioctl_unk38(struct nvrm_ioctl_unk38 *s, struct mmt_memor
print_u32(s, size);
struct mmt_buf *data = print_ptr(s, ptr, args, argc);
print_status(s, status);
- print_u32(s, unk1c);
+ print_pad_u32(s, _pad);
print_ln();
if (data)
@@ -654,7 +669,7 @@ static void decode_nvrm_ioctl_unk41(struct nvrm_ioctl_unk41 *s, struct mmt_memor
print_u32(s, unk28);
print_u32(s, unk2c);
print_status(s, status);
- print_u32(s, unk34);
+ print_pad_u32(s, _pad);
print_ln();
if (data1)
@@ -670,7 +685,7 @@ static void decode_nvrm_ioctl_unk48(struct nvrm_ioctl_unk48 *s)
print_cid(s, cid);
print_handle(s, handle, cid);
print_u32(s, unk08);
- print_u32(s, unk0c);
+ print_pad_u32(s, _pad);
print_ln();
}
@@ -904,7 +919,7 @@ static void decode_nvrm_mthd_device_get_classes(struct nvrm_mthd_device_get_clas
struct mmt_memory_dump *args, int argc)
{
print_u32(m, cnt);
- print_u32(m, unk04);
+ print_pad_u32(m, _pad);
struct mmt_buf *data = print_ptr(m, ptr, args, argc);
print_ln();
@@ -976,6 +991,7 @@ static void decode_nvrm_mthd_subdevice_fb_get_params(struct nvrm_mthd_subdevice_
struct mmt_memory_dump *args, int argc)
{
print_u32(m, cnt);
+ print_pad_u32(m, _pad);
struct mmt_buf *data = print_ptr(m, ptr, args, argc);
print_ln();
@@ -1006,15 +1022,26 @@ static void decode_nvrm_mthd_subdevice_get_bus_info(struct nvrm_mthd_subdevice_g
{
print_u32(m, unk00);
print_u32(m, unk04);
- print_u32(m, unk08);
+ print_pad_u32(m, _pad1);
print_i32_align(m, regs_size_mb, 4);
print_u64(m, regs_base);
- print_u32(m, unk18);
+ print_pad_u32(m, _pad2);
print_i32_align(m, fb_size_mb, 4);
print_u64(m, fb_base);
- print_u32(m, unk28);
+ print_pad_u32(m, _pad3);
print_i32_align(m, ramin_size_mb, 4);
print_u64(m, ramin_base);
+ print_u32(m, unk38);
+ print_u32(m, unk3c);
+ print_u64(m, unk40);
+ print_u64(m, unk48);
+ print_u64(m, unk50);
+ print_u64(m, unk58);
+ print_u64(m, unk60);
+ print_u64(m, unk68);
+ print_u64(m, unk70);
+ print_u64(m, unk78);
+ print_u64(m, unk80);
print_ln();
}
@@ -1022,6 +1049,7 @@ static void decode_nvrm_mthd_subdevice_get_fifo_engines(struct nvrm_mthd_subdevi
struct mmt_memory_dump *args, int argc)
{
print_u32(m, cnt);
+ print_pad_u32(m, _pad);
struct mmt_buf *data = print_ptr(m, ptr, args, argc);
print_ln();
@@ -1056,6 +1084,7 @@ static void decode_nvrm_mthd_subdevice_bus_get_params(struct nvrm_mthd_subdevice
struct mmt_memory_dump *args, int argc)
{
print_u32(m, cnt);
+ print_pad_u32(m, _pad);
struct mmt_buf *data = print_ptr(m, ptr, args, argc);
print_ln();
@@ -1067,7 +1096,7 @@ static void decode_nvrm_mthd_device_unk1102(struct nvrm_mthd_device_unk1102 *m,
struct mmt_memory_dump *args, int argc)
{
print_u32(m, cnt);
- print_u32(m, unk04);
+ print_pad_u32(m, _pad);
struct mmt_buf *data = print_ptr(m, ptr, args, argc);
print_ln();
@@ -1079,7 +1108,7 @@ static void decode_nvrm_mthd_subdevice_unk0101(struct nvrm_mthd_subdevice_unk010
struct mmt_memory_dump *args, int argc)
{
print_u32(m, cnt);
- print_u32(m, unk04);
+ print_pad_u32(m, _ptr);
struct mmt_buf *data = print_ptr(m, ptr, args, argc);
print_ln();
@@ -1097,6 +1126,7 @@ static void decode_nvrm_mthd_subdevice_unk1201(struct nvrm_mthd_subdevice_unk120
struct mmt_memory_dump *args, int argc)
{
print_u32(m, cnt);
+ print_pad_u32(m, _pad);
struct mmt_buf *data = print_ptr(m, ptr, args, argc);
print_ln();
diff --git a/rnn/nvrm_ioctl.h b/rnn/nvrm_ioctl.h
index f71123fe..4a1ce5b1 100644
--- a/rnn/nvrm_ioctl.h
+++ b/rnn/nvrm_ioctl.h
@@ -56,7 +56,7 @@ struct nvrm_ioctl_create_vspace {
uint32_t handle;
uint32_t cls;
uint32_t flags;
- uint32_t unk14; /* maybe pad */
+ uint32_t _pad1;
uint64_t foffset;
uint64_t limit;
uint32_t status;
@@ -152,7 +152,7 @@ struct nvrm_ioctl_unk38 {
uint32_t size;
uint64_t ptr;
uint32_t status;
- uint32_t unk1c;
+ uint32_t _pad;
};
#define NVRM_IOCTL_UNK38 _IOWR(NVRM_IOCTL_MAGIC, 0x38, struct nvrm_ioctl_unk38)
@@ -167,7 +167,7 @@ struct nvrm_ioctl_unk41 {
uint32_t unk28;
uint32_t unk2c;
uint32_t status;
- uint32_t unk34;
+ uint32_t _pad;
};
#define NVRM_IOCTL_UNK41 _IOWR(NVRM_IOCTL_MAGIC, 0x41, struct nvrm_ioctl_unk41)
@@ -175,7 +175,7 @@ struct nvrm_ioctl_unk48 {
uint32_t cid;
uint32_t handle;
uint32_t unk08;
- uint32_t unk0c;
+ uint32_t _pad;
};
#define NVRM_IOCTL_UNK48 _IOWR(NVRM_IOCTL_MAGIC, 0x48, struct nvrm_ioctl_unk48)
@@ -255,7 +255,7 @@ struct nvrm_ioctl_host_map {
uint64_t limit;
uint64_t foffset;
uint32_t status;
- uint32_t _pad2;
+ uint32_t unk;
};
#define NVRM_IOCTL_HOST_MAP _IOWR(NVRM_IOCTL_MAGIC, 0x4e, struct nvrm_ioctl_host_map)
@@ -272,7 +272,7 @@ struct nvrm_ioctl_host_unmap {
struct nvrm_ioctl_unk52 {
uint64_t ptr;
- uint32_t unk08;
+ uint32_t unk08;/*cnt?*/
uint32_t status;
};
#define NVRM_IOCTL_UNK52 _IOWR(NVRM_IOCTL_MAGIC, 0x52, struct nvrm_ioctl_unk52)
@@ -282,12 +282,12 @@ struct nvrm_ioctl_create_dma {
uint32_t handle;
uint32_t cls;
uint32_t flags;
- uint32_t unk10;
+ uint32_t _pad1;
uint32_t parent;
uint64_t base;
uint64_t limit;
uint32_t status;
- uint32_t _pad;
+ uint32_t _pad2;
};
#define NVRM_IOCTL_CREATE_DMA _IOWR(NVRM_IOCTL_MAGIC, 0x54, struct nvrm_ioctl_create_dma)
@@ -299,10 +299,10 @@ struct nvrm_ioctl_vspace_map {
uint64_t base;
uint64_t size;
uint32_t flags;
- uint32_t unk24;
+ uint32_t _pad1;
uint64_t addr;
uint32_t status;
- uint32_t _pad;
+ uint32_t _pad2;
};
#define NVRM_IOCTL_VSPACE_MAP _IOWR(NVRM_IOCTL_MAGIC, 0x57, struct nvrm_ioctl_vspace_map)
@@ -330,11 +330,11 @@ struct nvrm_ioctl_unk5e {
uint32_t cid;
uint32_t subdev;
uint32_t handle;
- uint32_t _pad;
+ uint32_t _pad1;
uint64_t foffset;
uint64_t ptr; /* to just-mmapped thing */
uint32_t status;
- uint32_t unk24;
+ uint32_t _pad2;
};
#define NVRM_IOCTL_UNK5E _IOWR(NVRM_IOCTL_MAGIC, 0x5e, struct nvrm_ioctl_unk5e)
diff --git a/rnn/nvrm_mthd.h b/rnn/nvrm_mthd.h
index 16fd0389..7b9ef61e 100644
--- a/rnn/nvrm_mthd.h
+++ b/rnn/nvrm_mthd.h
@@ -98,7 +98,7 @@ struct nvrm_mthd_context_unk021b {
struct nvrm_mthd_device_get_classes {
uint32_t cnt; /* out */
- uint32_t unk04;
+ uint32_t _pad;
uint64_t ptr;
};
#define NVRM_MTHD_DEVICE_GET_CLASSES 0x00800201
@@ -120,7 +120,7 @@ struct nvrm_mthd_device_get_persistence_mode {
struct nvrm_mthd_device_unk1102 {
uint32_t cnt;
- uint32_t unk04;
+ uint32_t _pad;
uint64_t ptr;
};
#define NVRM_MTHD_DEVICE_UNK1102 0x00801102
@@ -151,7 +151,7 @@ struct nvrm_mthd_device_unk170d {
struct nvrm_mthd_subdevice_unk0101 {
uint32_t cnt;
- uint32_t unk04;
+ uint32_t _ptr;
uint64_t ptr;
};
#define NVRM_MTHD_SUBDEVICE_UNK0101 0x20800101
@@ -342,13 +342,13 @@ struct nvrm_mthd_subdevice_bus_get_params {
struct nvrm_mthd_subdevice_get_bus_info {
uint32_t unk00;
uint32_t unk04;
- uint32_t unk08;
+ uint32_t _pad1;
uint32_t regs_size_mb;
uint64_t regs_base;
- uint32_t unk18;
+ uint32_t _pad2;
uint32_t fb_size_mb;
uint64_t fb_base;
- uint32_t unk28;
+ uint32_t _pad3;
uint32_t ramin_size_mb;
uint64_t ramin_base;
uint32_t unk38;