<?xml version="1.0"?>
<rdf:RDF
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:foaf="http://xmlns.com/foaf/0.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns="http://purl.org/rss/1.0/"
>
<channel rdf:about="http://planet.freebsdish.org/guests">
	<title>Planet FreeBSD Guests</title>
	<link>http://planet.freebsdish.org/guests</link>
	<description>Planet FreeBSD Guests - http://planet.freebsdish.org/guests</description>

	<items>
		<rdf:Seq>
			<rdf:li rdf:resource="http://blogs.freebsdish.org/anderson/2008/08/24/sicko/" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-648914743219937380.post-6056551174260261914" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-648914743219937380.post-3327180615824702651" />
			<rdf:li rdf:resource="http://blogs.freebsdish.org/anderson/2008/03/17/now-hiring/" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-648914743219937380.post-3050483446321954132" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-648914743219937380.post-40408879002020905" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-648914743219937380.post-2903140644445029498" />
			<rdf:li rdf:resource="http://blogs.freebsdish.org/anderson/2007/11/27/puffs-for-freebsd/" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-648914743219937380.post-5078145622768139670" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-648914743219937380.post-9063330924153813768" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-648914743219937380.post-4064282434764762806" />
			<rdf:li rdf:resource="http://blogs.freebsdish.org/anderson/2007/10/19/freebsd-cross-reference-online/" />
			<rdf:li rdf:resource="http://blogs.freebsdish.org/anderson/2007/10/14/utility-file-systems/" />
		</rdf:Seq>
	</items>
</channel>

<item rdf:about="http://blogs.freebsdish.org/anderson/2008/08/24/sicko/">
	<title>Eric Anderson: Sicko</title>
	<link>http://blogs.freebsdish.org/anderson/2008/08/24/sicko/</link>
	<content:encoded>&lt;p&gt;I just finished watching the movie &#8216;Sicko&#8217;.  Makes me sad to see the United States in is such a poor position health care wise.  Why does Cuba have a better health care system than USA?  That makes no sense, and it pisses me off.  Why are the healthcare companies destroying our nation?  Is it worth the money?  I guess it must be.&lt;/p&gt;</content:encoded>
	<dc:date>2008-08-25T03:49:42+00:00</dc:date>
	<dc:creator>anderson</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-648914743219937380.post-6056551174260261914">
	<title>Oleksandr Tymoshenko: The Joy of Bugbusting</title>
	<link>http://bsddev.blogspot.com/2008/06/joy-of-bugbusting.html</link>
	<content:encoded>While waiting for MIPS toolchain import to happen I entertain myself with bugbusting. You should try it sometime. GNATS jungle, small and large bugs are sneaking around, scent of rotten emails in the air. I don't feel like hunting down large bugs. They're dangerous beasts. It's much better to deal with small ones. Pick a (one|two|three|up-to-twenty)-liner and fix it. Then you can bring it home, varnish it and eventually MFC it. Nice outdoor activity for developers :) &lt;br /&gt;PS&lt;br /&gt;The first PR I've nailed: &lt;a href=&quot;http://www.freebsd.org/cgi/query-pr.cgi?pr=123685&quot;&gt;kern/123685&lt;/a&gt;.</content:encoded>
	<dc:date>2008-06-11T14:11:00+00:00</dc:date>
	<dc:creator>noreply@blogger.com (Oleksandr Tymoshenko)</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-648914743219937380.post-3327180615824702651">
	<title>Oleksandr Tymoshenko: bsddev blog SitRep</title>
	<link>http://bsddev.blogspot.com/2008/05/bsddev-blog-sitrep.html</link>
	<content:encoded>Long time no blog. Many things have happened during last 6 months: I got a commit bit, FreeBSD/MIPS reached multiuser and started migration from P4 to CVS. Right now we're waiting for toolchain patches to be imported to contrib/binutils properly. So let's prepare to celebrate buildable FreeBSD/MIPS world in a couple of weeks! Meanwhile I'm busy with getting latest zaptel (they changed name to DAHDI, actually) drivers to FreeBSD and a couple of side a&#1089;tivities like digging into aio code from OpenSolaris/Linux/FreeBSD. Hope to blog more regularly now. Stay tuned.</content:encoded>
	<dc:date>2008-05-29T14:36:00+00:00</dc:date>
	<dc:creator>noreply@blogger.com (Oleksandr Tymoshenko)</dc:creator>
