Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/stand/powerpc/ofw/conf.c
34877 views
1
/*-
2
* Copyright (c) 1999 Michael Smith <[email protected]>
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
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
*
14
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24
* SUCH DAMAGE.
25
*/
26
27
#include <stand.h>
28
#include "bootstrap.h"
29
#include "libofw.h"
30
#include "openfirm.h"
31
32
#if defined(LOADER_NET_SUPPORT)
33
#include "dev_net.h"
34
#endif
35
36
/* Make sure we have an explicit reference to exit so libsa's panic pulls in the MD exit */
37
void (*exitfn)(int) = exit;
38
39
/*
40
* We could use linker sets for some or all of these, but
41
* then we would have to control what ended up linked into
42
* the bootstrap. So it's easier to conditionalise things
43
* here.
44
*
45
* XXX rename these arrays to be consistent and less namespace-hostile
46
*/
47
48
/* Exported for libsa */
49
struct devsw *devsw[] = {
50
#if defined(LOADER_DISK_SUPPORT) || defined(LOADER_CD9660_SUPPORT)
51
&ofwdisk,
52
#endif
53
#if defined(LOADER_NET_SUPPORT)
54
&ofw_netdev,
55
#endif
56
NULL
57
};
58
59
struct fs_ops *file_system[] = {
60
#if defined(LOADER_UFS_SUPPORT)
61
&ufs_fsops,
62
#endif
63
#if defined(LOADER_CD9660_SUPPORT)
64
&cd9660_fsops,
65
#endif
66
#if defined(LOADER_EXT2FS_SUPPORT)
67
&ext2fs_fsops,
68
#endif
69
#if defined(LOADER_MSDOS_SUPPORT)
70
&dosfs_fsops,
71
#endif
72
#if defined(LOADER_NFS_SUPPORT)
73
&nfs_fsops,
74
#endif
75
#if defined(LOADER_TFTP_SUPPORT)
76
&tftp_fsops,
77
#endif
78
#if defined(LOADER_GZIP_SUPPORT)
79
&gzipfs_fsops,
80
#endif
81
#if defined(LOADER_BZIP2_SUPPORT)
82
&bzipfs_fsops,
83
#endif
84
NULL
85
};
86
87
struct netif_driver *netif_drivers[] = {
88
#if defined(LOADER_NET_SUPPORT)
89
&ofwnet,
90
#endif
91
NULL,
92
};
93
94
/* Exported for PowerPC only */
95
/*
96
* Sort formats so that those that can detect based on arguments
97
* rather than reading the file go first.
98
*/
99
100
extern struct file_format ofw_elf;
101
extern struct file_format ofw_elf64;
102
103
struct file_format *file_formats[] = {
104
&ofw_elf,
105
&ofw_elf64,
106
NULL
107
};
108
109
/*
110
* Consoles
111
*
112
* We don't prototype these in libofw.h because they require
113
* data structures from bootstrap.h as well.
114
*/
115
extern struct console ofwconsole;
116
117
struct console *consoles[] = {
118
&ofwconsole,
119
NULL
120
};
121
122
/*
123
* reloc - our load address
124
*/
125
vm_offset_t reloc = RELOC;
126
127