2016-04-22から1日間の記事一覧
概要 フラグをRB_PAGE_NORMALに入れ替える 詳細 この関数では以下の引数を受け取る 比較対象のバッファへのポインタ : head 比較元のバッファへのポインタ : prev 変更前のフラグを示す : old_flag 受け取った引数にRB_PAGE_NORMALを加えてrb_head_page_set(…
概要 フラグをRB_PAGE_UPDATEに入れ替える 詳細 この関数では以下の引数を受け取る 比較対象のバッファへのポインタ : head 比較元のバッファへのポインタ : prev 変更前のフラグを示す : old_flag 受け取った引数にRB_PAGE_UPDATEを加えてrb_head_page_set(…
概要 フラグをRB_PAGE_HEADに入れ替える 詳細 この関数では以下の引数を受け取る 比較対象のバッファへのポインタ : head 比較元のバッファへのポインタ : prev 変更前のフラグを示す : old_flag 受け取った引数にRB_PAGE_HEADを加えてrb_head_page_set()を…
概要 バッファのフラグを入れ替える 詳細 この関数では以下の引数を受け取る struct buffer_page型のポインタ : head headの前のバッファを指すポインタ : prev 現在のフラグを示す : old_flag 新しいフラグを示す : new_flag cmpxchg()でheadのlistメンバと…
概要 local_t型の値に任意の値を減算する 詳細 _ASM_SUBで引数として受け取ったlocal_t型の値と任意の値を減算するアセンブラ命令を実行する
概要 CPUのアーキテクチャに応じた減算命令を生成する 詳細 __ASM_SIZE()にsubを渡して実行し、CPUのアーキテクチャに応じたインクリメント命令を生成する
概要 バッファがHead Pageか確認する 詳細 この関数では以下の引数を取得する struct buffer_page構造体のポインタ : page struct list_head構造体のポインタ : list listのnextメンバの値をRB_FLAG_MASKを反転した値でマスクした値とpageのlistメンバの値が…
概要 バッファがReader Pageか確認する 詳細 この関数ではstruct buffer_page構造体のポインタであるpageを引数として取得する pageのlistメンバからstruct list_head構造体のprevメンバのポインタを取得し、取得したポインタのnextメンバのアドレスとrb_lis…
概要 バッファを次のバッファに入れ替える 詳細 この関数ではバッファの保持されているページを示すstruct buffer_page構造体のポインタへのポインタであるbpageを受け取る bpage内のstruct list_head構造体の要素であるlistメンバから次のリストへのポイン…
概要 struct list_head構造体のアドレスを適切なアドレスに変換する 詳細 struct list_head構造体のポインタを引数として受け取り、受け取ったアドレスからRB_FLAG_MASKのbitを落として、正しいポインタを取得する これはポインタは下位4バイト境界でアライ…
概要 アドレスから、そのアドレスが示す値が含まれる型の開始アドレスを取得する 詳細 container_of()のwrapperマクロ
概要 アドレスから、そのアドレスが示す値が含まれる型の開始アドレスを取得する 詳細 このマクロでは以下の引数を受け取る 対象の構造体へのポインタ : ptr 対象の構造体を含む構造体の型を示す : type 対象の構造体を含む構造体のうち、対象の構造体のメン…