{"id":194,"date":"2004-04-03T12:58:36","date_gmt":"2004-04-03T12:58:36","guid":{"rendered":"http:\/\/maydanoz.arved.priv.at\/blog\/?p=194"},"modified":"2004-04-03T12:58:36","modified_gmt":"2004-04-03T12:58:36","slug":"how_to_write_a","status":"publish","type":"post","link":"https:\/\/arved.priv.at\/weblog\/2004\/04\/03\/how_to_write_a\/","title":{"rendered":"How to write a NIC driver for FreeBSD"},"content":{"rendered":"<p>&#8220;[..] I write new drivers by choosing an existing driver that<br \/>\nmost closely matches the design of the chip I need to support, run<br \/>\nit through sed(1) to change its name, strip out all the device-dependent<br \/>\nstuff specific to the old device and replace it with stuff for the<br \/>\nnew device.<br \/>\nAnd then the stork comes, and it&#8217;s a driver.&#8221;  &#8212; Bill Paul on <a href=\"http:\/\/lists.freebsd.org\/pipermail\/freebsd-net\/2004-April\/003570.html\">freebsd-net<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;[..] I write new drivers by choosing an existing driver that most closely matches the design of the chip I need to support, run it through sed(1) to change its name, strip out all the device-dependent stuff specific to the old device and replace it with stuff for the new device. And then the stork &hellip; <a href=\"https:\/\/arved.priv.at\/weblog\/2004\/04\/03\/how_to_write_a\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;How to write a NIC driver for FreeBSD&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-194","post","type-post","status-publish","format-standard","hentry","category-freebsd"],"_links":{"self":[{"href":"https:\/\/arved.priv.at\/weblog\/wp-json\/wp\/v2\/posts\/194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arved.priv.at\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arved.priv.at\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arved.priv.at\/weblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arved.priv.at\/weblog\/wp-json\/wp\/v2\/comments?post=194"}],"version-history":[{"count":0,"href":"https:\/\/arved.priv.at\/weblog\/wp-json\/wp\/v2\/posts\/194\/revisions"}],"wp:attachment":[{"href":"https:\/\/arved.priv.at\/weblog\/wp-json\/wp\/v2\/media?parent=194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arved.priv.at\/weblog\/wp-json\/wp\/v2\/categories?post=194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arved.priv.at\/weblog\/wp-json\/wp\/v2\/tags?post=194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}