source: trunk/doc/html/embedporting.html

Last change on this file was 190, checked in by rudi, 14 years ago

reference documentation added

File size: 4.4 KB
RevLine 
[190]1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<!-- /home/espenr/tmp/qt-3.3.8-espenr-2499/qt-x11-free-3.3.8/doc/embporting.doc:36 -->
3<html>
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
6<title>Issues to be aware of when porting Qt/Embedded</title>
7<style type="text/css"><!--
8fn { margin-left: 1cm; text-indent: -1cm; }
9a:link { color: #004faf; text-decoration: none }
10a:visited { color: #672967; text-decoration: none }
11body { background: #ffffff; color: black; }
12--></style>
13</head>
14<body>
15
16<table border="0" cellpadding="0" cellspacing="0" width="100%">
17<tr bgcolor="#E5E5E5">
18<td valign=center>
19 <a href="index.html">
20<font color="#004faf">Home</font></a>
21 | <a href="classes.html">
22<font color="#004faf">All&nbsp;Classes</font></a>
23 | <a href="mainclasses.html">
24<font color="#004faf">Main&nbsp;Classes</font></a>
25 | <a href="annotated.html">
26<font color="#004faf">Annotated</font></a>
27 | <a href="groups.html">
28<font color="#004faf">Grouped&nbsp;Classes</font></a>
29 | <a href="functions.html">
30<font color="#004faf">Functions</font></a>
31</td>
32<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>Issues to be aware of when porting Qt/Embedded</h1>
33
34
35
36<p> Qt/Embedded is designed to be reasonably platform-independent. The
37only publically available version is a Linux implementation. The
38following dependencies will need to be addressed if you intend to port
39to another operating system (files that you need to modify are listed
40at the end of each section):
41<p> <ul>
42<p> <li> <b>System V IPC</b> (shared memory and semaphores) is used to share
43window regions between client and server. You will need to provide
44something similar unless you want a single-application setup (i.e.
45running only one program, which is the server). System V semaphores
46are also used for synchronising access to the framebuffer.
47<p> Modify <tt>qwindowsystem_qws.cpp</tt>, <tt>qwsregionmanager_qws.cpp</tt>, <tt>qapplication_qws.cpp</tt>, and <tt>qlock_qws.cpp</tt>.
48<p> <li> <b>Unix-domain sockets</b> are used to communicate things like
49keyboard events, requests to raise windows and QCOP messages between
50applications. Again, you will need to provide something similar unless
51you want a single-application setup. It should be possible to
52implement something like this using message queues or similar
53mechanisms; with the exception of QCOP messages (which are generated
54by client applications and not Qt/Embedded) individual messages should
55be no more than a few bytes in length.
56<p> Modify <tt>qwssocket_qws.cpp</tt>.
57<p> <li> <b>The Linux framebuffer device</b> is used to map in the drawing
58area. You will need to replace it (by creating a new class of <a href="qscreen.html">QScreen</a>)
59with something else giving a byte pointer to a memory-mapped
60framebuffer, plus information about width, height and bit depth (which
61most likely you can simply hard-code). If your framebuffer is not
62memory-mapped or is in an unsupported format or depth you will need to
63modify QGfxRaster as well.
64<p> Modify <tt>qgfxlinuxfb_qws.cpp</tt>.
65<p> <li> <b>The accelerated drivers</b> currently use the Linux QScreen and use
66<tt>/proc/bus/pci</tt> to map in PCI config space. However, these are only
67example drivers; you will probably need to write your own driver in
68any case, and you will need to provide your own way to map in control
69registers.
70<p> Modify <tt>qgfxmach64_qws.cpp</tt>, <tt>qgfxvoodoo_qws.cpp</tt> and <tt>qgfxmatrox_qws.cpp</tt>.
71<p> <li> <b>Sound</b> uses a Linux <tt>/dev/dsp</tt> style device. If you want to use
72the Qt/Embedded sound server you'll need to reimplement it.
73<p> Modify <tt>qsoundqss_qws.cpp</tt>.
74<p> <li> <b>select()</b> is used to implement QSocketDevices and listen for
75events to/from the Qt/Embedded server application.
76<p> Modify <tt>qapplication_qws.cpp</tt>.
77<p> </ul>
78<p> Qt/Embedded makes use of the standard C library and some Posix functions.
79Mostly the latter are concentrated in platform dependent code anyway
80(e.g. mmap() to map in the Linux framebuffer).
81<p>
82<!-- eof -->
83<p><address><hr><div align=center>
84<table width=100% cellspacing=0 border=0><tr>
85<td>Copyright &copy; 2007
86<a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a>
87<td align=right><div align=right>Qt 3.3.8</div>
88</table></div></address></body>
89</html>
Note: See TracBrowser for help on using the repository browser.