1*6d3ceb1dSskrll /* $NetBSD: libsa.h,v 1.1 2014/02/24 07:23:43 skrll Exp $ */ 2*6d3ceb1dSskrll 3*6d3ceb1dSskrll /* $OpenBSD: libsa.h,v 1.7 1999/12/23 04:07:47 mickey Exp $ */ 4*6d3ceb1dSskrll 5*6d3ceb1dSskrll /* 6*6d3ceb1dSskrll * Copyright (c) 1998-2004 Michael Shalayeff 7*6d3ceb1dSskrll * All rights reserved. 8*6d3ceb1dSskrll * 9*6d3ceb1dSskrll * Redistribution and use in source and binary forms, with or without 10*6d3ceb1dSskrll * modification, are permitted provided that the following conditions 11*6d3ceb1dSskrll * are met: 12*6d3ceb1dSskrll * 1. Redistributions of source code must retain the above copyright 13*6d3ceb1dSskrll * notice, this list of conditions and the following disclaimer. 14*6d3ceb1dSskrll * 2. Redistributions in binary form must reproduce the above copyright 15*6d3ceb1dSskrll * notice, this list of conditions and the following disclaimer in the 16*6d3ceb1dSskrll * documentation and/or other materials provided with the distribution. 17*6d3ceb1dSskrll * 18*6d3ceb1dSskrll * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 19*6d3ceb1dSskrll * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 20*6d3ceb1dSskrll * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21*6d3ceb1dSskrll * IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT, 22*6d3ceb1dSskrll * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23*6d3ceb1dSskrll * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 24*6d3ceb1dSskrll * SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25*6d3ceb1dSskrll * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 26*6d3ceb1dSskrll * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 27*6d3ceb1dSskrll * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 28*6d3ceb1dSskrll * THE POSSIBILITY OF SUCH DAMAGE. 29*6d3ceb1dSskrll */ 30*6d3ceb1dSskrll 31*6d3ceb1dSskrll #include <lib/libsa/stand.h> 32*6d3ceb1dSskrll #include <lib/libkern/libkern.h> 33*6d3ceb1dSskrll #include <dev/cons.h> 34*6d3ceb1dSskrll 35*6d3ceb1dSskrll #define EXEC_ELF 36*6d3ceb1dSskrll /* #define EXEC_ECOFF */ 37*6d3ceb1dSskrll #define EXEC_SOM 38*6d3ceb1dSskrll 39*6d3ceb1dSskrll #define NENTS(a) (sizeof(a) / sizeof(a[0])) 40*6d3ceb1dSskrll 41*6d3ceb1dSskrll typedef unsigned int btdev_t; 42*6d3ceb1dSskrll 43*6d3ceb1dSskrll extern btdev_t bootdev; 44*6d3ceb1dSskrll 45*6d3ceb1dSskrll extern struct consdev constab[]; 46*6d3ceb1dSskrll extern struct consdev *cn_tab; 47*6d3ceb1dSskrll int cngetc(void); 48*6d3ceb1dSskrll int tcngetc(void); 49*6d3ceb1dSskrll void cnputc(int); 50*6d3ceb1dSskrll void cninit(void); 51*6d3ceb1dSskrll int tgetchar(void); 52*6d3ceb1dSskrll 53*6d3ceb1dSskrll void pdc_init(void); 54*6d3ceb1dSskrll struct pz_device; 55*6d3ceb1dSskrll struct pz_device *pdc_findev(int, int); 56*6d3ceb1dSskrll 57*6d3ceb1dSskrll int iodcstrategy(void *, int, daddr_t, size_t, void *, size_t *); 58*6d3ceb1dSskrll 59*6d3ceb1dSskrll int ctopen(struct open_file *, ...); 60*6d3ceb1dSskrll int ctclose(struct open_file *); 61*6d3ceb1dSskrll 62*6d3ceb1dSskrll int dkopen(struct open_file *, ...); 63*6d3ceb1dSskrll int dkclose(struct open_file *); 64*6d3ceb1dSskrll 65*6d3ceb1dSskrll int lfopen(struct open_file *, ...); 66*6d3ceb1dSskrll int lfstrategy(void *, int, daddr_t, size_t, void *, size_t *); 67*6d3ceb1dSskrll int lfclose(struct open_file *); 68*6d3ceb1dSskrll 69*6d3ceb1dSskrll void ite_probe(struct consdev *); 70*6d3ceb1dSskrll void ite_init(struct consdev *); 71*6d3ceb1dSskrll int ite_getc(dev_t); 72*6d3ceb1dSskrll void ite_putc(dev_t, int); 73*6d3ceb1dSskrll void ite_pollc(dev_t, int); 74*6d3ceb1dSskrll 75*6d3ceb1dSskrll void machdep(void); 76*6d3ceb1dSskrll void devboot(btdev_t, char *); 77*6d3ceb1dSskrll void fcacheall(void); 78*6d3ceb1dSskrll 79*6d3ceb1dSskrll int lif_open(const char *, struct open_file *); 80*6d3ceb1dSskrll int lif_close(struct open_file *); 81*6d3ceb1dSskrll int lif_read(struct open_file *, void *, size_t, size_t *); 82*6d3ceb1dSskrll int lif_write(struct open_file *, void *, size_t, size_t *); 83*6d3ceb1dSskrll off_t lif_seek(struct open_file *, off_t, int); 84*6d3ceb1dSskrll int lif_stat(struct open_file *, struct stat *); 85*6d3ceb1dSskrll int lif_readdir(struct open_file *, char *); 86*6d3ceb1dSskrll 87*6d3ceb1dSskrll union x_header; 88*6d3ceb1dSskrll struct x_param; 89*6d3ceb1dSskrll int som_probe(int, union x_header *); 90*6d3ceb1dSskrll int som_load(int, struct x_param *); 91*6d3ceb1dSskrll int som_ldsym(int, struct x_param *); 92*6d3ceb1dSskrll 93*6d3ceb1dSskrll extern int debug; 94*6d3ceb1dSskrll extern char bootprog_name[], bootprog_rev[]; 95