Deleted Added
full compact
handles.c (256281) handles.c (271135)
1/*-
2 * Copyright (c) 2006 Marcel Moolenaar
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *

--- 11 unchanged lines hidden (view full) ---

20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2006 Marcel Moolenaar
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *

--- 11 unchanged lines hidden (view full) ---

20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: stable/10/sys/boot/efi/libefi/handles.c 164010 2006-11-05 22:03:04Z marcel $");
28__FBSDID("$FreeBSD: stable/10/sys/boot/efi/libefi/handles.c 271135 2014-09-04 21:01:10Z emaste $");
29
30#include <efi.h>
31#include <efilib.h>
32
33struct entry {
34 EFI_HANDLE handle;
29
30#include <efi.h>
31#include <efilib.h>
32
33struct entry {
34 EFI_HANDLE handle;
35 EFI_HANDLE alias;
35 struct devsw *dev;
36 int unit;
37};
38
39struct entry *entry;
40int nentries;
41
42int
36 struct devsw *dev;
37 int unit;
38};
39
40struct entry *entry;
41int nentries;
42
43int
43efi_register_handles(struct devsw *sw, EFI_HANDLE *handles, int count)
44efi_register_handles(struct devsw *sw, EFI_HANDLE *handles,
45 EFI_HANDLE *aliases, int count)
44{
45 size_t sz;
46 int idx, unit;
47
48 idx = nentries;
49 nentries += count;
50 sz = nentries * sizeof(struct entry);
51 entry = (entry == NULL) ? malloc(sz) : realloc(entry, sz);
52 for (unit = 0; idx < nentries; idx++, unit++) {
53 entry[idx].handle = handles[unit];
46{
47 size_t sz;
48 int idx, unit;
49
50 idx = nentries;
51 nentries += count;
52 sz = nentries * sizeof(struct entry);
53 entry = (entry == NULL) ? malloc(sz) : realloc(entry, sz);
54 for (unit = 0; idx < nentries; idx++, unit++) {
55 entry[idx].handle = handles[unit];
56 if (aliases != NULL)
57 entry[idx].alias = aliases[unit];
58 else
59 entry[idx].alias = NULL;
54 entry[idx].dev = sw;
55 entry[idx].unit = unit;
56 }
57 return (0);
58}
59
60EFI_HANDLE
61efi_find_handle(struct devsw *dev, int unit)

--- 11 unchanged lines hidden (view full) ---

73}
74
75int
76efi_handle_lookup(EFI_HANDLE h, struct devsw **dev, int *unit)
77{
78 int idx;
79
80 for (idx = 0; idx < nentries; idx++) {
60 entry[idx].dev = sw;
61 entry[idx].unit = unit;
62 }
63 return (0);
64}
65
66EFI_HANDLE
67efi_find_handle(struct devsw *dev, int unit)

--- 11 unchanged lines hidden (view full) ---

79}
80
81int
82efi_handle_lookup(EFI_HANDLE h, struct devsw **dev, int *unit)
83{
84 int idx;
85
86 for (idx = 0; idx < nentries; idx++) {
81 if (entry[idx].handle != h)
87 if (entry[idx].handle != h && entry[idx].alias != h)
82 continue;
83 if (dev != NULL)
84 *dev = entry[idx].dev;
85 if (unit != NULL)
86 *unit = entry[idx].unit;
87 return (0);
88 }
89 return (ENOENT);
90}
88 continue;
89 if (dev != NULL)
90 *dev = entry[idx].dev;
91 if (unit != NULL)
92 *unit = entry[idx].unit;
93 return (0);
94 }
95 return (ENOENT);
96}