<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2631088963682934208</id><updated>2011-07-30T18:32:44.726-07:00</updated><category term='Unix'/><category term='SOC2009'/><category term='Compil'/><category term='ksyl'/><category term='me'/><category term='Drivers'/><category term='freebsd'/><category term='Kernel'/><category term='zobfs'/><category term='SimpleOs'/><category term='kernel pmbsd'/><category term='Rathaxes'/><category term='hardware pci'/><category term='OldSchool'/><category term='OpenBSD'/><category term='hp2133'/><title type='text'>/dev/syl</title><subtitle type='html'>blog about kernel, BSD and embedded stuff.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-5085371478100157712</id><published>2009-06-11T06:55:00.000-07:00</published><updated>2009-06-24T10:10:07.923-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>Libusb-1.0 in head</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://cache.gizmodo.com/assets/resources/2007/10/doughnut_usb.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 231px; height: 158px;" src="http://cache.gizmodo.com/assets/resources/2007/10/doughnut_usb.jpg" alt="" border="0" /&gt;&lt;/a&gt;Hi everybody,&lt;br /&gt;&lt;br /&gt;thompsa@ has imported my work on libusb-1.0 emulation into head. Feel free to test and report me any bugs :)&lt;br /&gt;&lt;br /&gt;FYI isochronous and interrupt transfers are not supported for the moment (in reality not yet tested).&lt;br /&gt;&lt;br /&gt;If you want some code example of libusb-1.0 you can have a look at the testing programs that I used to validate this library &lt;a href="http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/projects/soc2009/syl_usb/src/lib/libusb&amp;amp;HIDEDEL=NO"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I will try to send a mail to freebsd-ports@ to update the package which used libusb-1.0.&lt;br /&gt;&lt;br /&gt;Feel free to mail me or freebsd-usb@ if you have any question on libusb-1.0 emulation.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-5085371478100157712?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/5085371478100157712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=5085371478100157712' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/5085371478100157712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/5085371478100157712'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2009/06/libusb-10-in-head.html' title='Libusb-1.0 in head'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-7594893090886340903</id><published>2009-05-23T01:43:00.000-07:00</published><updated>2009-05-23T01:45:25.223-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOC2009'/><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>coding begins</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm1.static.flickr.com/13/14530246_21061b69c6.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 310px; height: 232px;" src="http://farm1.static.flickr.com/13/14530246_21061b69c6.jpg" alt="" border="0" /&gt;&lt;/a&gt;Hi,&lt;br /&gt;&lt;br /&gt;The summer of code begins today.&lt;br /&gt;&lt;br /&gt;I've already received goods from Google. The first one is an account on acm :) The second one is in Memphis for the moment and it is my prepaid card with 500$ with google stickers :)&lt;br /&gt;&lt;br /&gt;Concerning the code for freebsd, I've already started to work on libusb-1.0 and I have nearly implemented it due to the graceful help of Hans Petter Selasky \o/.&lt;br /&gt;&lt;br /&gt;If someone would test or have a look at the libusb-1.0 emulation into FreeBSD just go &lt;a href="http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/projects/soc2009/syl_usb/src/lib/libusb&amp;amp;HIDEDEL=NO"&gt;there&lt;/a&gt;. It is all the files prefixed by libusb10. I will try to finish the libusb-1.0 support soon to go into the kernel :)&lt;br /&gt;&lt;br /&gt;Cheers,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-7594893090886340903?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/7594893090886340903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=7594893090886340903' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/7594893090886340903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/7594893090886340903'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2009/05/coding-begins.html' title='coding begins'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm1.static.flickr.com/13/14530246_21061b69c6_t.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-5711276711854636530</id><published>2009-04-22T00:36:00.001-07:00</published><updated>2009-04-30T13:38:49.812-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><title type='text'>FreeBSD Google Summer of Code</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://code.google.com/images/2009socwithlogo.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 300px; height: 200px;" src="http://code.google.com/images/2009socwithlogo.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Hi,&lt;br /&gt;&lt;br /&gt;Just a little post to tell you that I will participate in the fifth google Summer of Code for the FreeBSD project. My work will focus on USB.&lt;br /&gt;&lt;br /&gt;If you want some news on my subject you can find them on the FreeBSD &lt;a href="http://wiki.freebsd.org/SummerOfCode2009Projects"&gt;wiki &lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;This project will probably freeze the current PMBSD development and all my other little projects during the summer time.&lt;br /&gt;&lt;br /&gt;I will try to put news of the google Summer of Code on this blog when I have the time during the Summer.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-5711276711854636530?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/5711276711854636530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=5711276711854636530' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/5711276711854636530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/5711276711854636530'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2009/04/freebsd-google-summer-of-code.html' title='FreeBSD Google Summer of Code'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-478631493121861763</id><published>2009-04-06T04:50:00.000-07:00</published><updated>2009-04-30T13:45:38.823-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='hp2133'/><title type='text'>FreeBSD current Xorg and hp2133</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://gutocarvalho.net/wordpress/wp-content/uploads/2008/09/431px-xorg_logosvg.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 295px; height: 237px;" src="http://gutocarvalho.net/wordpress/wp-content/uploads/2008/09/431px-xorg_logosvg.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Hi,&lt;br /&gt;&lt;br /&gt;I've had some difficulties with xorg installation on the hp2133. This installation is not trivial so if you don't manage to do it,  you can follow this howto :)&lt;br /&gt;&lt;br /&gt;You need to have an updated ports source tree. If you don't have any /usr/ports directory you need to do that :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;cd /usr/&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;cvs -danoncvs@anoncvs.fr.freebsd.org:/home/ncvs checkout -P ports.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;you already have an /usr/ports dir you only need to update :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;cd /usr/ports&lt;/span&gt; &lt;span style="font-style: italic;"&gt;cvs update -Pd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now let's compile Xorg :&lt;br /&gt;&lt;br /&gt;cd /usr/ports/x11/xorg&lt;br /&gt;make &amp;amp;&amp;amp; make install.&lt;br /&gt;&lt;br /&gt;You can have some problem to compile it with randr, to fix it you can do this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;cd /usr/ports/x11/randrproto/&lt;/span&gt; &lt;span style="font-style: italic;"&gt;make &amp;amp;&amp;amp; make deinstall &amp;amp;&amp;amp; make install&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;&lt;br /&gt;cd /usr/ports/x11/libXrandr/&lt;/span&gt; &lt;span style="font-style: italic;"&gt;make &amp;amp;&amp;amp; make deinstall &amp;amp;&amp;amp; make install&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;&lt;br /&gt;cd /usr/ports/x11/xrandr/&lt;/span&gt; &lt;span style="font-style: italic;"&gt;make &amp;amp;&amp;amp; make deinstall &amp;amp;&amp;amp; make install&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;&lt;br /&gt;cd /usr/ports/x11/xorg/&lt;/span&gt; &lt;span style="font-style: italic;"&gt;make &amp;amp;&amp;amp; make install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now you have xorg installed, but if you try to launch it with a startx your laptop hangs. You need to update the openchrome driver from the openchrome directory:&lt;br /&gt;&lt;br /&gt;cd ~/&lt;br /&gt;make code&lt;br /&gt;cd code&lt;br /&gt;svn co http://svn.openchrome.org/svn/trunk/&lt;br /&gt;cd trunk/&lt;br /&gt;./autogen.sh --prefix=/usr/X11R6&lt;br /&gt;make &amp;amp;&amp;amp; make install&lt;br /&gt;&lt;br /&gt;Now you have a working X but the mouse and the keyboard don't respond... You need to enable in your rc.conf the dbus and hal:&lt;br /&gt;&lt;br /&gt;echo hald_enable=YES &gt;&gt; /etc/rc.conf&lt;br /&gt;echo dbus_enable=YES &gt;&gt; /etc/rc.conf&lt;br /&gt;&lt;br /&gt;Now averything works fine.&lt;br /&gt;&lt;br /&gt;HTH,&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-478631493121861763?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/478631493121861763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=478631493121861763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/478631493121861763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/478631493121861763'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2009/04/freebsd-current-xorg-and-hp2133.html' title='FreeBSD current Xorg and hp2133'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-1367426561347791589</id><published>2009-04-06T04:32:00.000-07:00</published><updated>2009-04-30T13:46:07.966-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='hp2133'/><title type='text'>Install FreeBSD current on hp2133</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.maximumpc.com/files/u46168/hp-2133-mininote.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 282px; height: 229px;" src="http://www.maximumpc.com/files/u46168/hp-2133-mininote.jpg" alt="" border="0" /&gt;&lt;/a&gt;Hi,&lt;br /&gt;&lt;br /&gt;Last week, I tried to install FreeBSD current on my hp2133. I had some problems to install it so here is how I did it.&lt;br /&gt;&lt;br /&gt;First this laptop has no cdrom, so I installed FreeBSD on it with an usbkey. You need to take another laptop with a FreeBSD and checkout the sources :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;cd /usr&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;cvs -danoncvs@anoncvs.fr.freebsd.org:/home/ncvs checkout -P src&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After that you have to build the system for the usb key:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;make buildworld&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;make buildkernel KERNCONF="GENERIC"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When the userland and the kernel are compiled you need to prepare the usb disk :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;fsdisk -I /dev/da0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;fdisk -B /dev/da0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;bsdlabel -w /dev/da0s1a auto&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;bsdlabel -B /dev/da0s1a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;newfs /dev/da0s1a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;mount /dev/da0s1a /mnt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now the disk is mounted &amp;amp; you need to install  the binaries on it:&lt;br /&gt;&lt;br /&gt;make installworld DESTDIR=/mnt&lt;br /&gt;make installkernel DESTDIR=/mnt KERNCONF="GENERIC"&lt;br /&gt;make distrib-dirs DESTDIR=/mnt&lt;br /&gt;make distribution DESTDIR=/mnt&lt;br /&gt;echo /dev/da0s1a / ufs rw 1 1 &gt; /mnt/etc/fstab&lt;br /&gt;echo hostname="myname" &gt; /mnt/rc.conf&lt;br /&gt;cp -fr /usr/src /mnt/usr/.&lt;br /&gt;&lt;br /&gt;Now you can boot with the usb key on the hp2133. Warning: during the bootloader you must boot in failsafe mode, because there are an apic problem on current with the laptop...&lt;br /&gt;&lt;br /&gt;When you have booted you can log with the root account without password. Now you need to recompile the userland and the kernel but instead installing it on da you can do it on ad (your disk drive) :&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;make buildworld&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;make buildkernel KERNCONF="GENERIC"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;fsdisk -I /dev/ad0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;fdisk -B /dev/ad0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;bsdlabel -w /dev/ad0s1a auto&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;bsdlabel -B /dev/ad0s1a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;newfs /dev/ad0s1a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;mount /dev/ad0s1a /mnt&lt;br /&gt;&lt;/span&gt;make installworld DESTDIR=/mnt&lt;br /&gt;make installkernel DESTDIR=/mnt KERNCONF="GENERIC"&lt;br /&gt;make distrib-dirs DESTDIR=/mnt&lt;br /&gt;make distribution DESTDIR=/mnt&lt;br /&gt;&lt;span style="font-style: italic;"&gt;cp /etc/rc.conf /etc/fstab /mnt/etc&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Now you can remove your usb key and boot on your hp2133 drive :)&lt;br /&gt;&lt;br /&gt;HTH&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-1367426561347791589?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/1367426561347791589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=1367426561347791589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/1367426561347791589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/1367426561347791589'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2009/04/install-freebsd-current-on-hp2133.html' title='Install FreeBSD current on hp2133'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-3669691794026782314</id><published>2009-03-24T02:11:00.001-07:00</published><updated>2009-04-30T13:38:31.134-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kernel'/><title type='text'>AT91SAM9261-EK on FreeBSD.</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.freebsdnews.net/wp-content/uploads/freebsd_vistaincapable.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 250px; height: 300px;" src="http://www.freebsdnews.net/wp-content/uploads/freebsd_vistaincapable.png" alt="" border="0" /&gt;&lt;/a&gt;Hi everybody.&lt;br /&gt;&lt;br /&gt;Its been a couple of  days thatI am trying to port the at91sam9261 SoC on FreebSD and the AT91SAM9261 Evalution Kit.&lt;br /&gt;&lt;br /&gt;After two or three day of debugging and developing I finished to boot the card and to have a sexy dmesg that hang on the NFS init. (that's normal because I haven't got implemented the ethernet driver card yet).&lt;br /&gt;&lt;br /&gt;If you want some other information about the at91sam9261ek board you can find the datasheets of its SoC &lt;a href="http://atmel.com/dyn/resources/prod_documents/doc6242.pdf"&gt;here&lt;/a&gt;, its schematics &lt;a href="http://atmel.com/dyn/resources/prod_documents/doc6198.pdf"&gt;here&lt;/a&gt; and a picture of this board &lt;a href="http://www.at91.com/windows4sam/pub/Windows4SAM/GettingStarted/9261_board_presentation.png"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You can find the dmesg &lt;a href="http://rathaxes.org/%7Esyl/FreeBSD/dmesg-at91sam9261ek.png"&gt;here&lt;/a&gt;, the patch &lt;a href="http://rathaxes.org/%7Esyl/FreeBSD/at91sam9261ek-FreeBSD-patch"&gt;here&lt;/a&gt; and follow the submit on mailling list &lt;a href="http://marc.info/?l=freebsd-arm&amp;amp;m=123783989612142&amp;amp;w=2"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you have any question about this patch and want to mail me about it, you're welcome :)&lt;br /&gt;&lt;br /&gt;See you in a next post :)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-3669691794026782314?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/3669691794026782314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=3669691794026782314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/3669691794026782314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/3669691794026782314'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2009/03/at91sam9261-ek-on-freebsd.html' title='AT91SAM9261-EK on FreeBSD.'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-4181872927828900266</id><published>2009-02-22T08:20:00.001-08:00</published><updated>2009-02-22T08:46:28.917-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware pci'/><title type='text'>PCI</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ocmodshop.com/images/reviews/video_cards/visiontek_x1300_pci/thumb_x1300_pci_08.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 324px; height: 247px;" src="http://www.ocmodshop.com/images/reviews/video_cards/visiontek_x1300_pci/thumb_x1300_pci_08.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Hello.&lt;br /&gt;&lt;br /&gt;This week we are going to talk about PCI. PCI has from 0 up to 254 buses. On each bus you can have devices (maximum 32). The device can have many functions (up to 8). These functions could be useful if you are using a device which has multiple functionality. For example a Video acquisition card could have a function 0 for video acquisition and a function 1 for sound acquisition, etc etc... Some systems, like Linux have some abstraction over pci to handle big super computer configuration that has more than 256 pci. For that they use domains of buses which can have 256 buses each.&lt;br /&gt;&lt;br /&gt;Each PCI slot has four interrupts possible (One per interrupt pin (A to D)).&lt;br /&gt;&lt;br /&gt;PCI configuration space.&lt;br /&gt;  &lt;br /&gt;For a set of bus:device:functions you have a trame of 256 bits of data. This trame is called configuration space. the config space looks like :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_gV4MDZ-4nLw/SaF8ujw44mI/AAAAAAAAAS0/1gSnvvDo7mQ/s1600-h/650px-Pci-config-space.svg.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 295px;" src="http://2.bp.blogspot.com/_gV4MDZ-4nLw/SaF8ujw44mI/AAAAAAAAAS0/1gSnvvDo7mQ/s320/650px-Pci-config-space.svg.png" alt="" id="BLOGGER_PHOTO_ID_5305658975335277154" border="0" /&gt;&lt;/a&gt;Warning PCI registers are always little endian.&lt;br /&gt;&lt;br /&gt;All the values present in this 256 bits chunk can be read or written (I think that some value are just read-only like the vendor ID or product ID).&lt;br /&gt;&lt;br /&gt;Base address is an interesting value because it helps us to know the type of registers (IOports or memory). It helps us to know where the registers start in memory or iospace and where it ends.&lt;br /&gt;&lt;br /&gt;For irq the line is present in the 60th bit of the chunk. This bit is set to 0 if the device doesn't support IRQ.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-4181872927828900266?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/4181872927828900266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=4181872927828900266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/4181872927828900266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/4181872927828900266'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2009/02/pci.html' title='PCI'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_gV4MDZ-4nLw/SaF8ujw44mI/AAAAAAAAAS0/1gSnvvDo7mQ/s72-c/650px-Pci-config-space.svg.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-802538898353896206</id><published>2009-02-06T04:30:00.000-08:00</published><updated>2009-03-14T06:30:57.251-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kernel pmbsd'/><title type='text'>PMBSD</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://scienceblogs.com/omnibrain/upload/2007/06/01-Pigeon.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 247px; height: 214px;" src="http://scienceblogs.com/omnibrain/upload/2007/06/01-Pigeon.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;Hello,&lt;br /&gt;&lt;br /&gt;You can find &lt;a href="http://pmbsd.blogspot.com/"&gt;here&lt;/a&gt;, my newblog specialised in the project Pigeon Mouette BSD.&lt;br /&gt;&lt;br /&gt;If you have free time and have interest in kernel or driver development contact me; pmbsd needs more hackers to be operational.&lt;br /&gt;&lt;br /&gt;For the moment pmbsd is in version 0.1 but will have an userland for the version 0.3.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-802538898353896206?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/802538898353896206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=802538898353896206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/802538898353896206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/802538898353896206'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2009/02/pmbsd.html' title='PMBSD'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-2539804333014679312</id><published>2008-08-24T02:15:00.000-07:00</published><updated>2008-11-09T08:42:01.504-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Compil'/><category scheme='http://www.blogger.com/atom/ns#' term='Kernel'/><title type='text'>PCC C extensions</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.cs.utsa.edu/%7Ewagner/CS5363/compiler_large.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://www.cs.utsa.edu/%7Ewagner/CS5363/compiler_large.gif" alt="" border="0" /&gt;&lt;/a&gt;Hi,&lt;br /&gt;&lt;br /&gt;It's been a while that I wanted to know how PCC (Portable C Compiler)   works . So I decided to use it for ksyl (my own educational kernel). I've been thinking that if pcc compiles the whole userland of OpenBSD and whole kernelland with some patches, then it must work with my own kernel :)&lt;br /&gt;&lt;br /&gt;The first step for me is to fetch the source of pcc on my desktop and I am lucky because the source tree of my OS has it. So I just need to checkout pcc and compile it:&lt;br /&gt;&lt;br /&gt;cvs -danoncvs.de.openbsd.org:/cvs co -P src/usr.bin/pcc&lt;br /&gt;cd src/usr.bin/pcc&lt;br /&gt;make depend &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&lt;br /&gt;&lt;br /&gt;Now I ve got a pcc binary and a cpp binary in /usr/local/bin/. So I need to fix the CC var in the ksyl Makefile :&lt;br /&gt;&lt;br /&gt;CC = /usr/local/bin/pcc.&lt;br /&gt;&lt;br /&gt;Everything seems to be ok, now I will try to compile ksyl :&lt;br /&gt;&lt;br /&gt;ksyl@rincewind {4}&gt;  make&lt;br /&gt;&lt;br /&gt;And then appears the first error :&lt;br /&gt;&lt;br /&gt;include/./sys/gdt.h, line 15: syntax error&lt;br /&gt;include/./sys/gdt.h, line 15: invalid function definition&lt;br /&gt;include/./sys/gdt.h, line 15: syntax error&lt;br /&gt;include/./sys/gdt.h, line 21: syntax error&lt;br /&gt;include/./sys/gdt.h, line 21: invalid function definition&lt;br /&gt;include/./sys/gdt.h, line 21: redeclaration of packed&lt;br /&gt;include/./sys/gdt.h, line 21: syntax error&lt;br /&gt;include/./386/idt.h, line 26: syntax error&lt;br /&gt;include/./386/idt.h, line 26: invalid function definition&lt;br /&gt;include/./386/idt.h, line 26: redeclaration of packed&lt;br /&gt;include/./386/idt.h, line 26: syntax error&lt;br /&gt;include/./386/idt.h, line 32: syntax error&lt;br /&gt;include/./386/idt.h, line 32: invalid function definition&lt;br /&gt;include/./386/idt.h, line 32: redeclaration of packed&lt;br /&gt;include/./386/idt.h, line 32: syntax error&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;These errors came from the different gcc extentions needed to do packing like __attribute__((packed)). The packing of the structure included into gdt.h and idt.h allowed ksyl to work properly. Thus I googled "pcc packing" to find a solution without success to finally.... have a look in pcc sources. I found the solution in the pcc &lt;a href="http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/pcc/ccom/scan.l?rev=1.6;content-type=text%2Fplain"&gt;lexer&lt;/a&gt;. I must used a pragma :&lt;br /&gt;&lt;br /&gt;#pagma pack(1)&lt;br /&gt;struct idt&lt;br /&gt;{&lt;br /&gt;    ...&lt;br /&gt;};&lt;br /&gt;#pragma pack&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;After the patch I try to compile it :&lt;br /&gt; &lt;br /&gt;ksyl@rincewind {4}&gt;  make&lt;br /&gt; ksyl -&gt; compilation OK&lt;br /&gt;&lt;br /&gt;All works \o/&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-2539804333014679312?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/2539804333014679312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=2539804333014679312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/2539804333014679312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/2539804333014679312'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/08/pcc-c-extensions.html' title='PCC C extensions'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-4324358989317036941</id><published>2008-05-20T04:47:00.000-07:00</published><updated>2009-03-14T06:32:34.910-07:00</updated><title type='text'>syscalls...</title><content type='html'>&lt;img style="margin: 0px 10px 10px 0px; float: left; width: 200px;" alt="" src="http://icanhascheezburger.files.wordpress.com/2007/03/its-a-trap.jpg" border="0" /&gt;Hello everybody.&lt;br /&gt;&lt;br /&gt;TUHS (The Unix heritage society) guys are very impressive.&lt;br /&gt;&lt;br /&gt;During the last two days Warren Toomey has been talking about syscall implementation in Unix V1. There are the following 33 syscalls :&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;V1_RELE 0 /* release the CPU, i.e. pre-empt this process */&lt;br /&gt;V1_EXIT 1 exit()&lt;br /&gt;V1_FORK 2 fork()&lt;br /&gt;V1_READ 3 read()&lt;br /&gt;V1_WRITE 4 write()&lt;br /&gt;V1_OPEN 5 open()&lt;br /&gt;V1_CLOSE 6 close()&lt;br /&gt;V1_WAIT 7 wait()&lt;br /&gt;V1_CREAT 8 open(path, O_CREAT O_TRUNC O_WRONLY, mode);&lt;br /&gt;V1_LINK 9 link()&lt;br /&gt;V1_UNLINK 10 unlink()&lt;br /&gt;V1_EXEC 11 exec()&lt;br /&gt;V1_CHDIR 12 chdir()&lt;br /&gt;V1_TIME 13 gettimeofday()&lt;br /&gt;V1_MKDIR 14 mkdir()&lt;br /&gt;V1_CHMOD 15 chmod()&lt;br /&gt;V1_CHOWN 16 chown()&lt;br /&gt;V1_BREAK 17 brk()&lt;br /&gt;V1_STAT 18 stat()&lt;br /&gt;V1_SEEK 19 lseek()&lt;br /&gt;V1_TELL 20 lseek(fd, 0, SEEK_CUR);&lt;br /&gt;V1_MOUNT 21 mount()&lt;br /&gt;V1_UMOUNT 22 umount()&lt;br /&gt;V1_SETUID 23 setuid()&lt;br /&gt;V1_GETUID 24 getuid()&lt;br /&gt;V1_STIME 25 settimeofday()&lt;br /&gt;V1_QUIT 26 signal(SIGQUIT,...)&lt;br /&gt;V1_INTR 27 signal(SIGINT,...)&lt;br /&gt;V1_FSTAT 28 fstat()&lt;br /&gt;V1_CEMT 29 signal(SIGEMT,...)&lt;br /&gt;V1_SMDATE 30 utimes()&lt;br /&gt;V1_STTY 31 fcntl(), tcsetattr()&lt;br /&gt;V1_GTTY 32 fcntl(), tcgetattr()&lt;br /&gt;V1_ILGINS 33 signal(SIGILL,...)&lt;br /&gt;&lt;br /&gt;With it Unix v1 offers :&lt;br /&gt;&lt;br /&gt;- a multitasking system with up to 16 processes&lt;br /&gt;- multiple users- a hierachical filesystem, with empty directories used as mountpoints&lt;br /&gt;- read/write file protection for user/other (no group), plus the execute and set-userid bits&lt;br /&gt;- i-nodes, and filenames separated from i-nodes, allowing hard links&lt;br /&gt;- device files&lt;br /&gt;&lt;br /&gt;It's amazing that modern Unices operating systems keep being unchanged since 1971 (37 years) :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-4324358989317036941?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/4324358989317036941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=4324358989317036941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/4324358989317036941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/4324358989317036941'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/05/syscalls.html' title='syscalls...'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-4827684977689869190</id><published>2008-05-01T11:57:00.001-07:00</published><updated>2008-08-24T02:14:05.847-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drivers'/><title type='text'>USB Conference</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://espegizmo.com/wp-content/uploads/2007/09/img_3160_usb-logo.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://espegizmo.com/wp-content/uploads/2007/09/img_3160_usb-logo.jpg" alt="" border="0" /&gt;&lt;/a&gt;Hi guys,&lt;br /&gt;&lt;br /&gt;I did a conference on usb architecture and development at Epitech on Wenesday 30 april.&lt;br /&gt;&lt;br /&gt;The conferance was cool, and some people ask me to post my slides on my blog. So I do it &lt;a href="http://parisbug.org/%7Esyl/USB%20-%20LSE.ppt"&gt;here&lt;/a&gt; :)&lt;br /&gt;&lt;br /&gt;The slide is not very verbose, but perhaps some people are going to used it one day.&lt;br /&gt;&lt;br /&gt;ps :  some part of the slide are thiefed on beyonlogic and it s very interesting and helpfull &lt;a href="http://www.beyondlogic.org/usbnutshell/usb1.htm"&gt;usb in a nutshell.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-4827684977689869190?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/4827684977689869190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=4827684977689869190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/4827684977689869190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/4827684977689869190'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/05/usb-conference.html' title='USB Conference'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-2006771731172240746</id><published>2008-04-23T00:44:00.000-07:00</published><updated>2008-08-24T02:15:46.821-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><category scheme='http://www.blogger.com/atom/ns#' term='OldSchool'/><title type='text'>nostalgie</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.thisshirtrocks.com/productphotos/old_school_cpu_close_display.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://www.thisshirtrocks.com/productphotos/old_school_cpu_close_display.jpg" alt="" border="0" /&gt;&lt;/a&gt;Hi everybody,&lt;br /&gt;&lt;br /&gt;I found this pdf which seem to be very funny. Someone was talking about it this night on THUS. So for those who don't know this paper have a good time reading it:)&lt;br /&gt;&lt;a href="http://www.bitsavers.org/pdf/bellLabs/unix/PreliminaryUnixImplementationDocument_Jun72.pdf"&gt;linkofthedead&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.bitsavers.org/pdf/bellLabs/unix/UNIX_ProgrammersManual_Nov71.pdf"&gt;manofthedead&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-2006771731172240746?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/2006771731172240746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=2006771731172240746' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/2006771731172240746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/2006771731172240746'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/04/nostalgie.html' title='nostalgie'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-447411672427484179</id><published>2008-03-29T06:18:00.000-07:00</published><updated>2008-03-30T14:48:23.580-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='ksyl'/><title type='text'>Ksyl is alive</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blogofwishes.com/wp-content/uploads/2006/08/panic-button2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://blogofwishes.com/wp-content/uploads/2006/08/panic-button2.jpg" alt="" border="0" /&gt;&lt;/a&gt;Hi everybody,&lt;br /&gt;&lt;br /&gt;Let me introduce you ksyl. Ksyl is a simply, educational and monolithic kernel.&lt;br /&gt;&lt;br /&gt;I have started it one month ago and I am going to continue to work on it to try to understand the way it basically works.&lt;br /&gt;&lt;br /&gt;At this moment the version 0.0.0.1 of ksyl has just been released and can just boot. It contains a bootloader in asm, and a little kernel in C.&lt;br /&gt;&lt;br /&gt;The kernel just contains  a very simple gdt and idt management, the begining of a vga driver and a big while(42).&lt;br /&gt;&lt;br /&gt;I will try in my future post to describe all the parts of ksyl and how it works :)&lt;br /&gt;&lt;br /&gt;See you soon!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-447411672427484179?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/447411672427484179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=447411672427484179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/447411672427484179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/447411672427484179'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/03/ksyl-is-alive.html' title='Ksyl is alive'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-414808785412264801</id><published>2008-03-04T07:12:00.001-08:00</published><updated>2008-05-01T12:10:28.339-07:00</updated><title type='text'>rathaxes lkm</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/en/8/87/Kernel-simple.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://upload.wikimedia.org/wikipedia/en/8/87/Kernel-simple.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Hi everyone.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;I've got some news about the rathaxes project. The first one is that we have achieved the first step named : Loadable Kernel Module.&lt;br /&gt;&lt;br /&gt;We have described how to develop lkm on the four main platforms : OpenBSD, MacOSX 10.5, Linux and Windows Xp into a paper in destination at language team. You can download this paper &lt;a href="http://parisbug.org/%7Esyl/lkm.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The language team has worked on our paper and has implemented the lkm generation. We are now able to generate kernel driver with this simple syntax :&lt;br /&gt;&lt;br /&gt;&lt;pre class="wiki"&gt;DEVICE&lt;br /&gt;{&lt;br /&gt; NAME = my_device;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;INSTANCIATE&lt;br /&gt;{&lt;br /&gt;NAME = my_device;&lt;br /&gt;ARCH = macOS;&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I will repost some news about rathaxes as soon as intersting change arrives. To follow the rathaxes project advancement click &lt;a href="http://www.rathaxes.org/"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-414808785412264801?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/414808785412264801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=414808785412264801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/414808785412264801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/414808785412264801'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/03/rathaxes-lkm.html' title='rathaxes lkm'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-7823133617481349904</id><published>2008-01-28T05:05:00.000-08:00</published><updated>2008-02-08T08:48:58.111-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='Drivers'/><title type='text'>xnu uio api</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.applesource.com.au/wp-content/uploads/2007/08/darwin.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px;" src="http://www.applesource.com.au/wp-content/uploads/2007/08/darwin.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;Hello guys,&lt;br /&gt;&lt;br /&gt;Since few days I implement a simple rs232 driver on Darwin. But during this implementation I have got some understand problem about a data structure.&lt;br /&gt;&lt;br /&gt;Today I will introduce you a part of the kpi : the struct uio and a lot of conveniance functions about uio. And this api is the sources of my past problems. But after my explication I will seem dumb because uio is very simple to understand and to implement.&lt;br /&gt;&lt;br /&gt;Uio what s that ? Its simply a api to work with data buffer. Which is the relationship between the rs232 and the struct uio? The functions pointer you ll need to implement to register your driver use uio (like the read or write). Why is this destabilizing? because the struct uio is defined like that in the uio header :&lt;br /&gt;&lt;br /&gt;struct uio;&lt;br /&gt;&lt;br /&gt;So we don't know the members of that structure. Why apple does that? Because they want to be  able to change the code managing this data without the change of all the code using this api.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;an uio is a container of iovec. It can have one iovec or a collections of iovec. The iovec contains data. the iovec structure looks like :&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;struct&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;iovec &lt;/div&gt;&lt;div style="text-align: justify;"&gt;{&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;void&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;*iov_base; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;size_t&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;iov_len; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;}&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#ffffff;"&gt;&lt;span class="Apple-style-span" style="color: rgb(211, 24, 149);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color:#ffffff;"&gt;&lt;span class="Apple-style-span" style="color: rgb(211, 24, 149);"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This API offers some functions to work on uio containing just one iovec :&lt;br /&gt;&lt;br /&gt;void uio_setresid( uio_t a_uio, user_ssize_t a_value );&lt;br /&gt;int uio_rw( uio_t a_uio );&lt;br /&gt;void uio_setrw( uio_t a_uio, int a_value );&lt;br /&gt;int uio_isuserspace( uio_t a_uio );&lt;br /&gt;&lt;br /&gt;for collections of data  uio struct can work with this fuctions :&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;int uio_iovcnt( uio_t a_uio );&lt;br /&gt;uio_t uio_create( int a_iovcount, off_t a_offset, int a_spacetype, int a_iodirection );&lt;br /&gt;void uio_reset( uio_t a_uio, off_t a_offset, int a_spacetype, int a_iodirection ); &lt;br /&gt;uio_t uio_duplicate( uio_t a_uio );&lt;br /&gt;void uio_free( uio_t a_uio );&lt;br /&gt;void uio_update( uio_t a_uio, user_size_t a_count );&lt;br /&gt;user_ssize_t uio_resid( uio_t a_uio );&lt;br /&gt;&lt;br /&gt;int uio_iovcnt( uio_t a_uio );&lt;br /&gt;off_t uio_offset( uio_t a_uio );&lt;br /&gt;void uio_setoffset( uio_t a_uio, off_t a_offset );&lt;br /&gt;user_addr_t uio_curriovbase( uio_t a_uio );&lt;br /&gt;user_size_t uio_curriovlen( uio_t a_uio );&lt;br /&gt;int uio_addiov( uio_t a_uio, user_addr_t a_baseaddr, user_size_t a_length );&lt;br /&gt;int uio_getiov(uio_t a_uio, int a_index, user_addr_t *a_baseaddr_p, &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;   user_size_t * a_length_p );&lt;br /&gt;off_t uio_offset( uio_t a_uio );&lt;br /&gt;void uio_setoffset( uio_t a_uio, off_t a_offset );&lt;br /&gt;&lt;br /&gt;My rs232 driver read and write exemple :&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;**    Serial read, read one byte from the device&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;int                    serial_read(dev_t dev, struct uio *uio, int ioflag)&lt;br /&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;struct device    *current;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;int                len;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;int                rlen;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;char            buff[1];&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;int                size= 1;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;int                i;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;*buff = 0;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;if (uio_rw(uio) != UIO_READ)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;return (EINVAL);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;if (minor(dev) &gt;= MAX_PORTS)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;return (ENXIO);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;current = &amp;amp;serial[minor(dev)];&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;if (!(current-&gt;attached))&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;return (EBUSY);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;len = uio_resid(uio);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;rlen = MIN(size, len);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;for (i = 0; i &lt;&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 255, 255); font-family: Monaco; font-size: 10px; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia; font-size: 16px; "&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{ &lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;while(((inb(current-&gt;port + LSR)) &amp;amp; 0x01) == 0);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;buff[i] = inb(current-&gt;port + RECEIVER);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;uiomove(buff, rlen, uio);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;printf(DEVICE_NAME " READ\n");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;return KERN_SUCCESS;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;**    Serial write, write n bytes to the device&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;int                    serial_write(dev_t dev, struct uio *uio, int ioflag)&lt;br /&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;struct device    *current;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;int                len;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;char            *buff;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;int                i;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;if (uio_rw(uio) != UIO_WRITE)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;return (EINVAL);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;if (minor(dev) &gt;= MAX_PORTS)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;return (ENXIO);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;current = &amp;amp;serial[minor(dev)];&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;if (!(current-&gt;attached))&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;return (EBUSY);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;len = uio_resid(uio);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;MALLOC(buff, char *, len * sizeof(*buff), M_WAITOK|M_ZERO, M_TEMP);&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;if ((uiomove(buff, len, uio)) != 0)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;printf(DEVICE_NAME "KPI error");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;return KERN_FAILURE;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;for (i = 0 ; i &lt; style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{                 &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;while((inb(current-&gt;port + LSR) &amp;amp; 0x20) == 0);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;outb(current-&gt;port + TRANSMITTER, buff[i]);&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;FREE(buff, M_WAITOK|M_ZERO);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;printf(DEVICE_NAME " WRITE\n");&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;return KERN_SUCCESS;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-7823133617481349904?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/7823133617481349904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=7823133617481349904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/7823133617481349904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/7823133617481349904'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/01/xnu-uio-api.html' title='xnu uio api'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-5412277558841736252</id><published>2008-01-23T08:30:00.000-08:00</published><updated>2008-01-23T15:07:11.417-08:00</updated><title type='text'>Unix V7</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_gV4MDZ-4nLw/R5fIS1Gf0yI/AAAAAAAAAF0/7P1S6olTPv4/s1600-h/raw.php.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_gV4MDZ-4nLw/R5fIS1Gf0yI/AAAAAAAAAF0/7P1S6olTPv4/s200/raw.php.gif" alt="" id="BLOGGER_PHOTO_ID_5158812123993723682" border="0" /&gt;&lt;/a&gt;Hello,&lt;br /&gt;&lt;br /&gt;I found &lt;a href="http://minnie.tuhs.org/pipermail/tuhs/2007-October/001599.html"&gt;here&lt;/a&gt; a mail of mr nordier who says "hey I made the x86 V7 port do you want it".&lt;br /&gt;&lt;br /&gt;Grrr I need more time to read interesting sources like these. If you want to see the &lt;a href="http://www.nordier.com/v7x86/download.html"&gt;Project Page.&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-5412277558841736252?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/5412277558841736252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=5412277558841736252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/5412277558841736252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/5412277558841736252'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/01/unix-v7.html' title='Unix V7'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_gV4MDZ-4nLw/R5fIS1Gf0yI/AAAAAAAAAF0/7P1S6olTPv4/s72-c/raw.php.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-1193461942692919829</id><published>2008-01-04T00:04:00.000-08:00</published><updated>2008-01-04T00:10:21.067-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='me'/><title type='text'>Paid to do kernel land stuff</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_gV4MDZ-4nLw/R33o3tCZyOI/AAAAAAAAAEg/MWkTTcf0Reg/s1600-h/raw.php.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_gV4MDZ-4nLw/R33o3tCZyOI/AAAAAAAAAEg/MWkTTcf0Reg/s200/raw.php.gif" alt="" id="BLOGGER_PHOTO_ID_5151529592461838562" border="0" /&gt;&lt;/a&gt;Since the 5th of November I start my new job at Adeneo and it's the first time in my life where I was paid to do kernel land stuff :)&lt;br /&gt;&lt;/div&gt;&lt;div class="entry_description entry_description-image entry_description-image-gif"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;The first step job this is a one month formation on Windows CE 6.0 and diverse embedded cpus. Before my first day I'd just have some bad feeling about CE development because it wasn't unix kernel development, but when the formation start I realize that I was totally wrong. This job is really interesting for a lot of reasons:&lt;br /&gt;&lt;br /&gt;- Co-Workers seems to be good workers and C lovers. They are a great source of information.&lt;br /&gt;- With a very quick and interesting formation this permits me to learn a lot of things in just two weeks...&lt;br /&gt;- CE6.0 permits to browse all of the kernel land and user land source, and it s funny to read the ie or cmd sources :)&lt;br /&gt;- The code I have to realize is not ugly like some C# or another ugly, sad or insane thing. It's just C, C++ or asm. It was some code very near the hardware.&lt;br /&gt;- I start my work on a atmel chip that was an architecture very different from the ugly x86.&lt;br /&gt;- CE permit me to see another kernel code implementation. With that I can find better code abstraction in driver development.&lt;br /&gt;- I can continue my personal development in unix and free software and continue to work on some project or create new one...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Links:&lt;a href="http://www.adeneo-embedded.com/srt/en/home"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.adeneo-embedded.com/srt/en/home"&gt;Adeneo Website&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/embedded/aa731407.aspx"&gt;Windows embedded developper center&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Windows_CE"&gt;wiki on winCE&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-1193461942692919829?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/1193461942692919829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=1193461942692919829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/1193461942692919829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/1193461942692919829'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/01/since-5th-of-november-i-start-my-new.html' title='Paid to do kernel land stuff'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_gV4MDZ-4nLw/R33o3tCZyOI/AAAAAAAAAEg/MWkTTcf0Reg/s72-c/raw.php.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-5560303758697883262</id><published>2008-01-03T23:54:00.001-08:00</published><updated>2008-01-04T00:04:08.768-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SimpleOs'/><category scheme='http://www.blogger.com/atom/ns#' term='Kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='Drivers'/><title type='text'>advancement on sos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_gV4MDZ-4nLw/R33m59CZyNI/AAAAAAAAAEY/l8lJ3Xhm7Nc/s1600-h/raw.php.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_gV4MDZ-4nLw/R33m59CZyNI/AAAAAAAAAEY/l8lJ3Xhm7Nc/s200/raw.php.jpg" alt="" id="BLOGGER_PHOTO_ID_5151527432093288658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;" class="entry_description entry_description-image entry_description-image-jpeg"&gt;A little new post to keep you aware of the advancement of the sos framebuffer driver.&lt;br /&gt;&lt;br /&gt;Right now, Buckman and I have finished the vm86 driver, allowing us to call 16bits bios interrupts from kernel land. Thanks to this vm we will be able to call the vesa functions, reachable only through 16 bit modes.&lt;br /&gt;&lt;br /&gt;Bios interrupts are called just like in this piece of code, that allows us to get some infromation from the VBE:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: rgb(51, 0, 0);"&gt; vbe_info_block_t                *get_vbe_info()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;        vbe_info_block_t              *vbe;&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;        sos_vm86_t                    regs;&lt;/span&gt;  &lt;br /&gt;    &lt;span style="color: rgb(51, 0, 0);"&gt;    memset(&amp;amp;regs, 0, sizeof(sos_vm86_t));&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(51, 0, 0);"&gt;regs.service = 0x10;&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;  &lt;br /&gt;        regs.ax = VBE_INFO;&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;  &lt;br /&gt;        regs.es = SOS_VM86_SEGMENT;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(51, 0, 0);"&gt;regs.di = vbe = sos_vm86_malloc(sizeof(*vbe));&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(51, 0, 0);"&gt;strzcpy(vbe-&gt;vbe_signature, "VBE2", 4);&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;  &lt;br /&gt;        sos_vm86_bioscall(&amp;amp;regs);&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(51, 0, 0);"&gt;return (vbe);&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;&lt;br /&gt;}&lt;/span&gt;   &lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;In a first time we will memset the structure to be sure it is initialised to 0. Then we will fill the vm86 structure with the data corresponding to interruption 0x10 and the data for this interruption in the virtual registers ax es and di. And then we call the function sos_vm86_bioscall that wraps around the interrupt. The data structure sos_vm86_t is defined as :&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;typedef struct&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(51, 0, 0);"&gt;    sos_ui8_t     service;   /* Numero de l interruption a appeler*/&lt;/span&gt;   &lt;span style="color: rgb(51, 0, 0);"&gt;  &lt;br /&gt;        sos_ui16_t    ax;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(51, 0, 0);"&gt;    sos_ui16_t    bx;&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;      &lt;br /&gt;        sos_ui16_t    cx;         &lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;  &lt;br /&gt;        sos_ui16_t    dx;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(51, 0, 0);"&gt;sos_ui16_t    si;           &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;sos_ui16_t    di;                  &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;sos_ui16_t    es;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(51, 0, 0);"&gt;sos_ui16_t    ds;   &lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt; }      sos_vm86_t;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;In a second time we coded the vesa driver wich is a simple set of convenience functions. Here is the exhaustive list of vesa functions prototypes :&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: rgb(51, 0, 0);"&gt; void                                 init_vesa(sos_ui16_t mode);&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;&lt;br /&gt;vbe_info_block_t          *get_vbe_info();&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;&lt;br /&gt;void                                              map_lfb(mode_info_block_t *mib);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt; void                                              set_display(sos_ui16_t mode);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt; mode_info_block_t     *get_mib_info(sos_ui16_t mode, vbe_info_block_t *vbe);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt; sos_bool_t                            is_mode_usable( sos_ui16_t mode, vbe_info_block_t *vbe);&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;&lt;br /&gt;void                                              vesa_clear_screen(mode_info_block_t *mib, sos_ui32_t color);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;void                                 vesa_draw_rect(sos_ui32_t startx, sos_ui32_t starty, sos_ui32_t  &lt;br /&gt;                                                                       height, sos_ui32_t width, mode_info_block_t *mib,&lt;br /&gt;                                                                       sos_ui32_t color);&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;&lt;br /&gt;void                                 vesafont_draw_text(const char* s, sos_ui32_t x, sos_ui32_t y,&lt;br /&gt;                                                                              sos_ui32_t fg, sos_ui32_t bg,&lt;br /&gt;                                                                              mode_info_block_t *mib);&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;&lt;br /&gt;void                                              vesa_draw_bitmap(sos_ui32_t x, sos_ui32_t y, sos_vaddr_t *img);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt; void                                              vesa_plot_pixel(sos_ui32_t x, sos_ui32_t y, mode_info_block_t *mib,&lt;br /&gt;                                                                      sos_ui32_t color);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;It represents our virtual machine with a set of register and the id of the interrupt to call.&lt;br /&gt;&lt;br /&gt;For the moment, we still have to work on the tty driver and the chardev /dev/fb.&lt;br /&gt;&lt;br /&gt;To be concluded...&lt;/div&gt;&lt;div style="clear: both;"&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-5560303758697883262?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/5560303758697883262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=5560303758697883262' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/5560303758697883262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/5560303758697883262'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/01/advancement-on-sos.html' title='advancement on sos'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_gV4MDZ-4nLw/R33m59CZyNI/AAAAAAAAAEY/l8lJ3Xhm7Nc/s72-c/raw.php.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-7403559608751911358</id><published>2008-01-03T23:50:00.000-08:00</published><updated>2008-01-03T23:53:04.968-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SimpleOs'/><category scheme='http://www.blogger.com/atom/ns#' term='Kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='Drivers'/><title type='text'>Implement a framebuffer on SOS</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_gV4MDZ-4nLw/R33lq9CZyMI/AAAAAAAAAEQ/scAl624YBZY/s1600-h/raw.php.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_gV4MDZ-4nLw/R33lq9CZyMI/AAAAAAAAAEQ/scAl624YBZY/s200/raw.php.jpg" alt="" id="BLOGGER_PHOTO_ID_5151526074883623106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Matthieu bucchianeri (buckman) and I started this Monday 15th of October the portage of a framebuffer on SoS[1].&lt;br /&gt;&lt;/div&gt;&lt;div class="entry_description entry_description-image entry_description-image-jpeg"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;This ports contains 3 great parts:&lt;br /&gt; - The vm86 driver&lt;br /&gt; - The vbe driver&lt;br /&gt; - The vesatty driver&lt;br /&gt;&lt;br /&gt;The vm86 driver permits to do bioscall in protected mode. This driver was finish and works fine :).&lt;br /&gt;&lt;br /&gt;The vbe driver is a set of conveniences functions to set the config of the fb to map the memory of the db , to get vbe structure etc... This driver is completed at 75%. We have a mystical bug because our driver works fine on qemu but doesn t work on a GeForce2 with vbe3 support....&lt;br /&gt;&lt;br /&gt;The last driver permits to replace the current console print by a framebuffer print but it is not yet started.&lt;br /&gt;&lt;br /&gt;We took contact with the sos' developers to know if they wan't our kernel patch and a new article for GNU/Linux magazine. I will keep you informed about the advancement of this project.&lt;br /&gt;&lt;/div&gt;&lt;a href="http://sos.enix.org/fr/PagePrincipale"&gt;&lt;br /&gt;[1]&lt;/a&gt;&lt;a href="http://sos.enix.org/fr/PagePrincipale"&gt;SimpleOS&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-7403559608751911358?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/7403559608751911358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=7403559608751911358' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/7403559608751911358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/7403559608751911358'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/01/implement-framebuffer-on-sos.html' title='Implement a framebuffer on SOS'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_gV4MDZ-4nLw/R33lq9CZyMI/AAAAAAAAAEQ/scAl624YBZY/s72-c/raw.php.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-8164925468046763268</id><published>2008-01-03T23:45:00.000-08:00</published><updated>2008-01-03T23:50:05.630-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='zobfs'/><category scheme='http://www.blogger.com/atom/ns#' term='Kernel'/><title type='text'>zobfs</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_gV4MDZ-4nLw/R33k79CZyLI/AAAAAAAAAEI/oxgEdj3xWlQ/s1600-h/raw.php.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_gV4MDZ-4nLw/R33k79CZyLI/AAAAAAAAAEI/oxgEdj3xWlQ/s200/raw.php.jpg" alt="" id="BLOGGER_PHOTO_ID_5151525267429771442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The goal of the evilkittens October coding party for Filth and me was to create our first filesystem : the zobfs.&lt;br /&gt;&lt;br /&gt;What is zobfs? Simply a port from scratch of a fat32 fs on OpenBSD. The aim of zobfs is to learn and understand how we can develop a filesystem on our favorite operating system.&lt;br /&gt;&lt;br /&gt;We based our dev on some documentation about the fat32 specs and some OBSD fs howto:&lt;br /&gt;&lt;a href="http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx"&gt;&lt;br /&gt;fat32&lt;/a&gt;&lt;br /&gt;                                               &lt;a href="http://www.glot.net/pub/openbsd-filesystem-howto/filesystem-howto.pdf"&gt;Doc Open&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Our project have a free CVS hosting offered by veins on evilkittens and you can browse the source on this cvsweb :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.evilkittens.org/cgi-bin/cvsweb/zobfs/?cvsroot=projects"&gt;cvsweb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I hope we'll have finished this project for December. And I promise you a simple and sexy paper under LateX which explains how we implement this fs :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-8164925468046763268?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/8164925468046763268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=8164925468046763268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/8164925468046763268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/8164925468046763268'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/01/zobfs.html' title='zobfs'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_gV4MDZ-4nLw/R33k79CZyLI/AAAAAAAAAEI/oxgEdj3xWlQ/s72-c/raw.php.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-2099955669672568291</id><published>2008-01-03T23:42:00.000-08:00</published><updated>2008-01-03T23:44:20.469-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='me'/><title type='text'>my new job</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_gV4MDZ-4nLw/R33jrtCZyKI/AAAAAAAAAEA/anHTSDce3Nc/s1600-h/raw.php.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_gV4MDZ-4nLw/R33jrtCZyKI/AAAAAAAAAEA/anHTSDce3Nc/s200/raw.php.jpg" alt="" id="BLOGGER_PHOTO_ID_5151523888745269410" border="0" /&gt;&lt;/a&gt;Hello, I'm writing a new post to talk about my hypothetical new job at Adeneo.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Do you now what is a BSP. A BSP is a Board support package, that means a package of file needed to port an os on a new architecture.&lt;br /&gt;&lt;br /&gt;Why do I talk about BSP? Because my future job possibly concerns it. I will certainly work for the R&amp;amp;D of Adeneo to make the State-of-the-art of the differents BSP. When I will have finish the research job I will made some papers about it and perhaps start to think about a BSP generator.&lt;br /&gt;&lt;br /&gt;With the Driver generator and the Stack Ip generator, this third project ensures the idea that the two next years should be generation years :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-2099955669672568291?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/2099955669672568291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=2099955669672568291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/2099955669672568291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/2099955669672568291'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/01/my-new-job.html' title='my new job'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_gV4MDZ-4nLw/R33jrtCZyKI/AAAAAAAAAEA/anHTSDce3Nc/s72-c/raw.php.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2631088963682934208.post-5837215290936761771</id><published>2008-01-03T08:49:00.000-08:00</published><updated>2008-01-03T09:14:27.490-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='Drivers'/><category scheme='http://www.blogger.com/atom/ns#' term='Rathaxes'/><title type='text'>Rataxes</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_gV4MDZ-4nLw/R30Sb9CZyGI/AAAAAAAAADg/0xCadcYkZKo/s1600-h/rino.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_gV4MDZ-4nLw/R30Sb9CZyGI/AAAAAAAAADg/0xCadcYkZKo/s200/rino.jpg" alt="" id="BLOGGER_PHOTO_ID_5151293820232124514" border="0" /&gt;&lt;/a&gt;In the epitech cursus we have to realize a project named PFE (end of curses project). That s why we created rathaxes.&lt;br /&gt;&lt;/div&gt;&lt;div class="entry_description entry_description-image entry_description-image-jpeg"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;br /&gt;Rathaxes &lt;1&gt; will be  a multi platform driver generator. This idea hinges around the fact that developping drivers is a difficult task because it requires developpement skills and electronic ones. Moreover the driver's specific code of an operating system is huge (about 70% for Linux) and this code is more buggy than other applications (7 times more).&lt;br /&gt;&lt;br /&gt;To start we are going to use laurent reveillere's works and his thesis ''Approche  langage au développement de pilotes de périphériques robustes" &lt;2&gt;. In this thesis, reveillere introduces the DSL/Driver concept. A DSL stands for Domain Specific Language,  it is like SQL  for the domain of databases.&lt;br /&gt;&lt;br /&gt;For this project we will be helped by the LSE (System Laboratory of Epita) during the next two years&lt;3&gt; and his chief Lionel Auroux.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Liens :&lt;br /&gt;&lt;br /&gt;&lt;1&gt; &lt;a href="http://www.rataxes.eu/"&gt;Rathaxes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;2&gt; &lt;span style="text-decoration: underline;"&gt;&lt;a href="http://www.inria.fr/rrrt/tu-0992.html"&gt;Thesis&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;3&gt; &lt;a href="http://www.lse.epita.fr/"&gt;LSE&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.rathaxes.eu/"&gt;&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2631088963682934208-5837215290936761771?l=devsyl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://devsyl.blogspot.com/feeds/5837215290936761771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2631088963682934208&amp;postID=5837215290936761771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/5837215290936761771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2631088963682934208/posts/default/5837215290936761771'/><link rel='alternate' type='text/html' href='http://devsyl.blogspot.com/2008/01/rataxes.html' title='Rataxes'/><author><name>Sylvestre Gallon</name><uri>http://www.blogger.com/profile/03263670669187164584</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_gV4MDZ-4nLw/ShAvJt0pfXI/AAAAAAAAAU4/G4k0XxAab04/S220/Photo+2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_gV4MDZ-4nLw/R30Sb9CZyGI/AAAAAAAAADg/0xCadcYkZKo/s72-c/rino.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
