libski.h revision 83364
11638Srgrimes/*-
252696Sgreen * Copyright (c) 2001 Doug Rabson
31638Srgrimes * All rights reserved.
4156813Sru *
5155611Simp * Redistribution and use in source and binary forms, with or without
61988Swollman * modification, are permitted provided that the following conditions
7124747Sru * are met:
8172085Sjkoshy * 1. Redistributions of source code must retain the above copyright
9124747Sru *    notice, this list of conditions and the following disclaimer.
10152999Semax * 2. Redistributions in binary form must reproduce the above copyright
11124747Sru *    notice, this list of conditions and the following disclaimer in the
12124747Sru *    documentation and/or other materials provided with the distribution.
13171851Sdanger *
14124747Sru * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15124747Sru * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16146329Skeramida * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17146329Skeramida * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18124747Sru * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19124747Sru * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20124747Sru * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21124747Sru * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22124747Sru * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23129759Sbrooks * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24163029Sru * SUCH DAMAGE.
25124747Sru *
26124747Sru * $FreeBSD: head/sys/boot/ia64/ski/libski.h 83364 2001-09-12 08:34:27Z dfr $
27124747Sru */
28161748Scperciva
29124747Sru/*
30124747Sru * SKI fully-qualified device descriptor
31124747Sru */
32124747Srustruct ski_devdesc {
33124747Sru	struct	devsw	*d_dev;
34124747Sru	int		d_type;
35124747Sru#define	DEVT_NONE	0
36124747Sru#define	DEVT_DISK	1
37124747Sru#define	DEVT_NET	2
38124747Sru	union {
39158381Sambrisko		struct {
40124747Sru			int	unit;
41124747Sru			int	slice;
42124747Sru			int	partition;
43124747Sru		} skidisk;
44153103Sdavidxu		struct {
45124747Sru			int	unit;	/* XXX net layer lives over these? */
46108304Strhodes		} netif;
47124747Sru	} d_kind;
48124747Sru};
49183631Sdanger
50124747Sruextern int	ski_getdev(void **vdev, const char *devspec, const char **path);
51124747Sruextern char	*ski_fmtdev(void *vdev);
52124747Sruextern int	ski_setcurrdev(struct env_var *ev, int flags, void *value);
53124747Sru
54187825Stabthorpe#define	MAXDEV	31	/* maximum number of distinct devices */
55150665Sru
56124747Srutypedef unsigned long physaddr_t;
57124747Sru
58124747Sru/* exported devices XXX rename? */
59124747Sruextern struct devsw skifs_dev;
60178354Ssamextern struct devsw ski_disk;
61158665Srodrigcextern struct netif_driver ski_net;
62124747Sru
63124747Sru/* Wrapper over SKI filesystems. */
64124747Sruextern struct fs_ops ski_fsops;
65124747Sru
66156940Sru/* this is in startup code */
67124747Sruextern void		delay(int);
68124747Sruextern void		reboot(void);
69124747Sru
70170811Sdelphijextern ssize_t		ski_copyin(const void *src, vm_offset_t dest, size_t len);
71170828Srodrigcextern ssize_t		ski_copyout(const vm_offset_t src, void *dest, size_t len);
72170828Srodrigcextern ssize_t		ski_readin(int fd, vm_offset_t dest, size_t len);
731638Srgrimes
74124747Sruextern int		ski_boot(void);
7532158Sbdeextern int		ski_autoload(void);
7632158Sbde
77108414Strhodes#define SSC_CONSOLE_INIT		20
7877865Sru#define SSC_GETCHAR			21
7972875Snik#define SSC_PUTCHAR			31
80156709Sjcamou#define SSC_OPEN			50
8132158Sbde#define SSC_CLOSE			51
8232158Sbde#define SSC_READ			52
8332158Sbde#define SSC_WRITE			53
84156813Sru#define SSC_GET_COMPLETION		54
85148781Sphk#define SSC_WAIT_COMPLETION		55
86148781Sphk#define SSC_EXIT			66
87148781Sphk#define SSC_LOAD_SYMBOLS		69
88171851Sdanger
89171851Sdangeru_int64_t ssc(u_int64_t in0, u_int64_t in1, u_int64_t in2, u_int64_t in3,
90171851Sdanger	      int which);
91171851Sdanger