<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openslx-ng/ipxe.git/src/arch/x86_64/include/bits, branch master</title>
<subtitle>Fork of ipxe; additional commands and features</subtitle>
<id>https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/x86_64/include/bits?h=master</id>
<link rel='self' href='https://git.openslx.org/openslx-ng/ipxe.git/atom/src/arch/x86_64/include/bits?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/'/>
<updated>2018-03-20T20:01:08+00:00</updated>
<entry>
<title>[build] Prevent use of MMX and SSE registers</title>
<updated>2018-03-20T20:01:08+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2018-03-20T19:34:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=1df3b53051e2baa99abd00b2fe71ccfa6672331e'/>
<id>urn:sha1:1df3b53051e2baa99abd00b2fe71ccfa6672331e</id>
<content type='text'>
The existence of MMX and SSE is required by the System V x86_64 ABI
and so is assumed by gcc, but these registers are not preserved by our
own interrupt handlers and are unlikely to be preserved by other
context switch handlers in a boot firmware environment.

Explicitly prevent gcc from using MMX or SSE registers to avoid
potential problems due to silent register corruption.

We must remove the %xmm0-%xmm5 clobbers from the x86_64 version of
hv_call() since otherwise gcc will complain about unknown register
names.  Theoretically, we should probably add code to explicitly
preserve the %xmm0-%xmm5 registers across a hypercall, in order to
guarantee to external code that these registers remain unchanged.  In
practice this is difficult since SSE registers are disabled by
default: for background information see commits 71560d1 ("[librm]
Preserve FPU, MMX and SSE state across calls to virt_call()") and
dd9a14d ("[librm] Conditionalize the workaround for the Tivoli VMM's
SSE garbling").

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[legal] Add missing FILE_LICENCE declarations</title>
<updated>2017-12-29T11:57:00+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2017-12-29T11:57:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=00c5b958c59ec45736469fce674c5307cabbfd91'/>
<id>urn:sha1:00c5b958c59ec45736469fce674c5307cabbfd91</id>
<content type='text'>
Add missing FILE_LICENCE declarations to x86_64 headers based on the
corresponding i386 headers (from which the x86_64 headers were
originally derived).

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[hyperv] Use generic set_bit() function</title>
<updated>2016-03-16T22:33:41+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-03-16T21:24:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=9bab13a7727a36c36b320409e0e785e016a3ff5c'/>
<id>urn:sha1:9bab13a7727a36c36b320409e0e785e016a3ff5c</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[librm] Provide an abstraction wrapper for prot_call</title>
<updated>2016-02-18T23:23:38+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-02-18T23:23:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=31b5c2e753dbcb3d5023bccc8e644d0bcb56b2ad'/>
<id>urn:sha1:31b5c2e753dbcb3d5023bccc8e644d0bcb56b2ad</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[bios] Add bin-x86_64-pcbios build platform</title>
<updated>2016-02-16T19:32:32+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2016-02-16T15:19:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=f468f12b1eca15e703aa2a79f1c82969c04c2322'/>
<id>urn:sha1:f468f12b1eca15e703aa2a79f1c82969c04c2322</id>
<content type='text'>
Move most arch/i386 files to arch/x86, and adjust the contents of the
Makefiles and the include/bits/*.h headers to reflect the new
locations.

This patch makes no substantive code changes, as can be seen using a
rename-aware diff (e.g. "git show -M5").

This patch does not make the pcbios platform functional for x86_64; it
merely allows it to compile without errors.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[libc] Add ffs(), ffsl(), and ffsll()</title>
<updated>2015-03-16T15:40:53+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-03-15T19:28:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=79697c75eeba01f5068412e03bc5484152f98341'/>
<id>urn:sha1:79697c75eeba01f5068412e03bc5484152f98341</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[build] Fix the REQUIRE_SYMBOL mechanism</title>
<updated>2015-03-05T00:59:38+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-03-04T18:48:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=fbc4ba4b4ed13cc86cb8fdea0bac6c3be0164ed5'/>
<id>urn:sha1:fbc4ba4b4ed13cc86cb8fdea0bac6c3be0164ed5</id>
<content type='text'>
At some point in the past few years, binutils became more aggressive
at removing unused symbols.  To function as a symbol requirement, a
relocation record must now be in a section marked with @progbits and
must not be in a section which gets discarded during the link (either
via --gc-sections or via /DISCARD/).

Update REQUIRE_SYMBOL() to generate relocation records meeting these
criteria.  To minimise the impact upon the final binary size, we use
existing symbols (specified via the REQUIRING_SYMBOL() macro) as the
relocation targets where possible.  We use R_386_NONE or R_X86_64_NONE
relocation types to prevent any actual unwanted relocation taking
place.  Where no suitable symbol exists for REQUIRING_SYMBOL() (such
as in config.c), the macro PROVIDE_REQUIRING_SYMBOL() can be used to
generate a one-byte-long symbol to act as the relocation target.

If there are versions of binutils for which this approach fails, then
the fallback will probably involve killing off REQUEST_SYMBOL(),
redefining REQUIRE_SYMBOL() to use the current definition of
REQUEST_SYMBOL(), and postprocessing the linked ELF file with
something along the lines of "nm -u | wc -l" to check that there are
no undefined symbols remaining.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[libc] Rewrite byte-swapping code</title>
<updated>2015-03-02T16:35:37+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-03-02T16:25:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=01d16d821f4218ce0db9257013d0ad9b339cabe6'/>
<id>urn:sha1:01d16d821f4218ce0db9257013d0ad9b339cabe6</id>
<content type='text'>
Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[legal] Relicense files under GPL2_OR_LATER_OR_UBDL</title>
<updated>2015-03-02T14:17:31+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2015-03-02T11:54:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=b6ee89ffb5029d02cb1d8668757fa2b74b11e0a3'/>
<id>urn:sha1:b6ee89ffb5029d02cb1d8668757fa2b74b11e0a3</id>
<content type='text'>
Relicense files for which I am the sole author (as identified by
util/relicense.pl).

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
<entry>
<title>[hyperv] Add support for Hyper-V hypervisor</title>
<updated>2014-12-18T16:27:27+00:00</updated>
<author>
<name>Michael Brown</name>
</author>
<published>2014-12-11T17:22:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/openslx-ng/ipxe.git/commit/?id=d77a546fb4c69546a81440bdeb0553b8db1d3de8'/>
<id>urn:sha1:d77a546fb4c69546a81440bdeb0553b8db1d3de8</id>
<content type='text'>
Add support for detecting and communicating with the Hyper-V
hypervisor.

Signed-off-by: Michael Brown &lt;mcb30@ipxe.org&gt;
</content>
</entry>
</feed>
