__atomic_fetch_or返回值
时间: 2024-07-04 18:01:04 浏览: 149
`std::atomic_fetch_or`是C++11中引入的一种原子操作,用于更新一个原子类型(如`std::atomic_flag`或`std::atomic<int>`)的值。它的操作是将当前原子值与提供的“or”操作数进行按位或(`|`)运算,然后返回原值(即操作前的值)。如果操作成功完成,`std::atomic_fetch_or`不会阻塞线程。
返回值:
`std::atomic_fetch_or`的返回值是更新后的原子值。如果操作成功(没有发生竞争条件导致的cas(Compare and Swap)失败),返回的就是新的按位或后的值;如果操作失败(cas失败),则返回的是操作之前的原始值。这样设计使得调用者可以判断操作是否成功,或者是否需要重试。
相关问题
高通的sn65dsi84内核驱动定义的这个static const struct drm_bridge_funcs sn65dsi83_funcs = { .attach = sn65dsi83_attach, .atomic_pre_enable = sn65dsi83_atomic_pre_enable, .atomic_enable = sn65dsi83_atomic_enable, .atomic_disable = sn65dsi83_atomic_disable, .atomic_post_disable = sn65dsi83_atomic_post_disable, .mode_valid = sn65dsi83_mode_valid, .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, .atomic_reset = drm_atomic_helper_bridge_reset, .atomic_get_input_bus_fmts = sn65dsi83_atomic_get_input_bus_fmts,执行顺序是什么
这段代码是定义了一个名为sn65dsi83_funcs的静态常量结构体,其中包含了一些函数指针,这些函数指针指向了具体的函数实现。这些函数指针按照定义顺序依次对应以下函数:attach、atomic_pre_enable、atomic_enable、atomic_disable、atomic_post_disable、mode_valid、atomic_duplicate_state、atomic_destroy_state、atomic_reset以及atomic_get_input_bus_fmts。在实际使用中,这些函数可能会被驱动程序中的其他函数调用,以完成具体的功能。
sn65dsi83的内核驱动static const struct drm_bridge_funcs sn65dsi83_funcs = { .attach = sn65dsi83_attach, .atomic_pre_enable = sn65dsi83_atomic_pre_enable, .atomic_enable = sn65dsi83_atomic_enable, .atomic_disable = sn65dsi83_atomic_disable, .atomic_post_disable = sn65dsi83_atomic_post_disable, .mode_valid = sn65dsi83_mode_valid, .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, .atomic_reset = drm_atomic_helper_bridge_reset, .atomic_get_input_bus_fmts = sn65dsi83_atomic_get_input_bus_fmts, };这段的几个函数执行顺序是什么
这段代码定义了一个名为sn65dsi83_funcs的结构体,其中包含了多个函数指针,这些函数指针被用于驱动sn65dsi83的内核模块。这些函数的执行顺序如下:
1. sn65dsi83_attach函数用于连接sn65dsi83设备,当设备被连接时,该函数被调用。
2. sn65dsi83_mode_valid函数用于验证模式是否有效,当模式被设置时,该函数被调用。
3. sn65dsi83_atomic_pre_enable函数用于在原子模式下启用sn65dsi83设备之前执行的任何操作。
4. sn65dsi83_atomic_enable函数用于在原子模式下启用sn65dsi83设备。
5. sn65dsi83_atomic_disable函数用于在原子模式下禁用sn65dsi83设备。
6. sn65dsi83_atomic_post_disable函数用于在原子模式下禁用sn65dsi83设备之后执行的任何操作。
7. drm_atomic_helper_bridge_duplicate_state函数用于在原子模式下复制sn65dsi83的状态。
8. drm_atomic_helper_bridge_destroy_state函数用于在原子模式下销毁sn65dsi83的状态。
9. drm_atomic_helper_bridge_reset函数用于在原子模式下重置sn65dsi83的状态。
10. sn65dsi83_atomic_get_input_bus_fmts函数用于获取输入总线格式。