summaryrefslogtreecommitdiffstats
path: root/private/mvdm/xms.486/xmsmisc.c
blob: 9f15120ec4ac02e644e0348f39e64c0b565743df (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* xmsmisc.c - Misc. Support Functions for himem.
 *
 * xmsSysPageSize
 * xmsQueryExtMem
 *
 * Modification History:
 *
 * Sudeepb 15-May-1991 Created
 */

#include "xms.h"

#include <xmssvc.h>
#include <softpc.h>

extern void UpdateKbdInt15(WORD Seg,WORD Off);

/* xmsSysPageSize - Get the System Page size.
 *
 *
 * Entry - None
 *
 * Exit
 *	   SUCCESS
 *	     Client (AX) = Page Size in bytes
 *
 *	   FAILURE
 *	     Not Valid
 */

VOID xmsSysPageSize (VOID)
{
SYSTEM_INFO SysInfo;

    GetSystemInfo(&SysInfo);

    setAX((USHORT)SysInfo.dwPageSize);

    return;
}



/* xmsQueryExtMem - Get the extended memory for the vdm
 *
 *
 * Entry - None
 *
 * Exit
 *	   SUCCESS
 *	     Client (AX) = Extended Memory in K
 *
 *	   FAILURE
 *	     Not Valid
 */

VOID xmsQueryExtMem (VOID)
{
    setAX((USHORT)(xmsMemorySize));
    return;
}


/* xmsNotifyHookI15 - Informs softpc that someone is hooking I15
 *            - also returns the extended memory for the vdm
 *
 *
 * Entry -   Client (CS:AX) seg:off of new I15 vector
 *
 * Exit
 *         SUCCESS
 *           Client (CX) = Extended Memory in K
 *
 *	   FAILURE
 *	     Not Valid
 */

VOID xmsNotifyHookI15 (VOID)
{
    UpdateKbdInt15(getCS(), getAX());

    setCX((USHORT)(xmsMemorySize));
    return;
}