1 1.20 tsutsui /* $NetBSD: samachdep.h,v 1.20 2015/02/14 05:03:09 tsutsui Exp $ */ 2 1.1 tsutsui 3 1.1 tsutsui /* 4 1.1 tsutsui * Copyright (c) 1982, 1990, 1993 5 1.1 tsutsui * The Regents of the University of California. All rights reserved. 6 1.1 tsutsui * 7 1.1 tsutsui * Redistribution and use in source and binary forms, with or without 8 1.1 tsutsui * modification, are permitted provided that the following conditions 9 1.1 tsutsui * are met: 10 1.1 tsutsui * 1. Redistributions of source code must retain the above copyright 11 1.1 tsutsui * notice, this list of conditions and the following disclaimer. 12 1.1 tsutsui * 2. Redistributions in binary form must reproduce the above copyright 13 1.1 tsutsui * notice, this list of conditions and the following disclaimer in the 14 1.1 tsutsui * documentation and/or other materials provided with the distribution. 15 1.1 tsutsui * 3. Neither the name of the University nor the names of its contributors 16 1.1 tsutsui * may be used to endorse or promote products derived from this software 17 1.1 tsutsui * without specific prior written permission. 18 1.1 tsutsui * 19 1.1 tsutsui * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 20 1.1 tsutsui * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 1.1 tsutsui * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 1.1 tsutsui * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 23 1.1 tsutsui * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 1.1 tsutsui * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25 1.1 tsutsui * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26 1.1 tsutsui * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 1.1 tsutsui * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 1.1 tsutsui * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 1.1 tsutsui * SUCH DAMAGE. 30 1.1 tsutsui * 31 1.1 tsutsui * @(#)samachdep.h 8.1 (Berkeley) 6/10/93 32 1.1 tsutsui */ 33 1.1 tsutsui 34 1.1 tsutsui #include <sys/param.h> 35 1.1 tsutsui #include <m68k/frame.h> 36 1.1 tsutsui #include <lib/libsa/stand.h> 37 1.1 tsutsui 38 1.1 tsutsui #define NSCSI 2 39 1.1 tsutsui 40 1.1 tsutsui #define MHZ_8 1 41 1.1 tsutsui #define MHZ_16 2 42 1.1 tsutsui #define MHZ_25 3 43 1.1 tsutsui #define MHZ_33 4 44 1.1 tsutsui #define MHZ_50 6 45 1.1 tsutsui 46 1.1 tsutsui struct consdev; 47 1.1 tsutsui struct frame; 48 1.1 tsutsui typedef struct label_t { 49 1.1 tsutsui int val[15]; 50 1.1 tsutsui } label_t; 51 1.1 tsutsui 52 1.1 tsutsui /* autoconf.c */ 53 1.1 tsutsui void find_devs(void); 54 1.16 tsutsui extern const int dev2adpt[]; 55 1.1 tsutsui 56 1.8 tsutsui /* awaitkey.c */ 57 1.8 tsutsui char awaitkey(const char *, int, bool); 58 1.8 tsutsui 59 1.1 tsutsui /* bmc.c */ 60 1.1 tsutsui void bmccnprobe(struct consdev *); 61 1.1 tsutsui void bmccninit(struct consdev *); 62 1.1 tsutsui int bmccngetc(dev_t); 63 1.1 tsutsui void bmccnputc(dev_t, int); 64 1.1 tsutsui 65 1.1 tsutsui /* bmd.c */ 66 1.1 tsutsui void bmdinit(void); 67 1.1 tsutsui int bmdputc(int); 68 1.20 tsutsui void bmdadjust(int16_t, int16_t); 69 1.1 tsutsui void bmdclear(void); 70 1.1 tsutsui 71 1.1 tsutsui /* boot.c */ 72 1.1 tsutsui int boot(int, char **); 73 1.16 tsutsui int bootnetbsd(char *, int); 74 1.1 tsutsui 75 1.1 tsutsui /* cons.c */ 76 1.1 tsutsui void cninit(void); 77 1.1 tsutsui int cngetc(void); 78 1.1 tsutsui void cnputc(int); 79 1.1 tsutsui 80 1.16 tsutsui /* devopen.c */ 81 1.16 tsutsui int make_device(const char *, int *, int *, int *, char **); 82 1.16 tsutsui 83 1.1 tsutsui /* disklabel.c */ 84 1.20 tsutsui extern uint8_t lbl_buff[]; 85 1.1 tsutsui int disklabel(int, char **); 86 1.1 tsutsui 87 1.1 tsutsui /* font.c */ 88 1.11 tsutsui extern const uint16_t bmdfont[][20]; 89 1.1 tsutsui 90 1.1 tsutsui /* fsdump.c */ 91 1.1 tsutsui int fsdump(int, char **); 92 1.1 tsutsui int fsrestore(int, char **); 93 1.1 tsutsui 94 1.1 tsutsui /* getline.c */ 95 1.13 tsutsui int getline(const char *, char *); 96 1.1 tsutsui 97 1.3 tsutsui /* if_le.c */ 98 1.15 tsutsui int leinit(int, void *); 99 1.3 tsutsui 100 1.1 tsutsui /* init_main.c */ 101 1.8 tsutsui extern int cpuspeed; 102 1.8 tsutsui extern int hz; 103 1.1 tsutsui extern int nplane; 104 1.2 tsutsui extern int machtype; 105 1.10 tsutsui extern char default_file[]; 106 1.19 tsutsui extern const char *default_bootdev; 107 1.18 tsutsui extern int default_unit; 108 1.1 tsutsui 109 1.1 tsutsui /* kbd.c */ 110 1.20 tsutsui int kbd_decode(uint8_t); 111 1.1 tsutsui 112 1.3 tsutsui /* lance.c */ 113 1.3 tsutsui void *lance_attach(int, void *, void *, uint8_t *); 114 1.3 tsutsui void *lance_cookie(int); 115 1.3 tsutsui uint8_t *lance_eaddr(void *); 116 1.3 tsutsui bool lance_init(void *); 117 1.3 tsutsui int lance_get(void *, void *, size_t); 118 1.3 tsutsui bool lance_put(void *, void *, size_t); 119 1.9 tsutsui bool lance_end(void *); 120 1.3 tsutsui int lance_intr(void); 121 1.3 tsutsui 122 1.1 tsutsui /* locore.S */ 123 1.1 tsutsui extern int dipsw1, dipsw2; 124 1.2 tsutsui extern int cputype; 125 1.8 tsutsui extern volatile uint32_t tick; 126 1.1 tsutsui int setjmp(label_t *); 127 1.1 tsutsui int splhigh(void); 128 1.1 tsutsui void splx(int); 129 1.1 tsutsui int getsfc(void); 130 1.1 tsutsui int getdfc(void); 131 1.1 tsutsui int spl0(void); 132 1.1 tsutsui int spl1(void); 133 1.1 tsutsui int spl2(void); 134 1.1 tsutsui int spl3(void); 135 1.1 tsutsui int spl4(void); 136 1.1 tsutsui int spl5(void); 137 1.1 tsutsui int spl6(void); 138 1.1 tsutsui 139 1.5 tsutsui /* ls.c */ 140 1.5 tsutsui int cmd_ls(int, char **); 141 1.5 tsutsui 142 1.1 tsutsui /* machdep.c */ 143 1.1 tsutsui void straytrap(int); 144 1.1 tsutsui int badaddr(volatile void *); 145 1.1 tsutsui void regdump(int *, int); 146 1.1 tsutsui char *hexstr(int, int); 147 1.1 tsutsui 148 1.1 tsutsui /* prf.c */ 149 1.1 tsutsui int tgetchar(void); 150 1.1 tsutsui 151 1.1 tsutsui /* parse.c */ 152 1.1 tsutsui int check_args(int, char **); 153 1.1 tsutsui int exit_program(int, char **); 154 1.1 tsutsui int parse(int, char **); 155 1.1 tsutsui int getargs(char *, char **, int); 156 1.1 tsutsui 157 1.1 tsutsui /* romcons.c */ 158 1.1 tsutsui void romcnprobe(struct consdev *); 159 1.1 tsutsui void romcninit(struct consdev *); 160 1.1 tsutsui int romcngetc(dev_t); 161 1.1 tsutsui void romcnputc(dev_t, int); 162 1.1 tsutsui 163 1.1 tsutsui /* sc.c */ 164 1.15 tsutsui int scinit(int, void *); 165 1.15 tsutsui struct scsi_inquiry; 166 1.15 tsutsui bool scident(uint, uint, uint, struct scsi_inquiry *, uint32_t *); 167 1.14 tsutsui struct scsi_generic_cdb; 168 1.20 tsutsui int scsi_immed_command(int, int, int, struct scsi_generic_cdb *, uint8_t *, 169 1.1 tsutsui unsigned int); 170 1.20 tsutsui int scsi_request_sense(int, int, int, uint8_t *, unsigned int); 171 1.1 tsutsui int scsi_test_unit_rdy(int, int, int); 172 1.1 tsutsui int scsi_format_unit(int, int, int); 173 1.1 tsutsui int scintr(void); 174 1.1 tsutsui 175 1.1 tsutsui /* scsi.c */ 176 1.1 tsutsui int scsi(int, char **); 177 1.20 tsutsui int scsi_read_raw(u_int, u_int, u_int, uint8_t *, u_int); 178 1.20 tsutsui int scsi_read(u_int, uint8_t *, u_int); 179 1.20 tsutsui int scsi_write(u_int, uint8_t *, u_int); 180 1.1 tsutsui 181 1.1 tsutsui /* screen.c */ 182 1.1 tsutsui int screen(int, char **); 183 1.1 tsutsui 184 1.1 tsutsui /* scsi.c */ 185 1.1 tsutsui int scsi(int, char **); 186 1.1 tsutsui 187 1.1 tsutsui /* sd.c */ 188 1.1 tsutsui int sdstrategy(void *, int, daddr_t, size_t, void *, size_t *); 189 1.1 tsutsui int sdopen(struct open_file *, ...); 190 1.1 tsutsui int sdclose(struct open_file *); 191 1.1 tsutsui 192 1.1 tsutsui /* sio.c */ 193 1.1 tsutsui void _siointr(void); 194 1.1 tsutsui void siocnprobe(struct consdev *); 195 1.1 tsutsui void siocninit(struct consdev *); 196 1.1 tsutsui int siocngetc(dev_t); 197 1.1 tsutsui void siocnputc(dev_t, int); 198 1.1 tsutsui void sioinit(void); 199 1.1 tsutsui 200 1.1 tsutsui /* tape.c */ 201 1.1 tsutsui int tape(int, char **); 202 1.1 tsutsui 203 1.1 tsutsui /* trap.c */ 204 1.1 tsutsui void trap(int, unsigned int, unsigned int, struct frame); 205 1.1 tsutsui 206 1.1 tsutsui /* ufs_disklabel.c */ 207 1.4 tsutsui char *readdisklabel(int, int, struct disklabel *); 208 1.1 tsutsui 209 1.1 tsutsui 210 1.15 tsutsui /* use following device unit number strategy to make parser easier */ 211 1.15 tsutsui #define UNIT(ctlr, target) ((ctlr) * 10 + (target)) 212 1.15 tsutsui #define CTLR(unit) ((unit) / 10) 213 1.15 tsutsui #define TARGET(unit) ((unit) % 10) 214 1.15 tsutsui 215 1.1 tsutsui #define DELAY(n) \ 216 1.1 tsutsui do { \ 217 1.1 tsutsui register int __N = cpuspeed * (n); \ 218 1.1 tsutsui do { \ 219 1.1 tsutsui __asm("subql #1, %0" : "=r" (__N) : "0" (__N)); \ 220 1.1 tsutsui } while (__N > 0); \ 221 1.1 tsutsui } while (/* CONSTCOND */ 0) 222 1.1 tsutsui 223 1.6 tsutsui extern struct fs_ops file_system_disk[]; 224 1.6 tsutsui extern int nfsys_disk; 225 1.1 tsutsui extern struct fs_ops file_system_nfs[]; 226 1.1 tsutsui 227 1.1 tsutsui extern const char bootprog_name[], bootprog_rev[], bootprog_kernrev[]; 228