Fully synchronize sys/boot from FreeBSD-5.x, but add / to the module path
[dragonfly.git] / sys / boot / arc / include / libarc.h
CommitLineData
984263bc
MD
1/*
2 * Copyright (c) 1996
3 * Matthias Drochner. 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 * 3. All advertising materials mentioning features or use of this software
14 * must display the following acknowledgement:
15 * This product includes software developed for the NetBSD Project
16 * by Matthias Drochner.
17 * 4. The name of the author may not be used to endorse or promote products
18 * derived from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
21 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
22 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
23 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
24 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
29 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 *
5ee58eed
MD
31 * $FreeBSD: src/sys/boot/arc/include/libarc.h,v 1.2 1999/08/28 00:39:34 peter Exp $
32 * $DragonFly: src/sys/boot/arc/include/Attic/libarc.h,v 1.3 2003/11/10 06:08:30 dillon Exp $
984263bc
MD
33 */
34
35/*
36 * ARC fully-qualified device descriptor
37 */
38struct arc_devdesc
39{
40 struct devsw *d_dev;
41 int d_type;
42#define DEVT_NONE 0
43#define DEVT_DISK 1
44#define DEVT_NET 2
45 union
46 {
47 struct
48 {
49 int unit;
50 int slice;
51 int partition;
52 } arcdisk;
53 struct
54 {
55 int unit; /* XXX net layer lives over these? */
56 } netif;
57 } d_kind;
58};
59
60extern int arc_getdev(void **vdev, const char *devspec, const char **path);
61extern char *arc_fmtdev(void *vdev);
62extern int arc_setcurrdev(struct env_var *ev, int flags, void *value);
63
64#define MAXDEV 31 /* maximum number of distinct devices */
65
66typedef unsigned long physaddr_t;
67
68/* exported devices XXX rename? */
69extern struct devsw arcdisk;
70extern struct netif_driver arcnet;
71
72/* this is in startup code */
73extern void delay(int);
74extern void reboot(void);
75
76extern int arc_copyin(void *src, vm_offset_t dest, size_t len);
77extern int arc_copyout(vm_offset_t src, void *dest, size_t len);
78extern int arc_readin(int fd, vm_offset_t dest, size_t len);
79
80extern int arc_boot(void);
81extern int arc_autoload(void);