<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Makefile</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>193d9e76 - sys/modules: normalize .CURDIR-relative paths to SRCTOP</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#193d9e76</link>
        <description>sys/modules: normalize .CURDIR-relative paths to SRCTOPThis simplifies make output/logicTested with:	`cd sys/modules; make ALL_MODULES=` on amd64MFC after:	1 monthSponsored by:	Dell EMC Isilon

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Sat, 04 Mar 2017 10:10:17 +0000</pubDate>
        <dc:creator>Enji Cooper &lt;ngie@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>c09808d0 - MFtbemd:</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#c09808d0</link>
        <description>MFtbemd:Use MACHINE_CPUARCH in preference to MACHINE_ARCH.  The former is thesource code location of the machine, the latter the binary output.  Ingeneral, we want to use MACHINE_CPUARCH instead of MACHINE_ARCH unlesswe&apos;re tesitng for a specific target.  The isn&apos;t even moot fori386/amd64 where there&apos;s momemntum towards a MACHINE_CPUARCH == x86,although a specific cleanup for that likely would be needed...

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Mon, 23 Aug 2010 06:13:29 +0000</pubDate>
        <dc:creator>Warner Losh &lt;imp@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>6affafd0 - o port NDIS USB support from USB1 to the new usb(USB2).</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#6affafd0</link>
        <description>o port NDIS USB support from USB1 to the new usb(USB2).o implement URB_FUNCTION_ABORT_PIPE handling.o remove unused code related with canceling the timer list for USB  drivers.o whitespace cleanup and style(9)Obtained from:	hps&apos;s original patch

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Sat, 07 Mar 2009 07:26:22 +0000</pubDate>
        <dc:creator>Weongyo Jeong &lt;weongyo@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>b3974c00 - Integrate the NDIS USB support code to CURRENT.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#b3974c00</link>
        <description>Integrate the NDIS USB support code to CURRENT.Now the NDISulator supports NDIS USB drivers that it&apos;ve tested withdevices as follows:  - Anygate XM-142 (Conexant)  - Netgear WG111v2 (Realtek)  - U-Khan UW-2054u (Marvell)  - Shuttle XPC Accessory PN20 (Realtek)  - ipTIME G054U2 (Ralink)  - UNiCORN WL-54G (ZyDAS)  - ZyXEL G-200v2 (ZyDAS)All of them succeeded to attach and worked though there are still someproblems that it&apos;s expected to be solved.To use NDIS USB support, you should rebuild and install ndiscvt(8) andif you encounter a problem to attach please set `hw.ndisusb.halt&apos; to0 then retry.I expect no changes of the NDIS code for PCI, PCMCIA devices.Obtained from:  //depot/projects/ndisusb/...

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Sat, 27 Dec 2008 08:03:32 +0000</pubDate>
        <dc:creator>Weongyo Jeong &lt;weongyo@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>b6de9e91 - Remove bridge(4) from the tree.  if_bridge(4) is a full functional</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#b6de9e91</link>
        <description>Remove bridge(4) from the tree.  if_bridge(4) is a full functionalreplacement and has additional features which make it superior.Discussed on:	-archReviewed by:	thompsaX-MFC-after:	never (RELENG_6 as transition period)

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Tue, 27 Sep 2005 18:10:43 +0000</pubDate>
        <dc:creator>Max Laier &lt;mlaier@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>d02239a3 - Create new i386 windows/bsd thunking layer, similar to the amd64 thunking</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#d02239a3</link>
        <description>Create new i386 windows/bsd thunking layer, similar to the amd64 thunkinglayer, but with a twist.The twist has to do with the fact that Microsoft supports structuredexception handling in kernel mode. On the i386 arch, exception handlingis implemented by hanging an exception registration list off theThread Environment Block (TEB), and the TEB is accessed via the %fsregister. The problem is, we use %fs as a pointer to the pcpu stucture,which means any driver that tries to write through %fs:0 will overwritethe curthread pointer and make a serious mess of things.To get around this, Project Evil now creates a special entry inthe GDT on each processor. When we call into Windows code, a contextswitch routine will fix up %fs so it points to our new descriptor,which in turn points to a fake TEB. When the Windows code returns,or calls out to an external routine, we swap %fs back again. Currently,Project Evil makes use of GDT slot 7, which is all 0s by default.I fully expect someone to jump up and say I can&apos;t do that, but Icouldn&apos;t find any code that makes use of this entry anywhere. Sadly,this was the only method I could come up with that worked on bothUP and SMP. (Modifying the LDT works on UP, but becomes incrediblycomplicated on SMP.) If necessary, the context switching stuff canbe yanked out while preserving the convention calling wrappers.(Fortunately, it looks like Microsoft uses some special epilog/prologcode on amd64 to implement exception handling, so the same nastinesswon&apos;t be necessary on that arch.)The advantages are:- Any driver that uses %fs as though it were a TEB pointer won&apos;t  clobber pcpu.- All the __stdcall/__fastcall/__regparm stuff that&apos;s specific to  gcc goes away.Also, while I&apos;m here, switch NdisGetSystemUpTime() back to usingnanouptime() again. It turns out nanouptime() is way more accuratethan just using ticks(). On slower machines, the Atheros driversI tested seem to take a long time to associate due to the lossin accuracy.

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Mon, 11 Apr 2005 02:02:35 +0000</pubDate>
        <dc:creator>Bill Paul &lt;wpaul@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>63ba67b6 - - Correct one aspect of the driver_object/device_object/IRP framework:</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#63ba67b6</link>
        <description>- Correct one aspect of the driver_object/device_object/IRP framework:  when we create a PDO, the driver_object associated with it is that  of the parent driver, not the driver we&apos;re trying to attach. For  example, if we attach a PCI device, the PDO we pass to the NdisAddDevice()  function should contain a pointer to fake_pci_driver, not to the NDIS  driver itself. For PCI or PCMCIA devices this doesn&apos;t matter because  the child never needs to talk to the parent bus driver, but for USB,  the child needs to be able to send IRPs to the parent USB bus driver, and  for that to work the parent USB bus driver has to be hung off the PDO.  This involves modifying windrv_lookup() so that we can search for  bus drivers by name, if necessary. Our fake bus drivers attach themselves  as &quot;PCI Bus,&quot; &quot;PCCARD Bus&quot; and &quot;USB Bus,&quot; so we can search for them  using those names.  The individual attachment stubs now create and attach PDOs to the  parent bus drivers instead of hanging them off the NDIS driver&apos;s  object, and in if_ndis.c, we now search for the correct driver  object depending on the bus type, and use that to find the correct PDO.  With this fix, I can get my sample USB ethernet driver to deliver  an IRP to my fake parent USB bus driver&apos;s dispatch routines.- Add stub modules for USB support: subr_usbd.c, usbd_var.h and  if_ndis_usb.c. The subr_usbd.c module is hooked up the build  but currently doesn&apos;t do very much. It provides the stub USB  parent driver object and a dispatch routine for  IRM_MJ_INTERNAL_DEVICE_CONTROL. The only exported function at  the moment is USBD_GetUSBDIVersion(). The if_ndis_usb.c stub  compiles, but is not hooked up to the build yet. I&apos;m putting  these here so I can keep them under source code control as I  flesh them out.

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Thu, 24 Feb 2005 21:49:14 +0000</pubDate>
        <dc:creator>Bill Paul &lt;wpaul@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>d8f2dda7 - Add support for Windows/x86-64 binaries to Project Evil.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#d8f2dda7</link>
        <description>Add support for Windows/x86-64 binaries to Project Evil.Ville-Pertti Keinonen (will at exomi dot comohmygodnospampleasekthx)deserves a big thanks for submitting initial patches to make itwork. I have mangled his contributions appropriately.The main gotcha with Windows/x86-64 is that Microsoft uses a differentcalling convention than everyone else. The standard ABI requires using6 registers for argument passing, with other arguments on the stack.Microsoft uses only 4 registers, and requires the caller to leave roomon the stack for the register arguments incase the callee needs tospill them. Unlike x86, where Microsoft uses a mix of _cdecl, _stdcalland _fastcall, all routines on Windows/x86-64 uses the same convention.This unfortunately means that all the functions we export to thedriver require an intermediate translation wrapper. Similarly, we haveto wrap all calls back into the driver binary itself.The original patches provided macros to wrap every single routine atcompile time, providing a secondary jump table with a customizedwrapper for each exported routine. I decided to use a different approach:the call wrapper for each function is created from a template atruntime, and the routine to jump to is patched into the wrapper asit is created. The subr_pe module has been modified to patch in thewrapped function instead of the original. (On x86, the wrappingroutine is a no-op.)There are some minor API differences that had to be accounted for:- KeAcquireSpinLock() is a real function on amd64, not a macro wrapper  around KfAcquireSpinLock()- NdisFreeBuffer() is actually IoFreeMdl(). I had to change the whole  NDIS_BUFFER API a bit to accomodate this.Bugs fixed along the way:- IoAllocateMdl() always returned NULL- kern_windrv.c:windrv_unload() wasn&apos;t releasing private driver object  extensions correctly (found thanks to memguard)This has only been tested with the driver for the Broadcom 802.11gchipset, which was the only Windows/x86-64 driver I could find.

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Wed, 16 Feb 2005 05:41:18 +0000</pubDate>
        <dc:creator>Bill Paul &lt;wpaul@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>b545a3b8 - Next step on the road to IRPs: create and use an imitation of the</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#b545a3b8</link>
        <description>Next step on the road to IRPs: create and use an imitation of theWindows DRIVER_OBJECT and DEVICE_OBJECT mechanism so that we cansimulate driver stacking.In Windows, each loaded driver image is attached to a DRIVER_OBJECTstructure. Windows uses the registry to match up a given vendor/deviceID combination with a corresponding DRIVER_OBJECT. When a driver imageis first loaded, its DriverEntry() routine is invoked, which sets upthe AddDevice() function pointer in the DRIVER_OBJECT and createsa dispatch table (based on IRP major codes). When a Windows bus driverdetects a new device, it creates a Physical Device Object (PDO) forit. This is a DEVICE_OBJECT structure, with semantics analagous tothat of a device_t in FreeBSD. The Windows PNP manager will invokethe driver&apos;s AddDevice() function and pass it pointers to the DRIVER_OBJECTand the PDO.The AddDevice() function then creates a new DRIVER_OBJECT structure ofits own. This is known as the Functional Device Object (FDO) andcorresponds roughly to a private softc instance. The driver usesIoAttachDeviceToDeviceStack() to add this device object to thedriver stack for this PDO. Subsequent drivers (called filter driversin Windows-speak) can be loaded which add themselves to the stack.When someone issues an IRP to a device, it travel along the stackpassing through several possible filter drivers until it reachesthe functional driver (which actually knows how to talk to the hardware)at which point it will be completed. This is how Windows achievesdriver layering.Project Evil now simulates most of this. if_ndis now has a modeventhandler which will use MOD_LOAD and MOD_UNLOAD events to drive thecreation and destruction of DRIVER_OBJECTs. (The load event alsodoes the relocation/dynalinking of the image.) We don&apos;t have a registry,so the DRIVER_OBJECTS are stored in a linked list for now. Eventually,the list entry will contain the vendor/device ID list extracted fromthe .INF file. When ndis_probe() is called and detectes a supporteddevice, it will create a PDO for the device instance and attach itto the DRIVER_OBJECT just as in Windows. ndis_attach() will then callour NdisAddDevice() handler to create the FDO. The NDIS miniport blockis now a device extension hung off the FDO, just as it is in Windows.The miniport characteristics table is now an extension hung off theDRIVER_OBJECT as well (the characteristics are the same for all deviceshandled by a given driver, so they don&apos;t need to be per-instance.)We also do an IoAttachDeviceToDeviceStack() to put the FDO on thestack for the PDO. There are a couple of fake bus drivers createdfor the PCI and pccard buses. Eventually, there will be one for USB,which will actually accept USB IRP.sThings should still work just as before, only now we do things inthe proper order and maintain the correct framework to support passingIRPs between drivers.Various changes:- corrected the comments about IRQL handling in subr_hal.c to more  accurately reflect reality- update ndiscvt to make the drv_data symbol in ndis_driver_data.h a  global so that if_ndis_pci.o and/or if_ndis_pccard.o can see it.- Obtain the softc pointer from the miniport block by referencing  the PDO rather than a private pointer of our own (nmb_ifp is no  longer used)- implement IoAttachDeviceToDeviceStack(), IoDetachDevice(),  IoGetAttachedDevice(), IoAllocateDriverObjectExtension(),  IoGetDriverObjectExtension(), IoCreateDevice(), IoDeleteDevice(),  IoAllocateIrp(), IoReuseIrp(), IoMakeAssociatedIrp(), IoFreeIrp(),  IoInitializeIrp()- fix a few mistakes in the driver_object and device_object definitions- add a new module, kern_windrv.c, to handle the driver registration  and relocation/dynalinkign duties (which don&apos;t really belong in  kern_ndis.c).- made ndis_block and ndis_chars in the ndis_softc stucture pointers  and modified all references to it- fixed NdisMRegisterMiniport() and NdisInitializeWrapper() so they  work correctly with the new driver_object mechanism- changed ndis_attach() to call NdisAddDevice() instead of ndis_load_driver()  (which is now deprecated)- used ExAllocatePoolWithTag()/ExFreePool() in lookaside list routines  instead of kludged up alloc/free routines- added kern_windrv.c to sys/modules/ndis/Makefile and files.i386.

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Tue, 08 Feb 2005 17:23:25 +0000</pubDate>
        <dc:creator>Bill Paul &lt;wpaul@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>d329ad60 - Add preliminary support for PCMCIA devices in addition to PCI/cardbus.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#d329ad60</link>
        <description>Add preliminary support for PCMCIA devices in addition to PCI/cardbus.if_ndis.c has been split into if_ndis_pci.c and if_ndis_pccard.c.The ndiscvt(8) utility should be able to parse device info for PCMCIAdevices now. The ndis_alloc_amem() has moved from kern_ndis.c toif_ndis_pccard.c so that kern_ndis.c no longer depends on pccard.NOTE: this stuff is not guaranteed to work 100% correctly yet. Sofar I have been able to load/init my PCMCIA Cisco Aironet 340 card,but it crashes in the interrupt handler. The existing support forPCI/cardbus devices should still work as before.

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Sun, 07 Mar 2004 02:49:06 +0000</pubDate>
        <dc:creator>Bill Paul &lt;wpaul@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>51d22ccf - - Some older Atheros drivers want KeInitializeTimer(), so implement it,</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#51d22ccf</link>
        <description>- Some older Atheros drivers want KeInitializeTimer(), so implement it,  along with KeInitializeTimerEx(), KeSetTimer(), KeSetTimerEx(),  KeCancelTimer(), KeReadStateTimer() and KeInitializeDpc(). I don&apos;t  know for certain that these will make the Atheros driver happy since  I don&apos;t have the card/driver combo needed to test it, but these are  fairly independent so they shouldn&apos;t break anything else.- Debugger() is present even in kernels without options DDB, so no  conditional compilation is necessary (pointed out by bde).- Remove the extra km_acquirecnt member that I added to struct kmutant  and embed it within an unused portion of the structure instead, so that  we don&apos;t make the structure larger than it&apos;s defined to be in Windows.  I don&apos;t know what crack I was smoking when I decided it was ok to do  this, but it&apos;s worn off now.

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Thu, 04 Mar 2004 23:04:02 +0000</pubDate>
        <dc:creator>Bill Paul &lt;wpaul@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>db2585fd - Add proper support for DbgPrint(): only print messages if bootverbose</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#db2585fd</link>
        <description>Add proper support for DbgPrint(): only print messages if bootverboseis set, since some drivers with debug info can be very chatty.Also implement DbgBreakPoint(), which is the Windows equivalent ofDebugger(). Unfortunately, this forces subr_ntoskrnl.c to includeopt_ddb.h.

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Wed, 03 Mar 2004 17:57:05 +0000</pubDate>
        <dc:creator>Bill Paul &lt;wpaul@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>431b5bd6 - Implement NdisOpenFile()/NdisCloseFile()/NdisMapFile()/NdisUnmapFile().</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#431b5bd6</link>
        <description>Implement NdisOpenFile()/NdisCloseFile()/NdisMapFile()/NdisUnmapFile().By default, we search for files in /compat/ndis. This can be changed witha systcl. These routines are used by some drivers which need to downloadfirmware or microcode into their respective devices during initialization.Also, remove extraneous newlines from the &apos;built-in&apos; sysctl/registryvariables.

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Fri, 09 Jan 2004 03:57:00 +0000</pubDate>
        <dc:creator>Bill Paul &lt;wpaul@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>87feaafc - Grrr. Put the right .PATH statements in the right Makefiles.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#87feaafc</link>
        <description>Grrr. Put the right .PATH statements in the right Makefiles.

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Thu, 11 Dec 2003 23:22:44 +0000</pubDate>
        <dc:creator>Bill Paul &lt;wpaul@FreeBSD.org&gt;</dc:creator>
    </item>
<item>
        <title>c854fc10 - Commit the first cut of Project Evil, also known as the NDISulator.</title>
        <link>http://172.16.0.5:8080/history/freebsd-12.1/sys/modules/ndis/Makefile#c854fc10</link>
        <description>Commit the first cut of Project Evil, also known as the NDISulator.Yes, it&apos;s what you think it is. Yes, you should run away now.This is a special compatibility module for allowing Windows NDISminiport network drivers to be used with FreeBSD/x86. This provides_binary_ NDIS compatibility (not source): you can run NDIS drivercode, but you can&apos;t build it. There are three main parts:sys/compat/ndis: the NDIS compat API, which provides binarycompatibility functions for many routines in NDIS.SYS, HAL.dlland ntoskrnl.exe in Windows (these are the three modules thatmost NDIS miniport drivers use). The compat module also containsa small PE relocator/dynalinker which relocates the Windows .SYSimage and then patches in our native routines.sys/dev/if_ndis: the if_ndis driver wrapper. This module makesuse of the ndis compat API and can be compiled with a speciallyprepared binary image file (ndis_driver_data.h) containing theWindows .SYS image and registry key information parsed out of theaccompanying .INF file. Once if_ndis.ko is built, it can be loadedand unloaded just like a native FreeBSD kenrel module.usr.sbin/ndiscvt: a special utility that converts foo.sys and foo.infinto an ndis_driver_data.h file that can be compiled into if_ndis.o.Contains an .inf file parser graciously provided by Matt Dodd (andmercilessly hacked upon by me) that strips out device ID info andregistry key info from a .INF file and packages it up with a binaryimage array. The ndiscvt(8) utility also does some manipulation ofthe segments within the .sys file to make life easier for the kernelloader. (Doing the manipulation here saves the kernel code from havingto move things around later, which would waste memory.)ndiscvt is only built for the i386 arch. Only files.i386 has beenupdated, and none of this is turned on in GENERIC. It should probablywork on pc98. I have no idea about amd64 or ia64 at this point.This is still a work in progress. I estimate it&apos;s about %85 done, butI want it under CVS control so I can track subsequent changes. It hasbeen tested with exactly three drivers: the LinkSys LNE100TX v4 driver(Lne100v4.sys), the sample Intel 82559 driver from the Windows DDK(e100bex.sys) and the Broadcom BCM43xx wireless driver (bcmwl5.sys). Itstill needs to have a net80211 stuff added to it. To use it, you woulddo something like this:# cd /sys/modules/ndis# make; make load# cd /sys/modules/if_ndis# ndiscvt -i /path/to/foo.inf -s /path/to/foo.sys -o ndis_driver_data.h# make; make load# sysctl -a | grep ndisAll registry keys are mapped to sysctl nodes. Sometimes drivers referto registry keys that aren&apos;t mentioned in foo.inf. If this happens,the NDIS API module creates sysctl nodes for these keys on the fly soyou can tweak them.An example usage of the Broadcom wireless driver would be:# sysctl hw.ndis0.EnableAutoConnect=1# sysctl hw.ndis0.SSID=&quot;MY_SSID&quot;# sysctl hw.ndis0.NetworkType=0 (0 for bss, 1 for adhoc)# ifconfig ndis0 &lt;my ipaddr&gt; netmask 0xffffff00 upThings to be done:- get rid of debug messages- add in ndis80211 support- defer transmissions until after a status update with  NDIS_STATUS_CONNECTED occurs- Create smarter lookaside list support- Split off if_ndis_pci.c and if_ndis_pccard.c attachments- Make sure PCMCIA support works- Fix ndiscvt to properly parse PCMCIA device IDs from INF files- write ndisapi.9 man page

            List of files:
            /freebsd-12.1/sys/modules/ndis/Makefile</description>
        <pubDate>Thu, 11 Dec 2003 22:34:37 +0000</pubDate>
        <dc:creator>Bill Paul &lt;wpaul@FreeBSD.org&gt;</dc:creator>
    </item>
</channel>
</rss>
