linuxのメモ

Linux kernelの実装を解説していきます (対象ver 4.5)

自己修正コード - alt_rlen()

概要

動的に挿入する命令に必要なアドレスのサイズを取得する

詳細

b_replacement()から挿入する命令の開始アドレスを指すラベル名を、e_replacement()から挿入する命令の終了アドレスを指すラベル名をそれぞれ取得し、終了アドレスから開始アドレスを減算することで命令に必要なアドレスのサイズを取得する

尚、ラベルの定義はALTINSTR_REPLACEMENT()によって生成されるため、取得したラベル名には"f"のsuffixを付加する