freebsd-nq/sys/i386/include
Tom Rhodes a122cca953 These are changes to allow to use the Intel C/C++ compiler (lang/icc)
to build the kernel. It doesn't affect the operation if gcc.

Most of the changes are just adding __INTEL_COMPILER to #ifdef's, as
icc v8 may define __GNUC__ some parts may look strange but are
necessary.

Additional changes:
 - in_cksum.[ch]:
   * use a generic C version instead of the assembly version in the !gcc
     case (ASM code breaks with the optimizations icc does)
     -> no bad checksums with an icc compiled kernel
     Help from:		andre, grehan, das
     Stolen from: 	alpha version via ppc version
     The entire checksum code should IMHO be replaced with the DragonFly
     version (because it isn't guaranteed future revisions of gcc will
     include similar optimizations) as in:
        ---snip---
          Revision  Changes    Path
          1.12      +1 -0      src/sys/conf/files.i386
          1.4       +142 -558  src/sys/i386/i386/in_cksum.c
          1.5       +33 -69    src/sys/i386/include/in_cksum.h
          1.5       +2 -0      src/sys/netinet/igmp.c
          1.6       +0 -1      src/sys/netinet/in.h
          1.6       +2 -0      src/sys/netinet/ip_icmp.c

          1.4       +3 -4      src/contrib/ipfilter/ip_compat.h
          1.3       +1 -2      src/sbin/natd/icmp.c
          1.4       +0 -1      src/sbin/natd/natd.c
          1.48      +1 -0      src/sys/conf/files
          1.2       +0 -1      src/sys/conf/files.amd64
          1.13      +0 -1      src/sys/conf/files.i386
          1.5       +0 -1      src/sys/conf/files.pc98
          1.7       +1 -1      src/sys/contrib/ipfilter/netinet/fil.c
          1.10      +2 -3      src/sys/contrib/ipfilter/netinet/ip_compat.h
          1.10      +1 -1      src/sys/contrib/ipfilter/netinet/ip_fil.c
          1.7       +1 -1      src/sys/dev/netif/txp/if_txp.c
          1.7       +1 -1      src/sys/net/ip_mroute/ip_mroute.c
          1.7       +1 -2      src/sys/net/ipfw/ip_fw2.c
          1.6       +1 -2      src/sys/netinet/igmp.c
          1.4       +158 -116  src/sys/netinet/in_cksum.c
          1.6       +1 -1      src/sys/netinet/ip_gre.c
          1.7       +1 -2      src/sys/netinet/ip_icmp.c
          1.10      +1 -1      src/sys/netinet/ip_input.c
          1.10      +1 -2      src/sys/netinet/ip_output.c
          1.13      +1 -2      src/sys/netinet/tcp_input.c
          1.9       +1 -2      src/sys/netinet/tcp_output.c
          1.10      +1 -1      src/sys/netinet/tcp_subr.c
          1.10      +1 -1      src/sys/netinet/tcp_syncache.c
          1.9       +1 -2      src/sys/netinet/udp_usrreq.c

          1.5       +1 -2      src/sys/netinet6/ipsec.c
          1.5       +1 -2      src/sys/netproto/ipsec/ipsec.c
          1.5       +1 -1      src/sys/netproto/ipsec/ipsec_input.c
          1.4       +1 -2      src/sys/netproto/ipsec/ipsec_output.c

          and finally remove
            sys/i386/i386        in_cksum.c
            sys/i386/include     in_cksum.h
        ---snip---
 - endian.h:
   * DTRT in C++ mode
 - quad.h:
   * we don't use gcc v1 anymore, remove support for it
   Suggested by:	bde (long ago)
 - assym.h:
   * avoid zero-length arrays (remove dependency on a gcc specific
     feature)
     This change changes the contents of the object file, but as it's
     only used to generate some values for a header, and the generator
     knows how to handle this, there's no impact in the gcc case.
   Explained by:	bde
   Submitted by:	Marius Strobl <marius@alchemy.franken.de>
 - aicasm.c:
   * minor change to teach it about the way icc spells "-nostdinc"
   Not approved by:	gibbs (no reply to my mail)
 - bump __FreeBSD_version (lang/icc needs to know about the changes)

Incarnations of this patch survive gcc compiles since a loooong time,
I use it on my desktop. An icc compiled kernel works since Nov. 2003
(exceptions: snd_* if used as modules), it survives a build of the
entire ports collection with icc.

Parts of this commit contains suggestions or submissions from
Marius Strobl <marius@alchemy.franken.de>.

