]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/pc98/pc98/pc98_machdep.h
This commit was generated by cvs2svn to compensate for changes in r154182,
[FreeBSD/FreeBSD.git] / sys / pc98 / pc98 / pc98_machdep.h
1 /*-
2  * Copyright (c) KATO Takenori, 1996.  All rights reserved.
3  * 
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer as
9  *    the first lines of this file unmodified.
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. The name of the author may not be used to endorse or promote products
14  *    derived from this software without specific prior written permission.
15  * 
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  *
27  * $FreeBSD$
28  */
29
30 #ifndef __PC98_PC98_PC98_MACHDEP_H__
31 #define __PC98_PC98_PC98_MACHDEP_H__
32
33 void    pc98_init_dmac(void);
34 unsigned int    pc98_getmemsize(unsigned *, unsigned *);
35
36 struct  ccb_calc_geometry;
37 int     scsi_da_bios_params(struct ccb_calc_geometry *);
38
39 #define PC98_VECTOR_SIZE                        (0x400)
40 #define PC98_SYSTEM_PARAMETER_SIZE              (0x230)
41
42 #define PC98_SAVE_AREA(highreso_flag)   (0xa1000)
43 #define PC98_SAVE_AREA_ADDRESS          (0x10)
44
45 #if defined(_KERNEL) && !defined(LOCORE)
46 /* BIOS parameter block */
47 extern unsigned char    pc98_system_parameter[]; /* in locore.c */
48 #define OFS_BOOT_boothowto              0x210
49 #define OFS_BOOT_bootdev                0x214
50 #define OFS_BOOT_cyloffset              0x218
51 #define OFS_WD_BIOS_SECSIZE(i)  (0x200+(i)*6)
52 #define OFS_WD_BIOS_NCYL(i)             (0x202+(i)*6)
53 #define OFS_WD_BIOS_HEAD(i)             (0x205+(i)*6)
54 #define OFS_WD_BIOS_SEC(i)              (0x204+(i)*6)
55 #define OFS_pc98_machine_type   0x220
56 #define OFS_epson_machine_id    0x224
57 #define OFS_epson_bios_id               0x225
58 #define OFS_epson_system_type   0x226
59
60 #define PC98_SYSTEM_PARAMETER(x) pc98_system_parameter[(x)-0x400]
61 #define BOOT_boothowto (*(unsigned long*)(&pc98_system_parameter[OFS_BOOT_boothowto]))
62 #define BOOT_bootdev   (*(unsigned long*)(&pc98_system_parameter[OFS_BOOT_bootdev]))
63 #define BOOT_cyloffset (*(unsigned long*)(&pc98_system_parameter[OFS_BOOT_cyloffset]))
64 #define WD_BIOS_SECSIZE(i) (*(unsigned short*)(&pc98_system_parameter[OFS_WD_BIOS_SECSIZE(i)]))
65 #define WD_BIOS_NCYL(i) (*(unsigned short*)(&pc98_system_parameter[OFS_WD_BIOS_NCYL(i)]))
66 #define WD_BIOS_HEAD(i) (pc98_system_parameter[OFS_WD_BIOS_HEAD(i)])
67 #define WD_BIOS_SEC(i) (pc98_system_parameter[OFS_WD_BIOS_SEC(i)])
68 #define pc98_machine_type (*(unsigned long*)&pc98_system_parameter[OFS_pc98_machine_type])
69 #define epson_machine_id        (pc98_system_parameter[OFS_epson_machine_id])
70 #define epson_bios_id           (pc98_system_parameter[OFS_epson_bios_id])
71 #define epson_system_type       (pc98_system_parameter[OFS_epson_system_type])
72
73 # define PC98_TYPE_CHECK(x)     ((pc98_machine_type & (x)) == (x))
74
75 /*
76  * EPSON machine list
77  */
78 #define EPSON_PC386_NOTE_A      0x20
79 #define EPSON_PC386_NOTE_W      0x22
80 #define EPSON_PC386_NOTE_AE     0x27
81 #define EPSON_PC386_NOTE_WR     0x2a
82 #define EPSON_PC486_GR          0x2b
83 #define EPSON_PC486_P           0x30
84 #define EPSON_PC486_GR_SUPER    0x31
85 #define EPSON_PC486_GR_PLUS     0x32
86 #define EPSON_PC486_HX          0x34
87 #define EPSON_PC486_HG          0x35
88 #define EPSON_PC486_SE          0x37
89 #define EPSON_PC486_SR          0x38
90 #define EPSON_PC486_HA          0x3b
91
92 #endif /* _KERNEL */
93
94 #endif /* __PC98_PC98_PC98_MACHDEP_H__ */