xref: /illumos-gate/usr/src/uts/common/sys/firmload.h (revision f73e0305)
1*f73e0305SHans Rosenfeld /*	$NetBSD: firmload.h,v 1.2 2008/04/28 20:23:46 martin Exp $	*/
2*f73e0305SHans Rosenfeld 
3*f73e0305SHans Rosenfeld /*
4*f73e0305SHans Rosenfeld  * Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
5*f73e0305SHans Rosenfeld  */
6*f73e0305SHans Rosenfeld 
7*f73e0305SHans Rosenfeld /*
8*f73e0305SHans Rosenfeld  * Copyright (c) 2005, 2006 The NetBSD Foundation, Inc.
9*f73e0305SHans Rosenfeld  * All rights reserved.
10*f73e0305SHans Rosenfeld  *
11*f73e0305SHans Rosenfeld  * This code is derived from software contributed to The NetBSD Foundation
12*f73e0305SHans Rosenfeld  * by Jason R. Thorpe.
13*f73e0305SHans Rosenfeld  *
14*f73e0305SHans Rosenfeld  * Redistribution and use in source and binary forms, with or without
15*f73e0305SHans Rosenfeld  * modification, are permitted provided that the following conditions
16*f73e0305SHans Rosenfeld  * are met:
17*f73e0305SHans Rosenfeld  * 1. Redistributions of source code must retain the above copyright
18*f73e0305SHans Rosenfeld  *    notice, this list of conditions and the following disclaimer.
19*f73e0305SHans Rosenfeld  * 2. Redistributions in binary form must reproduce the above copyright
20*f73e0305SHans Rosenfeld  *    notice, this list of conditions and the following disclaimer in the
21*f73e0305SHans Rosenfeld  *    documentation and/or other materials provided with the distribution.
22*f73e0305SHans Rosenfeld  *
23*f73e0305SHans Rosenfeld  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
24*f73e0305SHans Rosenfeld  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
25*f73e0305SHans Rosenfeld  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
26*f73e0305SHans Rosenfeld  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
27*f73e0305SHans Rosenfeld  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28*f73e0305SHans Rosenfeld  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29*f73e0305SHans Rosenfeld  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30*f73e0305SHans Rosenfeld  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31*f73e0305SHans Rosenfeld  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32*f73e0305SHans Rosenfeld  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33*f73e0305SHans Rosenfeld  * POSSIBILITY OF SUCH DAMAGE.
34*f73e0305SHans Rosenfeld  */
35*f73e0305SHans Rosenfeld 
36*f73e0305SHans Rosenfeld #ifndef _SYS_FIRMLOAD_H
37*f73e0305SHans Rosenfeld #define	_SYS_FIRMLOAD_H
38*f73e0305SHans Rosenfeld 
39*f73e0305SHans Rosenfeld #ifdef _KERNEL
40*f73e0305SHans Rosenfeld 
41*f73e0305SHans Rosenfeld #include <sys/types.h>
42*f73e0305SHans Rosenfeld 
43*f73e0305SHans Rosenfeld #ifdef __cplusplus
44*f73e0305SHans Rosenfeld extern "C" {
45*f73e0305SHans Rosenfeld #endif
46*f73e0305SHans Rosenfeld 
47*f73e0305SHans Rosenfeld typedef struct firmware_handle *firmware_handle_t;
48*f73e0305SHans Rosenfeld 
49*f73e0305SHans Rosenfeld extern int	firmware_open(const char *, const char *, firmware_handle_t *);
50*f73e0305SHans Rosenfeld extern int	firmware_close(firmware_handle_t);
51*f73e0305SHans Rosenfeld 
52*f73e0305SHans Rosenfeld extern off_t	firmware_get_size(firmware_handle_t);
53*f73e0305SHans Rosenfeld 
54*f73e0305SHans Rosenfeld extern int	firmware_read(firmware_handle_t, off_t, void *, size_t);
55*f73e0305SHans Rosenfeld 
56*f73e0305SHans Rosenfeld #ifdef __cplusplus
57*f73e0305SHans Rosenfeld }
58*f73e0305SHans Rosenfeld #endif
59*f73e0305SHans Rosenfeld 
60*f73e0305SHans Rosenfeld #endif /* _KERNEL */
61*f73e0305SHans Rosenfeld 
62*f73e0305SHans Rosenfeld #endif /* _SYS_FIRMLOAD_H */
63