Fully synchronize sys/boot from FreeBSD-5.x, but add / to the module path
[dragonfly.git] / sys / boot / i386 / btx / lib / btxv86.h
CommitLineData
984263bc
MD
1/*
2 * Copyright (c) 1998 Robert Nordier
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms are freely
6 * permitted provided that the above copyright notice and this
7 * paragraph and the following disclaimer are duplicated in all
8 * such forms.
9 *
10 * This software is provided "AS IS" and without any express or
11 * implied warranties, including, without limitation, the implied
12 * warranties of merchantability and fitness for a particular
13 * purpose.
14 */
15
16/*
17 * $FreeBSD: src/sys/boot/i386/btx/lib/btxv86.h,v 1.5 1999/08/28 00:40:08 peter Exp $
5ee58eed 18 * $DragonFly: src/sys/boot/i386/btx/lib/Attic/btxv86.h,v 1.3 2003/11/10 06:08:35 dillon Exp $
984263bc
MD
19 */
20
21#ifndef _BTXV86_H_
22#define _BTXV86_H_
23
24#include <sys/types.h>
25
26#define V86_ADDR 0x10000 /* Segment:offset address */
27#define V86_CALLF 0x20000 /* Emulate far call */
28#define V86_FLAGS 0x40000 /* Return flags */
29
30struct __v86 {
31 uint32_t ctl; /* Control flags */
32 uint32_t addr; /* Interrupt number or address */
33 uint32_t es; /* V86 ES register */
34 uint32_t ds; /* V86 DS register */
35 uint32_t fs; /* V86 FS register */
36 uint32_t gs; /* V86 GS register */
37 uint32_t eax; /* V86 EAX register */
38 uint32_t ecx; /* V86 ECX register */
39 uint32_t edx; /* V86 EDX register */
40 uint32_t ebx; /* V86 EBX register */
41 uint32_t efl; /* V86 eflags register */
42 uint32_t ebp; /* V86 EBP register */
43 uint32_t esi; /* V86 ESI register */
44 uint32_t edi; /* V86 EDI register */
45};
46
47extern struct __v86 __v86; /* V86 interface structure */
48void __v86int(void);
49
50#define v86 __v86
51#define v86int __v86int
52
53extern u_int32_t __base;
54extern u_int32_t __args;
55
56#define PTOV(pa) ((caddr_t)(pa) - __base)
57#define VTOP(va) ((vm_offset_t)(va) + __base)
58#define VTOPSEG(va) (u_int16_t)(VTOP((caddr_t)va) >> 4)
59#define VTOPOFF(va) (u_int16_t)(VTOP((caddr_t)va) & 0xf)
60
61void __exit(int) __attribute__((__noreturn__));
62void __exec(caddr_t, ...);
63
64#endif /* !_BTXV86_H_ */