> > Another follow on question is, does every firmware support both > > blocking and non-blocking variants (specially legacy EFI firmware)? I > > am worried about this because, presently efi_delete_dummy_variable() > > uses set_variable() and > > query_variable_info() but if I change efi_delete_dummy_variable() to > > use non-blocking variants and if they aren’t supported, then, I guess, > > efi_delete_dummy_variable() might fail :( > > > > So, could you please clarify on that? > > > > I don't follow. Why should it make any difference to the firmware whether the > OS routines blocks or gives up? We always honor the mutual exclusion between > different invocations of runtime services, and the firmware itself has no > awareness of the kind of scheduling the OS needs to do to ensure this. Sorry! my bad.. I thought firmware (with EFI System table revision > 2.0 ) offers two types of efi run time services, a blocking variant and a non-blocking variant. But, now I noticed in the spec that there is only set_variable() but _no_ set_variable_nonblocking(). Same with query_variable_info(). The same is also seen in runtime-wrappers.c file. Both the blocking and non-blocking variants call the same efi runtime service. I see that non-blocking() variants are just an additional feature (API) offered by OS. Regards, Sai ��.n��������+%������w��{.n�����{����*jg��������ݢj����G�������j:+v���w�m������w�������h�����٥