nbcon_state
static_assert(sizeof(struct nbcon_state) <= sizeof(int));
atomic_t __private nbcon_state;
static inline void nbcon_state_set(struct console *con, struct nbcon_state *new)
atomic_set(&ACCESS_PRIVATE(con, nbcon_state), new->atom);
static inline void nbcon_state_read(struct console *con, struct nbcon_state *state)
state->atom = atomic_read(&ACCESS_PRIVATE(con, nbcon_state));
static inline bool nbcon_state_try_cmpxchg(struct console *con, struct nbcon_state *cur,
struct nbcon_state *new)
return atomic_try_cmpxchg(&ACCESS_PRIVATE(con, nbcon_state), &cur->atom, new->atom);
struct nbcon_state state = { };
struct nbcon_state state = { };
struct nbcon_state *cur, bool is_reacquire)
struct nbcon_state new;
static bool nbcon_waiter_matches(struct nbcon_state *cur, int expected_prio)
struct nbcon_state *cur)
struct nbcon_state new;
struct nbcon_state *cur)
struct nbcon_state new;
struct nbcon_state *cur)
struct nbcon_state new;
struct nbcon_state cur;
static bool nbcon_owner_matches(struct nbcon_state *cur, int expected_cpu,
struct nbcon_state cur;
struct nbcon_state new;
static bool nbcon_context_can_proceed(struct nbcon_context *ctxt, struct nbcon_state *cur)
struct nbcon_state cur;
struct nbcon_state cur;
struct nbcon_state new;
struct nbcon_state cur;
struct nbcon_state cur;