</item>
<item rdf:about="http://blogs.freebsdish.org/anderson/2008/03/17/now-hiring/">
	<title>Eric Anderson: Now Hiring&#8230;</title>
	<link>http://blogs.freebsdish.org/anderson/2008/03/17/now-hiring/</link>
	<content:encoded>&lt;p&gt;The startup I work for is looking for a few good software people. &#160;Both locations are in Austin, TX (USA).Here&amp;#8217;s our wish-list of experience for the positions:
&lt;p&gt;Embedded&lt;/p&gt;
&lt;p&gt;A BSCS degree and 5+ years of experience writing C language&lt;/p&gt;
&lt;p&gt;Experience with x86 and MIPS assembly language&lt;/p&gt;
&lt;p&gt;Experience with low level drivers for networking devices as Ethernet MAC/Phy and switches&lt;/p&gt;
&lt;p&gt;Experience with Compact flashes programming algorithms&lt;/p&gt;
&lt;p&gt;Experience with Manufacturing Diagnostics drivers&lt;/p&gt;
&lt;p&gt;Experience with HDD/SSD low level drivers&lt;/p&gt;
&lt;p&gt;Experience with OS like Linux&lt;/p&gt;
&lt;p&gt;Experience with RTOS like VxWorks&lt;/p&gt;
&lt;p&gt;Experience on multithread management and IPC&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;OS&lt;/p&gt;
&lt;p&gt;A BSCS degree and 5+ years of experience writing C language&lt;/p&gt;
&lt;p&gt;Experience with x86 and MIPS assembly language&lt;/p&gt;
&lt;p&gt;Experience with OS Linux environment&lt;/p&gt;
&lt;p&gt;Experience with RTOS like VxWorks&lt;/p&gt;
&lt;p&gt;Experience with IP/TCP stack like FreeBSD&lt;/p&gt;
&lt;p&gt;Experience with Routing Protocols&lt;/p&gt;
&lt;p&gt;Experience with Device Driver Programming&lt;/p&gt;
&lt;p&gt;Experience with Routers, Switches, Proxies and Firewalls&lt;/p&gt;
&lt;p&gt;Experience with Storage Protocols as NFS and CIFS and File Systems&lt;/p&gt;
&lt;p&gt;Experience on storage related drivers in a Linux environment&#160;&#160;No relocation available..Contact me directly if interested.&lt;/p&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2008-03-18T02:35:10+00:00</dc:date>
	<dc:creator>anderson</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-648914743219937380.post-3050483446321954132">
	<title>Oleksandr Tymoshenko: NY gift from Juniper</title>
	<link>http://bsddev.blogspot.com/2007/12/ny-gift-from-juniper.html</link>
	<content:encoded>Juniper released FreeBSD/MIPS port to public. There are no references to JNPR-specific hardware pieces but a lot of mature code for generic MIPS devices that mips2 tree lacks: VM/pmap, libc, FPU support. Nice gift, thanks JNPR!</content:encoded>
	<dc:date>2007-12-28T14:57:00+00:00</dc:date>
	<dc:creator>noreply@blogger.com (Oleksandr Tymoshenko)</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-648914743219937380.post-40408879002020905">
	<title>Oleksandr Tymoshenko: RB532 progress</title>
	<link>http://bsddev.blogspot.com/2007/12/rb532-progress.html</link>
	<content:encoded>This weekend I spent writing driver for IDT RC32434 on-board Ethernet adapter. Weird hobby, isn't it? Writing NIC drivers is new to me so I shared my time between reading if_XX sources, reading IDT specs and writing my own code. Task turned out easier then it appeared and 15 minutes ago I managed to mount root over NFS using kr0 interface. Time to get some beer and celebrate!</content:encoded>
	<dc:date>2007-12-09T19:37:00+00:00</dc:date>
	<dc:creator>noreply@blogger.com (Oleksandr Tymoshenko)</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-648914743219937380.post-2903140644445029498">
	<title>Oleksandr Tymoshenko: Mikrotik RB532 - single user mode.</title>
	<link>http://bsddev.blogspot.com/2007/12/mikrotik-rb532-single-user-mode.html</link>
	<content:encoded>Today I managed to get shell prompt on Mikrotik's Routerboard 532. So now we have 3 platforms with single user mode for FreeBSD/mips, not very useful :)  The last problem was getting high-level console interface working. I always fell lost when it comes to resource allocation and uart stuff. I should write a couple of posts on these subjects to memorize all details better.</content:encoded>
	<dc:date>2007-12-01T23:38:00+00:00</dc:date>
	<dc:creator>noreply@blogger.com (Oleksandr Tymoshenko)</dc:creator>
