• Home
  • Raw
  • Download

Lines Matching refs:client

59 struct snd_seq_client_port *snd_seq_port_use_ptr(struct snd_seq_client *client,  in snd_seq_port_use_ptr()  argument
64 if (client == NULL) in snd_seq_port_use_ptr()
66 read_lock(&client->ports_lock); in snd_seq_port_use_ptr()
67 list_for_each_entry(port, &client->ports_list_head, list) { in snd_seq_port_use_ptr()
72 read_unlock(&client->ports_lock); in snd_seq_port_use_ptr()
76 read_unlock(&client->ports_lock); in snd_seq_port_use_ptr()
82 struct snd_seq_client_port *snd_seq_port_query_nearest(struct snd_seq_client *client, in snd_seq_port_query_nearest() argument
90 read_lock(&client->ports_lock); in snd_seq_port_query_nearest()
91 list_for_each_entry(port, &client->ports_list_head, list) { in snd_seq_port_query_nearest()
107 read_unlock(&client->ports_lock); in snd_seq_port_query_nearest()
128 struct snd_seq_client_port *snd_seq_create_port(struct snd_seq_client *client, in snd_seq_create_port() argument
136 if (snd_BUG_ON(!client)) in snd_seq_create_port()
139 if (client->num_ports >= SNDRV_SEQ_MAX_PORTS - 1) { in snd_seq_create_port()
140 snd_printk(KERN_WARNING "too many ports for client %d\n", client->number); in snd_seq_create_port()
151 new_port->addr.client = client->number; in snd_seq_create_port()
161 mutex_lock(&client->ports_mutex); in snd_seq_create_port()
162 write_lock_irqsave(&client->ports_lock, flags); in snd_seq_create_port()
163 list_for_each_entry(p, &client->ports_list_head, list) { in snd_seq_create_port()
171 client->num_ports++; in snd_seq_create_port()
174 write_unlock_irqrestore(&client->ports_lock, flags); in snd_seq_create_port()
175 mutex_unlock(&client->ports_mutex); in snd_seq_create_port()
185 static int subscribe_port(struct snd_seq_client *client,
189 static int unsubscribe_port(struct snd_seq_client *client,
199 *cp = snd_seq_client_use_ptr(addr->client); in get_client_port()
215 static void clear_subscriber_list(struct snd_seq_client *client, in clear_subscriber_list() argument
235 unsubscribe_port(client, port, grp, &subs->info, 0); in clear_subscriber_list()
262 static int port_delete(struct snd_seq_client *client, in port_delete() argument
270 clear_subscriber_list(client, port, &port->c_src, SRC_LIST); in port_delete()
271 clear_subscriber_list(client, port, &port->c_dest, DEST_LIST); in port_delete()
285 int snd_seq_delete_port(struct snd_seq_client *client, int port) in snd_seq_delete_port() argument
290 mutex_lock(&client->ports_mutex); in snd_seq_delete_port()
291 write_lock_irqsave(&client->ports_lock, flags); in snd_seq_delete_port()
292 list_for_each_entry(p, &client->ports_list_head, list) { in snd_seq_delete_port()
296 client->num_ports--; in snd_seq_delete_port()
301 write_unlock_irqrestore(&client->ports_lock, flags); in snd_seq_delete_port()
302 mutex_unlock(&client->ports_mutex); in snd_seq_delete_port()
304 return port_delete(client, found); in snd_seq_delete_port()
310 int snd_seq_delete_all_ports(struct snd_seq_client *client) in snd_seq_delete_all_ports() argument
319 mutex_lock(&client->ports_mutex); in snd_seq_delete_all_ports()
320 write_lock_irqsave(&client->ports_lock, flags); in snd_seq_delete_all_ports()
321 if (! list_empty(&client->ports_list_head)) { in snd_seq_delete_all_ports()
322 list_add(&deleted_list, &client->ports_list_head); in snd_seq_delete_all_ports()
323 list_del_init(&client->ports_list_head); in snd_seq_delete_all_ports()
327 client->num_ports = 0; in snd_seq_delete_all_ports()
328 write_unlock_irqrestore(&client->ports_lock, flags); in snd_seq_delete_all_ports()
333 snd_seq_system_client_ev_port_exit(port->addr.client, port->addr.port); in snd_seq_delete_all_ports()
334 port_delete(client, port); in snd_seq_delete_all_ports()
336 mutex_unlock(&client->ports_mutex); in snd_seq_delete_all_ports()
422 static int subscribe_port(struct snd_seq_client *client, in subscribe_port() argument
440 if (err >= 0 && send_ack && client->type == USER_CLIENT) in subscribe_port()
441 snd_seq_client_notify_subscription(port->addr.client, port->addr.port, in subscribe_port()
447 static int unsubscribe_port(struct snd_seq_client *client, in unsubscribe_port() argument
460 if (send_ack && client->type == USER_CLIENT) in unsubscribe_port()
461 snd_seq_client_notify_subscription(port->addr.client, port->addr.port, in unsubscribe_port()
472 return (r->client == s->client) && (r->port == s->port); in addr_match()
636 int snd_seq_event_port_attach(int client, in snd_seq_event_port_attach() argument
646 portinfo.addr.client = client; in snd_seq_event_port_attach()
657 ret = snd_seq_kernel_client_ctl(client, in snd_seq_event_port_attach()
673 int snd_seq_event_port_detach(int client, int port) in snd_seq_event_port_detach() argument
679 portinfo.addr.client = client; in snd_seq_event_port_detach()
681 err = snd_seq_kernel_client_ctl(client, in snd_seq_event_port_detach()