March 19, 2002 Pointers under Linux | ||||
---|---|---|---|---|
| ||||
HI Can any one tell me how to map 32-bit pointers under linux? I know that in DOSX, you can write *((char *) (_x386_zero_base_address + 0x000a0000)) = 3; In linux, I need to know how to map absolute memory to linear memory so I can use it in my program. I'm using a small compiler "CC" and it seems to not to have a help file. |
March 20, 2002 Re: Pointers under Linux | ||||
---|---|---|---|---|
| ||||
Posted in reply to Imran Haider | Errr... you can't do that. Period. Memory protection doesn't let you do that (I think you might also have some problems under NT with this scheme), unless you use low-level kernel calls to map the video memory into your address space. You can use SVGALIB for this, it's easier. The drawback is that either way, your program will have to be run suid root, which many people consider as a security risk, and don't run such programs (search for exploits in ZGV if you're curious). You could do similar stuff with X Window System, there X Shared Memory extension (used by xquake, for instance), and, even better, DGA (but this also requires suid root programs). However, DGA and SVGALIB programs *might* be a little safer, if you give up the root priviledges ASAP. Other alternative is GGI (http://www.ggi-project.org). IMHO, the best way (and portable amongst various Unices, MacOS and Win32/DirectX) is SDL (http://www.libsdl.org). In either case, it's better to use the mentioned libraries than your own low-level code: it's safer, and faster, since they support hardware acceleration. YMMV... What's CC? Is it a cross-compiler from Win to Linux, or what? What does "CC -v" say? I thought it's some gcc version, but the fact that you have no help files amazes me... Good luck! Laurentiu "Imran Haider" <absolute1008@hotmail.com> wrote in message news:B8BC0EFF.104%absolute1008@hotmail.com... > HI > > Can any one tell me how to map 32-bit pointers under linux? I know that in > DOSX, you can write *((char *) (_x386_zero_base_address + 0x000a0000)) = 3; > In linux, I need to know how to map absolute memory to linear memory so I can use it in my program. I'm using a small compiler "CC" and it seems to not to have a help file. > |
Copyright © 1999-2021 by the D Language Foundation