</item>
<item rdf:about="http://blogs.freebsdish.org/anderson/2007/11/27/puffs-for-freebsd/">
	<title>Eric Anderson: PUFFS for FreeBSD?</title>
	<link>http://blogs.freebsdish.org/anderson/2007/11/27/puffs-for-freebsd/</link>
	<content:encoded>&lt;p&gt;I&amp;#8217;ve been considering porting PUFFS (NetBSD&amp;#8217;s kernel implementation of FUSE) along with reFUSE (the library that goes along with PUFFS) to FreeBSD.&#160; I wonder what the interest is in this?&lt;/p&gt;</content:encoded>
	<dc:date>2007-11-27T13:18:29+00:00</dc:date>
	<dc:creator>anderson</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-648914743219937380.post-5078145622768139670">
	<title>Oleksandr Tymoshenko: INTR_FAST and selwakeup</title>
	<link>http://bsddev.blogspot.com/2007/11/intrfast-and-selwakeup.html</link>
	<content:encoded>I stumbled over this problem a couple of years ago, ignored it, was punished for my carelessness, came out with hackerish solution and now I know &quot;The Right Way&quot; to solve this issue. So, the headache starts when you're trying to wakeup userland application polling on a descriptor from INTR_FAST IRQ handler (for 7.X and later that would be interrupt filter). INTR_FAST/interrupt filter  routines are usually used for timing-critical tasks and run in IRQ dispatcher context, so no operations that may cause context switch are allowed in this code. Unfortunately &lt;a href=&quot;http://www.freebsd.org/cgi/man.cgi?query=selwakeup&amp;apropos=0&amp;sektion=0&amp;manpath=FreeBSD+7-current&amp;format=html&quot;&gt;selwakeup(9)&lt;/a&gt; tries to acquire sellock that leads to a possible context switch and leaves us in a total mess. My solution was handmade kernel thread that has been running through list of channels and performed all dirty work, not the cleanest and easiest to maintain code. &quot;Zaptel-bsd take 2&quot; utilizes &lt;a href=&quot;http://www.freebsd.org/cgi/man.cgi?query=taskqueue&amp;apropos=0&amp;sektion=0&amp;manpath=FreeBSD+7-current&amp;format=html&quot;&gt;taskqueue(9)&lt;/a&gt; interface to work around IRQ handler limitations. There is handler routine:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;static void &lt;br /&gt;handle_selwakeup(void *context, int pending) &lt;br /&gt;{&lt;br /&gt;    struct selinfo *sel = context;&lt;br /&gt;    selwakeup(sel);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;then selinfo/task structures for every channel:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;...&lt;br /&gt;    /* thingy for select stuff */&lt;br /&gt;    struct selinfo  sel;    &lt;br /&gt;    struct task     selwakup_task;&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;which should be initialized during channel allocation:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;...&lt;br /&gt;    TASK_INIT(&amp;amp;chan-&gt;selwakup_task, 0, &lt;br /&gt;        handle_selwakeup, &amp;amp;chan-&gt;sel);&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and used anytime we'd like to call selwakeup:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;...&lt;br /&gt;    taskqueue_enqueue_fast(taskqueue_fast, &lt;br /&gt;        &amp;amp;timer-&gt;selwakup_task);&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;</content:encoded>
	<dc:date>2007-11-25T13:22:00+00:00</dc:date>
	<dc:creator>noreply@blogger.com (Oleksandr Tymoshenko)</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-648914743219937380.post-9063330924153813768">
	<title>Oleksandr Tymoshenko: Module/kernel parameters</title>
	<link>http://bsddev.blogspot.com/2007/11/modulekernel-parameters.html</link>
	<content:encoded>Sometimes it's desirable to pass some arguments to module to customize its behavior, e.g.: to set/unset verbosity level of debug output, set operation mode etc... Linux modules can get this information from insmod utility, but kldload is not capable of doing such kind of things. What a pity. But don't get desperate - tunables to the rescue!&lt;br /&gt;&lt;br /&gt;Just like an ordinary command shell (bash, csh, sh) kernel has its own environment, the set of &amp;lt;name, value&amp;gt; pairs. You can get, set, test, unset these variables using &lt;b&gt;getenv&lt;/b&gt;, &lt;b&gt;setenv&lt;/b&gt;, &lt;b&gt;testenv&lt;/b&gt;, &lt;b&gt;unsetenv&lt;/b&gt; functions in the kernel and &lt;a href=&quot;http://www.freebsd.org/cgi/man.cgi?query=kenv&amp;sektion=2&amp;apropos=0&amp;manpath=FreeBSD+7-current&quot;&gt;&lt;b&gt;kenv(2)&lt;/b&gt;&lt;/a&gt; syscall or &lt;a href=&quot;http://www.freebsd.org/cgi/man.cgi?query=kenv&amp;sektion=1&amp;apropos=0&amp;manpath=FreeBSD+7-current&quot;&gt;&lt;b&gt;kenv(1)&lt;/b&gt;&lt;/a&gt; command in userland. So if you want to set verbosity level for module, you would do something like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    # kenv zaptel.debug=1&lt;br /&gt;    # kldload ./zaptel.ko&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and then in module initialization routine:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    static int debug = 0; /* Hush-hush */&lt;br /&gt;    ...&lt;br /&gt;    char * value = getenv(&quot;zaptel.debug&quot;);&lt;br /&gt;    if (value) {&lt;br /&gt;        debug = strtol(value, NULL, 10);&lt;br /&gt;        freeenv(value);&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;Too much code for such a simple task, don't you think? Yeah, like for every common task there are useful macroses defined in kernel headers, you should just find them. &lt;a href=&quot;http://www.userfriendly.org/cartoons/archives/00sep/uf002235.gif&quot;&gt;Heavy coffeinated kernel hackers&lt;/a&gt; knew most of them. In this particular case neat code would look something like that (for statically initialized variable):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    static int debug = 0; /* Hush-hush */&lt;br /&gt;    TUNABLE_INT(&quot;zaptel.debug&quot;, &amp;amp;debug);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;or, if debug is the member of structure or local variable:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    sc-&gt;debug = 0;&lt;br /&gt;    TUNABLE_INT_FETCH(&quot;zaptel.debug&quot;, &amp;amp;sc-&gt;debug);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;TUNABLE_XXX macroses exist for INT, LONG, ULONG and STR types. TUNABLE_STR unlike the others requires third parameter - maximum size of the string. For a dynamic value retrieval every type has TUNABLE_XXX_FETCH macro defined. Nota bene: if there is no environent variable set with requested name, the value of acceptor variable remains untouched.</content:encoded>
	<dc:date>2007-11-20T20:58:00+00:00</dc:date>
	<dc:creator>noreply@blogger.com (Oleksandr Tymoshenko)</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-648914743219937380.post-4064282434764762806">
	<title>Oleksandr Tymoshenko: Introduction</title>
	<link>http://bsddev.blogspot.com/2007/09/introduction.html</link>
	<content:encoded>Hello. My name is Oleksandr Tymoshenko. I'm a software developer. My involvement in FreeBSD project started in 1998 by making static entries in ARP table really static. Though patch hasn't made out of my university's network it was &quot;the beginning of a beautiful friendship&quot;. My first significant contribution to FreeBSD community (or so I'd like to think) was porting of  &lt;a href=&quot;http://www.voip-info.org/wiki/view/Zaptel&quot;&gt;Zaptel drivers&lt;/a&gt; from Linux to FreeBSD. About two years ago I happened to work with a MIPS board and got some interest to the architecture. Since then I've been doing my best trying to bring FreeBSD to this platform and, actually, succeeded to some extent with a help from developers crowd.&lt;br /&gt;&lt;br /&gt;In this blog I'm going to make notes on drivers development and porting process. Mostly for myself - to memorize  gotchas and  pitfalls which happen  from time to time. But I hope that these notes will be of some use to other kernel hacker wannabes.</content:encoded>
	<dc:date>2007-10-29T21:04:00+00:00</dc:date>
	<dc:creator>noreply@blogger.com (Oleksandr Tymoshenko)</dc:creator>
