現在、Linuxカーネルモジュールを使用しており、配列に格納されている64ビット値にアクセスする必要がありますが、最初にvoidポインターからキャストする必要があります。
voidポインターを返すカーネル関数phys_to_virt
を使用していますが、このvoidポインターを実際に使用して、それが指す配列内の要素にアクセスする方法が完全にはわかりません。
現在、私はこれを行っています:
void *ptr;
uint64_t test;
ptr = phys_to_virt(physAddr);
test = *(uint64_t*)ptr;
printk("Test: %llx\n", test);
テストから得た値は、配列内で期待したものではないため、何か間違ったことをしていると確信しています。配列の最初の3つの要素にアクセスする必要があるため、voidポインターをuint64_t []にキャストする必要がありますが、その方法がよくわかりません。
アドバイスをいただければ幸いです。
ありがとう