struct trapframe {
u_int32_t tf_vaddr; /* coprocessor 0 vaddr register */
u_int32_t tf_status; /* coprocessor 0 status register */
u_int32_t tf_cause; /* coprocessor 0 cause register */
u_int32_t tf_lo;
.....
u_int32_t tf_hi;
u_int32_t tf_ra; /* Saved register 31 */
u_int32_t tf_at; /* Saved register 1 (AT) */
u_int32_t tf_v0; /* Saved register 2 (v0) */
u_int32_t tf_v1; /* etc. */
u_int32_t tf_epc; /* coprocessor 0 epc register */
};
void foo(void *tf, unsigned long as) {
struct trapframe *buf_tf = (struct trapframe *)tf;
... }
関数 foo では、スペースを手動で割り当てませんでしたが、一時トラップフレーム構造体ポインター buf_tf を、渡されたトラップフレーム構造体引数で直接初期化しました。buf_tf を手動で解放する必要がありますか?