efidelay.c revision 1.1
11.1Snonaka/* $NetBSD: efidelay.c,v 1.1 2017/01/24 11:09:14 nonaka Exp $ */ 21.1Snonaka 31.1Snonaka/*- 41.1Snonaka * Copyright (c) 2016 Kimihiro Nonaka <nonaka@netbsd.org> 51.1Snonaka * All rights reserved. 61.1Snonaka * 71.1Snonaka * Redistribution and use in source and binary forms, with or without 81.1Snonaka * modification, are permitted provided that the following conditions 91.1Snonaka * are met: 101.1Snonaka * 1. Redistributions of source code must retain the above copyright 111.1Snonaka * notice, this list of conditions and the following disclaimer. 121.1Snonaka * 2. Redistributions in binary form must reproduce the above copyright 131.1Snonaka * notice, this list of conditions and the following disclaimer in the 141.1Snonaka * documentation and/or other materials provided with the distribution. 151.1Snonaka * 161.1Snonaka * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 171.1Snonaka * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 181.1Snonaka * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 191.1Snonaka * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 201.1Snonaka * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 211.1Snonaka * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 221.1Snonaka * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 231.1Snonaka * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 241.1Snonaka * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 251.1Snonaka * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 261.1Snonaka * SUCH DAMAGE. 271.1Snonaka */ 281.1Snonaka 291.1Snonaka#include "efiboot.h" 301.1Snonaka 311.1Snonakavoid 321.1Snonakadelay(int us) 331.1Snonaka{ 341.1Snonaka EFI_STATUS status; 351.1Snonaka 361.1Snonaka status = uefi_call_wrapper(BS->Stall, 1, us); 371.1Snonaka if (EFI_ERROR(status)) 381.1Snonaka Panic(L"%a: couldn't delay %d us: %r\n", __func__, us, status); 391.1Snonaka} 401.1Snonaka 411.1Snonakavoid 421.1Snonakawait_sec(int sec) 431.1Snonaka{ 441.1Snonaka while (sec-- > 0) 451.1Snonaka delay(1000 * 1000); 461.1Snonaka} 47