source: trunk/src/kernel32/map.cpp@ 51

Last change on this file since 51 was 51, checked in by sandervl, 26 years ago

* empty log message *

File size: 1.1 KB
Line 
1/* Copyright (C) 1995 by Holger Veit (Holger.Veit@gmd.de)
2 * Use at your own risk! No Warranty! The author is not responsible for
3 * any damage or loss of data caused by proper or improper use of this
4 * device driver.
5 */
6
7#define INCL_DOS
8#define INCL_DOSDEVICES
9#define INCL_DOSDEVIOCTL
10#include <os2.h>
11
12#include "map.h"
13#include "mapos2.h"
14
15int mpioctl(HFILE fd, int func,struct map_ioctl* data)
16{
17 struct xf86_pmap_param par;
18 struct xf86_pmap_data dta;
19 ULONG len;
20 APIRET rc;
21
22 switch (func) {
23 case IOCTL_MAP:
24 par.u.physaddr = data->a.phys;
25 par.size = data->size;
26 rc = DosDevIOCtl(fd, XFREE86_PMAP, PMAP_MAP,
27 (ULONG*)&par, sizeof(par), &len,
28 (ULONG*)&dta, sizeof(dta), &len);
29 if (!rc) data->a.user = (void*)dta.addr;
30 return rc ? -1 : 0;
31 case IOCTL_UMAP:
32 par.u.physaddr = (ULONG)data->a.user;
33 par.size = 0;
34 rc = DosDevIOCtl(fd, XFREE86_PMAP, PMAP_UNMAP,
35 (ULONG*)&par, sizeof(par), &len,
36 NULL, 0, NULL);
37 return rc ? -1 : 0;
38 default:
39 return -1;
40 }
41}
Note: See TracBrowser for help on using the repository browser.