Lines Matching full:protocol

457  * efi_search_protocol() - find a protocol on a handle.
459 * @protocol_guid: GUID of the protocol
460 * @handler: reference to the protocol
477 struct efi_handler *protocol; in efi_search_protocol() local
479 protocol = list_entry(lhandle, struct efi_handler, link); in efi_search_protocol()
480 if (!guidcmp(protocol->guid, protocol_guid)) { in efi_search_protocol()
482 *handler = protocol; in efi_search_protocol()
490 * efi_remove_protocol() - delete protocol from a handle
491 * @handle: handle from which the protocol shall be deleted
492 * @protocol: GUID of the protocol to be deleted
493 * @protocol_interface: interface of the protocol implementation
498 const efi_guid_t *protocol, in efi_remove_protocol() argument
504 ret = efi_search_protocol(handle, protocol, &handler); in efi_remove_protocol()
507 if (guidcmp(handler->guid, protocol)) in efi_remove_protocol()
525 struct efi_handler *protocol; in efi_remove_all_protocols() local
531 list_for_each_entry_safe(protocol, pos, &efiobj->protocols, link) { in efi_remove_all_protocols()
534 ret = efi_remove_protocol(handle, protocol->guid, in efi_remove_all_protocols()
535 protocol->protocol_interface); in efi_remove_all_protocols()
946 * efi_open_protocol_info_entry() - create open protocol info entry and add it
947 * to a protocol
948 * @handler: handler of a protocol
950 * Return: open protocol info entry
960 /* Append the item to the open protocol info list. */ in efi_create_open_info()
967 * efi_delete_open_info() - remove an open protocol info entry from a protocol
968 * @item: open protocol info entry to delete
981 * efi_add_protocol() - install new protocol on a handle
982 * @handle: handle on which the protocol shall be installed
983 * @protocol: GUID of the protocol to be installed
984 * @protocol_interface: interface of the protocol implementation
989 const efi_guid_t *protocol, in efi_add_protocol() argument
999 ret = efi_search_protocol(handle, protocol, NULL); in efi_add_protocol()
1005 handler->guid = protocol; in efi_add_protocol()
1009 if (!guidcmp(&efi_guid_device_path, protocol)) in efi_add_protocol()
1015 * efi_install_protocol_interface() - install protocol interface
1016 * @handle: handle on which the protocol shall be installed
1017 * @protocol: GUID of the protocol to be installed
1020 * @protocol_interface: interface of the protocol implementation
1030 efi_handle_t *handle, const efi_guid_t *protocol, in efi_install_protocol_interface() argument
1035 EFI_ENTRY("%p, %pUl, %d, %p", handle, protocol, protocol_interface_type, in efi_install_protocol_interface()
1038 if (!handle || !protocol || in efi_install_protocol_interface()
1055 /* Add new protocol */ in efi_install_protocol_interface()
1056 r = efi_add_protocol(*handle, protocol, protocol_interface); in efi_install_protocol_interface()
1064 * @protocol: protocol GUID (optional)
1073 const efi_guid_t *protocol, in efi_get_drivers() argument
1084 if (protocol && guidcmp(handler->guid, protocol)) in efi_get_drivers()
1102 if (protocol && guidcmp(handler->guid, protocol)) in efi_get_drivers()
1129 * @protocol: protocol GUID (optional)
1141 const efi_guid_t *protocol, in efi_disconnect_all_drivers() argument
1148 ret = efi_get_drivers(handle, protocol, &number_of_drivers, in efi_disconnect_all_drivers()
1167 * efi_uninstall_protocol() - uninstall protocol interface
1169 * @handle: handle from which the protocol shall be removed
1170 * @protocol: GUID of the protocol to be removed
1173 * This function DOES NOT delete a handle without installed protocol.
1178 (efi_handle_t handle, const efi_guid_t *protocol, in efi_uninstall_protocol() argument
1193 /* Find the protocol on the handle */ in efi_uninstall_protocol()
1194 r = efi_search_protocol(handle, protocol, &handler); in efi_uninstall_protocol()
1198 efi_disconnect_all_drivers(efiobj, protocol, NULL); in efi_uninstall_protocol()
1203 /* Close protocol */ in efi_uninstall_protocol()
1215 r = efi_remove_protocol(handle, protocol, protocol_interface); in efi_uninstall_protocol()
1221 * efi_uninstall_protocol_interface() - uninstall protocol interface
1222 * @handle: handle from which the protocol shall be removed
1223 * @protocol: GUID of the protocol to be removed
1234 (efi_handle_t handle, const efi_guid_t *protocol, in efi_uninstall_protocol_interface() argument
1239 EFI_ENTRY("%p, %pUl, %p", handle, protocol, protocol_interface); in efi_uninstall_protocol_interface()
1241 ret = efi_uninstall_protocol(handle, protocol, protocol_interface); in efi_uninstall_protocol_interface()
1245 /* If the last protocol has been removed, delete the handle. */ in efi_uninstall_protocol_interface()
1256 * protocol is installed.
1257 * @protocol: GUID of the protocol whose installation shall be notified
1258 * @event: event to be signaled upon installation of the protocol
1268 const efi_guid_t *protocol, in efi_register_protocol_notify() argument
1272 EFI_ENTRY("%pUl, %p, %p", protocol, event, registration); in efi_register_protocol_notify()
1277 * efi_search() - determine if an EFI handle implements a protocol
1279 * @protocol: GUID of the protocol
1285 * Return: 0 if the handle implements the protocol
1288 const efi_guid_t *protocol, void *search_key, in efi_search() argument
1300 ret = efi_search_protocol(handle, protocol, NULL); in efi_search()
1309 * efi_locate_handle() - locate handles implementing a protocol
1311 * @protocol: GUID of the protocol
1323 const efi_guid_t *protocol, void *search_key, in efi_locate_handle() argument
1339 if (!protocol) in efi_locate_handle()
1356 if (!efi_search(search_type, protocol, search_key, efiobj)) in efi_locate_handle()
1371 if (!efi_search(search_type, protocol, search_key, efiobj)) in efi_locate_handle()
1379 * efi_locate_handle_ext() - locate handles implementing a protocol.
1381 * @protocol: GUID of the protocol
1391 * Return: 0 if the handle implements the protocol
1395 const efi_guid_t *protocol, void *search_key, in efi_locate_handle_ext() argument
1398 EFI_ENTRY("%d, %pUl, %p, %p, %p", search_type, protocol, search_key, in efi_locate_handle_ext()
1401 return EFI_EXIT(efi_locate_handle(search_type, protocol, search_key, in efi_locate_handle_ext()
1511 * @info_ptr: loaded image protocol
1847 * image protocol. in efi_exit()
2049 * efi_close_protocol() - close a protocol
2050 * @handle: handle on which the protocol shall be closed
2051 * @protocol: GUID of the protocol to close
2063 const efi_guid_t *protocol, in efi_close_protocol() argument
2072 EFI_ENTRY("%p, %pUl, %p, %p", handle, protocol, agent_handle, in efi_close_protocol()
2079 r = efi_search_protocol(handle, protocol, &handler); in efi_close_protocol()
2098 * of a protocol on a handle
2100 * @protocol: GUID of the protocol
2101 * @entry_buffer: buffer to receive the open protocol information
2112 efi_handle_t handle, const efi_guid_t *protocol, in efi_open_protocol_information() argument
2122 EFI_ENTRY("%p, %pUl, %p, %p", handle, protocol, entry_buffer, in efi_open_protocol_information()
2130 r = efi_search_protocol(handle, protocol, &handler); in efi_open_protocol_information()
2164 * @protocol_buffer: buffer with protocol GUIDs
2211 struct efi_handler *protocol; in efi_protocols_per_handle() local
2213 protocol = list_entry(protocol_handle, in efi_protocols_per_handle()
2215 (*protocol_buffer)[j] = (void *)protocol->guid; in efi_protocols_per_handle()
2224 * efi_locate_handle_buffer() - locate handles implementing a protocol
2226 * @protocol: GUID of the protocol
2240 const efi_guid_t *protocol, void *search_key, in efi_locate_handle_buffer() argument
2246 EFI_ENTRY("%d, %pUl, %p, %p, %p", search_type, protocol, search_key, in efi_locate_handle_buffer()
2255 r = efi_locate_handle(search_type, protocol, search_key, &buffer_size, in efi_locate_handle_buffer()
2263 r = efi_locate_handle(search_type, protocol, search_key, &buffer_size, in efi_locate_handle_buffer()
2272 * efi_locate_protocol() - find an interface implementing a protocol
2273 * @protocol: GUID of the protocol
2275 * @protocol_interface: interface implementing the protocol
2284 static efi_status_t EFIAPI efi_locate_protocol(const efi_guid_t *protocol, in efi_locate_protocol() argument
2291 EFI_ENTRY("%pUl, %p, %p", protocol, registration, protocol_interface); in efi_locate_protocol()
2293 if (!protocol || !protocol_interface) in efi_locate_protocol()
2302 ret = efi_search_protocol(efiobj, protocol, &handler); in efi_locate_protocol()
2315 * implementing a protocol
2316 * @protocol: GUID of the protocol
2328 const efi_guid_t *protocol, in efi_locate_device_path() argument
2342 EFI_ENTRY("%pUl, %p, %p", protocol, device_path, device); in efi_locate_device_path()
2344 if (!protocol || !device_path || !*device_path || !device) { in efi_locate_device_path()
2352 /* Get all handles implementing the protocol */ in efi_locate_device_path()
2353 ret = EFI_CALL(efi_locate_handle_buffer(BY_PROTOCOL, protocol, NULL, in efi_locate_device_path()
2359 /* Find the device path protocol */ in efi_locate_device_path()
2392 * efi_install_multiple_protocol_interfaces() - Install multiple protocol
2394 * @handle: handle on which the protocol interfaces shall be installed
2395 * @...: NULL terminated argument list with pairs of protocol GUIDS and
2411 const efi_guid_t *protocol; in efi_install_multiple_protocol_interfaces() local
2421 protocol = efi_va_arg(argptr, efi_guid_t*); in efi_install_multiple_protocol_interfaces()
2422 if (!protocol) in efi_install_multiple_protocol_interfaces()
2426 handle, protocol, in efi_install_multiple_protocol_interfaces()
2440 protocol = efi_va_arg(argptr, efi_guid_t*); in efi_install_multiple_protocol_interfaces()
2442 EFI_CALL(efi_uninstall_protocol_interface(*handle, protocol, in efi_install_multiple_protocol_interfaces()
2451 * efi_uninstall_multiple_protocol_interfaces() - uninstall multiple protocol
2453 * @handle: handle from which the protocol interfaces shall be removed
2454 * @...: NULL terminated argument list with pairs of protocol GUIDS and
2470 const efi_guid_t *protocol; in efi_uninstall_multiple_protocol_interfaces() local
2480 protocol = efi_va_arg(argptr, efi_guid_t*); in efi_uninstall_multiple_protocol_interfaces()
2481 if (!protocol) in efi_uninstall_multiple_protocol_interfaces()
2484 r = efi_uninstall_protocol(handle, protocol, in efi_uninstall_multiple_protocol_interfaces()
2492 /* If the last protocol has been removed, delete the handle. */ in efi_uninstall_multiple_protocol_interfaces()
2503 protocol = efi_va_arg(argptr, efi_guid_t*); in efi_uninstall_multiple_protocol_interfaces()
2505 EFI_CALL(efi_install_protocol_interface(&handle, protocol, in efi_uninstall_multiple_protocol_interfaces()
2575 * efi_protocol_open() - open protocol interface on a handle
2576 * @handler: handler of a protocol
2577 * @protocol_interface: interface implementing the protocol
2580 * @attributes: attributes indicating how to open the protocol
2603 * Check if the protocol is already opened by a driver with the same in efi_protocol_open()
2616 /* Only one controller can open the protocol exclusively */ in efi_protocol_open()
2670 * efi_open_protocol() - open protocol interface on a handle
2671 * @handle: handle on which the protocol shall be opened
2672 * @protocol: GUID of the protocol
2673 * @protocol_interface: interface implementing the protocol
2676 * @attributes: attributes indicating how to open the protocol
2686 (efi_handle_t handle, const efi_guid_t *protocol, in efi_open_protocol() argument
2693 EFI_ENTRY("%p, %pUl, %p, %p, %p, 0x%x", handle, protocol, in efi_open_protocol()
2697 if (!handle || !protocol || in efi_open_protocol()
2727 r = efi_search_protocol(handle, protocol, &handler); in efi_open_protocol()
2738 * efi_handle_protocol() - get interface of a protocol on a handle
2739 * @handle: handle on which the protocol shall be opened
2740 * @protocol: GUID of the protocol
2741 * @protocol_interface: interface implementing the protocol
2751 const efi_guid_t *protocol, in efi_handle_protocol() argument
2754 return efi_open_protocol(handle, protocol, protocol_interface, NULL, in efi_handle_protocol()
2813 /* Get buffer with all handles with driver binding protocol */ in efi_connect_single_controller()
2878 * First all driver binding protocol handles are tried for binding drivers.
2879 * Afterwards all handles that have opened a protocol of the controller
2936 * efi_reinstall_protocol_interface() - reinstall protocol interface
2937 * @handle: handle on which the protocol shall be reinstalled
2938 * @protocol: GUID of the protocol to be installed
2953 efi_handle_t handle, const efi_guid_t *protocol, in efi_reinstall_protocol_interface() argument
2958 EFI_ENTRY("%p, %pUl, %p, %p", handle, protocol, old_interface, in efi_reinstall_protocol_interface()
2961 /* Uninstall protocol but do not delete handle */ in efi_reinstall_protocol_interface()
2962 ret = efi_uninstall_protocol(handle, protocol, old_interface); in efi_reinstall_protocol_interface()
2966 /* Install the new protocol */ in efi_reinstall_protocol_interface()
2967 ret = efi_add_protocol(handle, protocol, new_interface); in efi_reinstall_protocol_interface()
2970 * if in case of an error no protocol interface remains on the handle. in efi_reinstall_protocol_interface()
3104 /* Get the driver binding protocol */ in efi_disconnect_controller()