Lines Matching refs:listener
102 * sclp_sd_listener_add() - Add listener for Store Data responses
103 * @listener: Listener to add
105 static void sclp_sd_listener_add(struct sclp_sd_listener *listener)
108 list_add_tail(&listener->list, &sclp_sd_queue);
113 * sclp_sd_listener_remove() - Remove listener for Store Data responses
114 * @listener: Listener to remove
116 static void sclp_sd_listener_remove(struct sclp_sd_listener *listener)
119 list_del(&listener->list);
124 * sclp_sd_listener_init() - Initialize a Store Data response listener
125 * @listener: Response listener to initialize
128 * Initialize a listener for asynchronous Store Data responses. This listener
132 static void sclp_sd_listener_init(struct sclp_sd_listener *listener, u32 id)
134 memset(listener, 0, sizeof(*listener));
135 listener->id = id;
136 init_completion(&listener->completion);
148 struct sclp_sd_listener *listener;
153 list_for_each_entry(listener, &sclp_sd_queue, list) {
154 if (listener->id != evbuf->id)
157 listener->evbuf = *evbuf;
158 complete(&listener->completion);
193 struct sclp_sd_listener listener;
197 sclp_sd_listener_init(&listener, __pa(sccb));
198 sclp_sd_listener_add(&listener);
208 evbuf->id = listener.id;
216 pr_debug("request (eq=%d, di=%d, id=0x%08x)\n", eq, di, listener.id);
233 rc = wait_for_completion_interruptible(&listener.completion);
236 evbuf = &listener.evbuf;
266 sclp_sd_listener_remove(&listener);