</item>
<item rdf:about="http://blogs.freebsdish.org/anderson/2007/10/19/freebsd-cross-reference-online/">
	<title>Eric Anderson: FreeBSD Cross Reference Online</title>
	<link>http://blogs.freebsdish.org/anderson/2007/10/19/freebsd-cross-reference-online/</link>
	<content:encoded>&lt;p&gt;After being a heavy user of Robert Watson&amp;#8217;s FreeBSD cross reference site (&lt;a href=&quot;http://fxr.watson.org&quot; title=&quot;FreeBSD Kernel Cross Reference&quot;&gt;here&lt;/a&gt;) which indexes many different OS kernels, including FreeBSD, NetBSD, OpenBSD, Linux, Darwin, OpenSolaris, and more.  It&amp;#8217;s quite impressive, however, I often found the need to see the entire OS, and I&amp;#8217;m mostly interested in the BSD&amp;#8217;s.  I ended up building a local version on my laptop, so I could take it with me wherever I went (it&amp;#8217;s handy when you are on a plane).  After using it quite a bit, I realized that I also wanted a version available to me on the web, that I can also use as a reference for others.  So, I built it, and made it available here:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://fxr.googlebit.com&quot; title=&quot;FreeBSD Operating System Cross Reference&quot;&gt;FreeBSD Operating System Cross Reference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Feel free to use it as much as you like.&lt;/p&gt;
&lt;p&gt;In a future entry, I may show the steps and changes I made to get it all running, if there&amp;#8217;s enough interest.&lt;/p&gt;</content:encoded>
	<dc:date>2007-10-20T01:38:54+00:00</dc:date>
	<dc:creator>anderson</dc:creator>
</item>
<item rdf:about="http://blogs.freebsdish.org/anderson/2007/10/14/utility-file-systems/">
	<title>Eric Anderson: Utility File Systems</title>
	<link>http://blogs.freebsdish.org/anderson/2007/10/14/utility-file-systems/</link>
	<content:encoded>&lt;p&gt;What&amp;#8217;s next?  We all know about devfs and similar file systems, and many of us use unionfs or nullfs.  However - what other utility file systems would be useful, that we &lt;strong&gt;haven&amp;#8217;t&lt;/strong&gt; built yet?  I think tools like FUSE have given a lot of people some very creative ways of thinking about file systems, but how can that be extended into other areas?&lt;/p&gt;</content:encoded>
	<dc:date>2007-10-15T04:04:45+00:00</dc:date>
	<dc:creator>anderson</dc:creator>
</item>

</rdf:RDF>
