Lines Matching refs:controller
293 struct agp_controller *controller; in agp_find_controller_by_pid() local
295 controller = agp_fe.controllers; in agp_find_controller_by_pid()
297 while (controller != NULL) { in agp_find_controller_by_pid()
298 if (controller->pid == id) in agp_find_controller_by_pid()
299 return controller; in agp_find_controller_by_pid()
300 controller = controller->next; in agp_find_controller_by_pid()
308 struct agp_controller *controller; in agp_create_controller() local
310 controller = kzalloc(sizeof(struct agp_controller), GFP_KERNEL); in agp_create_controller()
311 if (controller == NULL) in agp_create_controller()
314 controller->pid = id; in agp_create_controller()
315 return controller; in agp_create_controller()
318 static int agp_insert_controller(struct agp_controller *controller) in agp_insert_controller() argument
323 controller->next = prev_controller; in agp_insert_controller()
326 prev_controller->prev = controller; in agp_insert_controller()
328 agp_fe.controllers = controller; in agp_insert_controller()
333 static void agp_remove_all_clients(struct agp_controller *controller) in agp_remove_all_clients() argument
338 client = controller->clients; in agp_remove_all_clients()
356 static void agp_remove_all_memory(struct agp_controller *controller) in agp_remove_all_memory() argument
361 memory = controller->pool; in agp_remove_all_memory()
370 static int agp_remove_controller(struct agp_controller *controller) in agp_remove_controller() argument
375 prev_controller = controller->prev; in agp_remove_controller()
376 next_controller = controller->next; in agp_remove_controller()
390 agp_remove_all_memory(controller); in agp_remove_controller()
391 agp_remove_all_clients(controller); in agp_remove_controller()
393 if (agp_fe.current_controller == controller) { in agp_remove_controller()
398 kfree(controller); in agp_remove_controller()
402 static void agp_controller_make_current(struct agp_controller *controller) in agp_controller_make_current() argument
406 clients = controller->clients; in agp_controller_make_current()
420 agp_fe.current_controller = controller; in agp_controller_make_current()
423 static void agp_controller_release_current(struct agp_controller *controller, in agp_controller_release_current() argument
429 clients = controller->clients; in agp_controller_release_current()
453 *agp_find_client_in_controller(struct agp_controller *controller, pid_t id) in agp_find_client_in_controller() argument
457 if (controller == NULL) in agp_find_client_in_controller()
460 client = controller->clients; in agp_find_client_in_controller()
473 struct agp_controller *controller; in agp_find_controller_for_client() local
475 controller = agp_fe.controllers; in agp_find_controller_for_client()
477 while (controller != NULL) { in agp_find_controller_for_client()
478 if ((agp_find_client_in_controller(controller, id)) != NULL) in agp_find_controller_for_client()
479 return controller; in agp_find_controller_for_client()
480 controller = controller->next; in agp_find_controller_for_client()
529 struct agp_controller *controller; in agp_remove_client() local
531 controller = agp_find_controller_for_client(id); in agp_remove_client()
532 if (controller == NULL) in agp_remove_client()
535 client = agp_find_client_in_controller(controller, id); in agp_remove_client()
550 controller->clients = next_client; in agp_remove_client()
553 controller->num_clients--; in agp_remove_client()
650 struct agp_controller *controller; in agp_release() local
652 controller = agp_find_controller_by_pid(priv->my_pid); in agp_release()
654 if (controller != NULL) { in agp_release()
655 if (controller == agp_fe.current_controller) in agp_release()
656 agp_controller_release_current(controller, priv); in agp_release()
657 agp_remove_controller(controller); in agp_release()
658 controller = NULL; in agp_release()
737 struct agp_controller *controller; in agpioc_acquire_wrap() local
757 controller = agp_find_controller_by_pid(priv->my_pid); in agpioc_acquire_wrap()
759 if (controller != NULL) { in agpioc_acquire_wrap()
760 agp_controller_make_current(controller); in agpioc_acquire_wrap()
762 controller = agp_create_controller(priv->my_pid); in agpioc_acquire_wrap()
764 if (controller == NULL) { in agpioc_acquire_wrap()
769 agp_insert_controller(controller); in agpioc_acquire_wrap()
770 agp_controller_make_current(controller); in agpioc_acquire_wrap()