Reviewed by:	-arch
Submitted by:	netchild
2004-03-12 21:45:33 +00:00
..
pc
_inttypes.h
_limits.h sys/sys/limits.h: 2003-05-19 20:29:07 +00:00
_stdint.h
_types.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
acpica_machdep.h Add a acpi_SetDefaultIntrModel() method to allow drivers to set the 2003-09-10 01:14:42 +00:00
apicreg.h Delete old and unused APIC_IRQ defines. 2003-12-10 21:33:07 +00:00
apicvar.h Whitespace nit (sorry, couldn't help it) 2003-11-14 22:21:30 +00:00
apm_bios.h
apm_segments.h
asc_ioctl.h
asm.h Remove _ARCH_INDIRECT, it was the glue to enable having both hardware 2003-07-23 04:28:51 +00:00
asmacros.h Define IDTVEC() and TRAP() assembly macros so that they can be shared 2003-11-03 21:09:17 +00:00
atomic.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
bootinfo.h Libdisk does not need to include <sys/diskslice.h> any more. 2003-04-04 16:35:16 +00:00
bus_at386.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
bus_dma.h Document the lockfunc and lockfuncarg arguments to bus_dma_tag_create() in 2003-11-07 23:29:42 +00:00
bus_memio.h
bus_pc98.h Implement the bus_space_map() function to allocate resources and initialize 2003-09-23 08:22:34 +00:00
bus_pio.h
bus.h
cdk.h
clock.h - Move manipulation of td_intr_nesting_level out of assembly interrupt 2003-11-12 18:13:57 +00:00
comstats.h
cpu.h Hey, how about we NOT make modules crash 486s? 2003-12-17 00:51:47 +00:00
cpufunc.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
cputypes.h
critical.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
cserial.h Updated cx driver commit part 1: bring in the new kernel driver. 2003-12-03 07:29:38 +00:00
db_machdep.h
dvcfg.h
elan_mmcr.h Add struct definition of the Elan MMCR registers (from jb@) 2004-01-05 12:00:59 +00:00
elf.h Add sysentvec->sv_fixlimits() hook so that we can catch cases on 64 bit 2003-09-25 01:10:26 +00:00
endian.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
exec.h
float.h Implement fpclassify(): 2003-02-08 20:37:55 +00:00
floatingpoint.h o Move the contents of <machine/floatingpoint.h> over to 2003-01-19 06:01:33 +00:00
frame.h Initiate de-orbit burn for fpu-less operation. 386+387 is still 2003-07-22 08:11:17 +00:00
gsc.h
i4b_cause.h
i4b_debug.h
i4b_ioctl.h
i4b_rbch_ioctl.h
i4b_tel_ioctl.h
i4b_trace.h
ieeefp.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
if_wl_wavelan.h
in_cksum.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
intr_machdep.h Shuffle the APIC interrupt vectors around a bit: 2003-11-14 19:10:13 +00:00
ioctl_bt848.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
ioctl_ctx.h
ioctl_meteor.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
legacyvar.h - Rename nexus_pcib to legacy_pcib. I've been meaning to do this for a 2003-06-06 17:56:30 +00:00
limits.h sys/sys/limits.h: 2003-05-19 20:29:07 +00:00
md_var.h Add struct definition of the Elan MMCR registers (from jb@) 2004-01-05 12:00:59 +00:00
metadata.h Slight reorg and added AMD64 support. A couple of the MODINFOMD_* values 2003-05-01 03:31:18 +00:00
mpapic.h
mptable.h Convert a couple of pointers to integers for source compatability with 2003-11-14 22:23:30 +00:00
mtpr.h
mutex.h
npx.h
param.h Migrate the thread stack management functions from the machine-dependent 2003-06-14 23:23:55 +00:00
pcaudioio.h
pcb_ext.h
pcb.h - On my Pentium4-M laptop, invalpg takes ~1100 cycles if the page is found in 2003-09-30 08:11:36 +00:00
pci_cfgreg.h Switch to using the new $PIR interrupt routing code and remove the old 2004-02-18 22:41:53 +00:00
pcpu.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
pcvt_ioctl.h Add just enough of i386/include/pcvt_ioctl.h to amd64/include/pcvt_ioctl.h 2003-12-10 02:49:17 +00:00
pecoff_machdep.h
perfmon.h
physio_proc.h Don't include <sys/buf.h> needlessly. 2003-04-01 09:02:58 +00:00
pmap.h Remove unused declarations. (Some time ago, these variables became fields 2004-03-07 07:13:15 +00:00
privatespace.h
proc.h Add a per-thread variable for saving the state of eflags to support the 2003-11-03 21:30:00 +00:00
profile.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
psl.h
ptrace.h
reg.h
reloc.h
resource.h
runq.h
segments.h - Always use 256 IDT entries since it is now a runtime decison as to how 2003-11-03 21:12:04 +00:00
setjmp.h
sf_buf.h Don't remove the virtual-to-physical mapping when an sf_buf is freed. 2003-12-07 22:49:25 +00:00
sigframe.h
signal.h
smapi.h Use __packed; 2003-03-24 20:44:39 +00:00
smp.h - Add the mp_topology() function to mp_machdep.c. This function builds up 2003-12-11 03:48:31 +00:00
smptests.h Localized the cy driver's locking. 2003-11-16 00:55:54 +00:00
speaker.h
specialreg.h Add new CPU_ENABLE_TCC option, from NOTES: 2004-01-18 21:18:00 +00:00
spigot.h
stdarg.h These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
sysarch.h Provide sysarch(2) prototypes in the MD sysarch.h headers. While I'm 2004-01-09 16:52:09 +00:00
trap.h
tss.h
ucontext.h
varargs.h Standardize idempotentcy ifdefs. Consistently use _MACHINE_VARARGS_H_ 2003-09-01 03:01:45 +00:00
vm86.h
vmparam.h Commit Bosko's patch to clean up the PSE/PG_G initialization to and 2003-10-01 23:46:08 +00:00
wtio.h