| Line |  | 
|---|
| 1 | /* $Id: map.cpp,v 1.1 1999-09-15 23:32:58 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 | int mpioctl(HFILE fd, int func,struct map_ioctl* data) | 
|---|
| 18 | { | 
|---|
| 19 | struct xf86_pmap_param par; | 
|---|
| 20 | struct xf86_pmap_data dta; | 
|---|
| 21 | ULONG len; | 
|---|
| 22 | APIRET rc; | 
|---|
| 23 |  | 
|---|
| 24 | switch (func) { | 
|---|
| 25 | case IOCTL_MAP: | 
|---|
| 26 | par.u.physaddr = data->a.phys; | 
|---|
| 27 | par.size = data->size; | 
|---|
| 28 | rc = DosDevIOCtl(fd, XFREE86_PMAP, PMAP_MAP, | 
|---|
| 29 | (ULONG*)&par, sizeof(par), &len, | 
|---|
| 30 | (ULONG*)&dta, sizeof(dta), &len); | 
|---|
| 31 | if (!rc) data->a.user = (void*)dta.addr; | 
|---|
| 32 | return rc ? -1 : 0; | 
|---|
| 33 | case IOCTL_UMAP: | 
|---|
| 34 | par.u.physaddr = (ULONG)data->a.user; | 
|---|
| 35 | par.size = 0; | 
|---|
| 36 | rc = DosDevIOCtl(fd, XFREE86_PMAP, PMAP_UNMAP, | 
|---|
| 37 | (ULONG*)&par, sizeof(par), &len, | 
|---|
| 38 | NULL, 0, NULL); | 
|---|
| 39 | return rc ? -1 : 0; | 
|---|
| 40 | default: | 
|---|
| 41 | return -1; | 
|---|
| 42 | } | 
|---|
| 43 | } | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.