atomic_t

読み:アトミック・アンダースコア・ティー
外語:atomic_t 英語
品詞:名詞

Linuxカーネルで提供されているアトミック変数の変数型。

目次

linux/linux/types.hにおいて定義されている。

typedef struct {
    int counter;
} atomic_t;

64ビット環境ではatomic64_tも定義されるが、CPUごとに定義が異なる。変数型もlongだったり、long longだったり、u64だったりする。

使用方法

atomic_t型はint型変数一つを含むstructのtypedefとして定義される。

従って、使用する際はatomic_tを通常の変数型のように使用し、アトミック変数を宣言して用いることになる。

atomic_t var;

アトミック変数は宣言しただけでは初期化されないため、初期化する必要がある。

宣言時に初期化するには、ATOMIC_INITマクロを用いる。ATOMIC_INITマクロは、arch/arm/include/asm/atomic.h で定義されている。

#define ATOMIC_INIT(i)  { (i) }

従って、次のようにして宣言すれば、宣言時点で初期化される。

atomic_t var = ATOMIC_INIT(0);

または、atomic_set関数を用いて初期化することもできる。

関数とマクロ

例えば、Android(ARM)用の実装では、次のような関数やマクロがある。

関数

関数はすべてstaticのinline関数である。

  • atomic_add
  • atomic_add_return
  • atomic_sub
  • atomic_sub_return
  • atomic_cmpxchg
  • atomic_clear_mask
  • __atomic_add_unless

マクロ

  • atomic_read
  • atomic_set
  • atomic_xchg
  • atomic_inc
  • atomic_dec
  • atomic_inc_and_test
  • atomic_dec_and_test
  • atomic_inc_return
  • atomic_dec_return
  • atomic_sub_and_test
  • atomic_add_negative
  • smp_mb__before_atomic_dec
  • smp_mb__after_atomic_dec
  • smp_mb__before_atomic_inc
  • smp_mb__after_atomic_inc
用語の所属
Linuxカーネル
_t
関連する用語
アトミック変数

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club