DATA型のbufのメモリを確保し,初期化し,ごにゃごにゃし,解放するという流れを作りたいのですが…
なんかかたまってしまう…(@_@)
#define MAXNUM 10
typedef struct
{
int now_pid;
u64 now_pmc0;
u64 now_tsc;
} DATA;
static DATA *buf;
…
buf = (DATA *)vmalloc(sizeof(DATA) * MAXNUM);
memset(buf, 0, sizeof(DATA) * MAXNUM);
…
vfree(buf);
きっと何かこのへんがおかしいんだろう….
WHERE?!?!
早く抜け出したい(>_<;)
1/7***
ちなみに
memset(buf, 0, sizeof(DATA) * MAXNUM);
の直前に
printk("buf add is 0x%08x\n",(ulong)buf);
をいれると動くっていう…(@_@)
1/8***
vmalloc ではなく kmalloc を用いれば printk を挟まなくてもうまく動きました..
vmalloc 領域の変なとこをさわっていたのかな?原因不明です..
が,とりあえず vmalloc 使うのはこわいんでやめておきます.
0 件のコメント:
コメントを投稿