<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/interface, branch v0.9.7</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/interface?h=v0.9.7</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/interface?h=v0.9.7'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2009-02-01T20:16:10+00:00</updated>
<entry>
<title>[iobuf] Add iob_disown() and use it where it simplifies code</title>
<updated>2009-02-01T20:16:10+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-02-01T18:02:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=dbe84c5aad583a4194666d2d925a5cda53852631'/>
<id>urn:sha1:dbe84c5aad583a4194666d2d925a5cda53852631</id>
<content type='text'>
There are many functions that take ownership of the I/O buffer they
are passed as a parameter.  The caller should not retain a pointer to
the I/O buffer.  Use iob_disown() to automatically nullify the
caller's pointer, e.g.:

    xfer_deliver_iob ( xfer, iob_disown ( iobuf ) );

This will ensure that iobuf is set to NULL for any code after the call
to xfer_deliver_iob().

iob_disown() is currently used only in places where it simplifies the
code, by avoiding an extra line explicitly setting the I/O buffer
pointer to NULL.  It should ideally be used with each call to any
function that takes ownership of an I/O buffer.  (The SSA
optimisations will ensure that use of iob_disown() gets optimised away
in cases where the caller makes no further use of the I/O buffer
pointer anyway.)

If gcc ever introduces an __attribute__((free)), indicating that use
of a function argument after a function call should generate a
warning, then we should use this to identify all applicable function
call sites, and add iob_disown() as necessary.
</content>
</entry>
<entry>
<title>[efi] Expose both GUIDs for the EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL</title>
<updated>2009-01-12T20:53:38+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-01-12T20:53:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=08f6d22410c662e075cf9907f12e1e6278a06967'/>
<id>urn:sha1:08f6d22410c662e075cf9907f12e1e6278a06967</id>
<content type='text'>
At some point, it seems that someone decided to change the GUID for
the EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL.  Current EFI builds
ignore the older GUID, older EFI builds ignore the newer GUID, so we
have to expose both.
</content>
</entry>
<entry>
<title>[efi] Add an EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL interface</title>
<updated>2009-01-12T19:11:30+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-01-12T05:22:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=aa86afe890a4d1427961452cd440ad022edc40b0'/>
<id>urn:sha1:aa86afe890a4d1427961452cd440ad022edc40b0</id>
<content type='text'>
This allegedly optional interface seems to be compulsory if you want
EFI's PXE code to bother trying to use your network interface.
</content>
</entry>
<entry>
<title>[efi] Provide component name protocol and device path protocol interfaces</title>
<updated>2009-01-12T19:10:53+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-01-10T00:21:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=cced04ef3bba35dedb4e4c1da97643bc88260fc2'/>
<id>urn:sha1:cced04ef3bba35dedb4e4c1da97643bc88260fc2</id>
<content type='text'>
Include a minimal component name protocol so that the driver name
shows up as something other than "&lt;UNKNOWN&gt;" in the driver list, and a
device path protocol so that the network interface shows up as a
separate device in the device list, rather than being attached
directly to the PCI device.

Incidentally, the EFI component name protocol reaches new depths for
signal-to-noise ratio in program code.  A typical instance within the
EFI development kit will use an additional 300 lines of code to
provide slightly less functionality than GNU gettext achieves with
three additional characters.
</content>
</entry>
<entry>
<title>[efi] Use elf2efi utility in place of efilink</title>
<updated>2009-01-07T22:59:05+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2009-01-07T02:05:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=314779eb369db746be5373b398111d5b746d67de'/>
<id>urn:sha1:314779eb369db746be5373b398111d5b746d67de</id>
<content type='text'>
elf2efi converts a suitable ELF executable (containing relocation
information, and with appropriate virtual addresses) into an EFI
executable.  It is less tightly coupled with the gPXE build process
and, in particular, does not require the use of a hand-crafted PE
image header in efiprefix.S.

elf2efi correctly handles .bss sections, which significantly reduces
the size of the gPXE EFI executable.
</content>
</entry>
<entry>
<title>[efi] Use EFI-native mechanism for accessing SMBIOS table</title>
<updated>2008-12-04T23:19:12+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-12-04T23:09:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=29480dd7159190b91cca17298a87425a58826d32'/>
<id>urn:sha1:29480dd7159190b91cca17298a87425a58826d32</id>
<content type='text'>
EFI provides a copy of the SMBIOS table accessible via the EFI system
table, which we should use instead of manually scanning through the
F000:0000 segment.
</content>
</entry>
<entry>
<title>[efi] Allow use of EFI configuration tables</title>
<updated>2008-12-04T23:18:32+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-12-04T04:04:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=045a22764afd75a0b887c7da6828d683c303ebb4'/>
<id>urn:sha1:045a22764afd75a0b887c7da6828d683c303ebb4</id>
<content type='text'>
EFI passes in copies of SMBIOS and other system configuration tables
via the EFI system table.  Allow configuration tables to be requested
using a mechanism similar to the current method for requesting EFI
protocols.
</content>
</entry>
<entry>
<title>[x86_64] Fix assorted 64-bit compilation errors and warnings</title>
<updated>2008-11-19T19:33:05+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-11-19T19:33:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=0ebbbb95fa03622423154a3e56251dd58832654d'/>
<id>urn:sha1:0ebbbb95fa03622423154a3e56251dd58832654d</id>
<content type='text'>
Remove various 32-bit assumptions scattered throughout the codebase.
The code is still not necessarily 64-bit clean, but will at least
compile.
</content>
</entry>
<entry>
<title>[efi] Add efi_strerror()</title>
<updated>2008-11-19T19:22:49+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-11-19T03:45:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=3f85626fa95cb356a655d3538db6f05231f07003'/>
<id>urn:sha1:3f85626fa95cb356a655d3538db6f05231f07003</id>
<content type='text'>
EFI_STATUS is defined as an INTN, which maps to UINT32 (i.e. unsigned
int) on i386 and UINT64 (i.e. unsigned long) on x86_64.  This would
require a cast each time the error status is printed.

Add efi_strerror() to avoid this ickiness and simultaneously enable
prettier reporting of EFI status codes.
</content>
</entry>
<entry>
<title>[i386] Change [u]int32_t to [unsigned] int, rather than [unsigned] long</title>
<updated>2008-11-19T19:15:44+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2008-11-19T02:22:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b59e0cc56eb6d5f3b6f934722931f6919309ffd2'/>
<id>urn:sha1:b59e0cc56eb6d5f3b6f934722931f6919309ffd2</id>
<content type='text'>
This brings us in to line with Linux definitions, and also simplifies
adding x86_64 support since both platforms have 2-byte shorts, 4-byte
ints and 8-byte long longs.
</content>
</entry>
</feed>
