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

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

Added new logging feature

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