linuxのメモ

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

ローカルオブジェクト - local_add_return()

概要

local_t型の値に任意の値を加算し、結果を取得する

詳細

_ASM_XADDで引数として受け取ったlocal_t型の値と任意の値を交換して加算するアセンブラ命令を実行する

任意の値は関数内のローカル変数に保持し、引数として受け取った任意の値は交換加算命令によりloccal_t型の変数の値を保持する

従って、保持したローカル変数と交換された値を加算した値を返すことで実行結果の値を返す