Implement a workaround to allow this test program to be compiled with clang.
It seems that if a pragma is used to define a weak alias for a local
function, the pragma must appear after the function is defined.

PR:		193056
MFC after:	1 week
Sponsored by:	EMC / Isilon Storage Division
Fix typo in defined ROD types in r269497.

MFC after:	3 days
Fix tpc_create_token() introduced in r269497 to encode CREATOR LOGICAL UNIT
DESCRIPTOR field as Identification Descriptor CSCD descriptor, not just as
Identification Descriptor.

MFC after:	3 days
Fix LUN discovery for targets that don't support REPORT_LUNS, broken
in r263741.  At least with CTL (slightly modified to report SPC2) there
is still some problem: it doesn't seem to find LUNs higher than 7.

Sponsored by:	The FreeBSD Foundation
drm/i915: Add HW context support

This feature is required by Mesa 9.2+. Without this, a GL application
crashes with the following message:
    # glxinfo
    name of display: :0.0
    Gen6+ requires Kernel 3.6 or later.
    Assertion failed: (ctx->Version > 0), function handle_first_current,
      file ../../src/mesa/main/context.c, line 1498.
    Abort (core dumped)

Now, Mesa 10.2.4 and 10.3-rc3 works fine:
    # glxinfo
    name of display: :0
    display: :0  screen: 0
    direct rendering: Yes
    ...
    OpenGL renderer string: Mesa DRI Intel(R) 965GM
    OpenGL version string: 2.1 Mesa 10.2.4
    ...

The code was imported from Linux 3.8.13.

Reviewed by:	kib@
Tested by:	kwm@, danfe@, Henry Hu,
		Lundberg, Johannes <johannes@brilliantservice.co.jp>,
		Johannes Dieterich <dieterich.joh@gmail.com>,
		Lutz Bichler <lutz.bichler@gmail.com>,
MFC after:	3 days
Relnotes:	yes
Merge remote-tracking branch 'freebsd/master' into hardened/current/master
Merge remote-tracking branch 'freebsd/master' into hardened/current/hardening
Merge remote-tracking branch 'freebsd/master' into hardened/current/segvguard
Merge remote-tracking branch 'freebsd/master' into hardened/current/ptrace
Merge remote-tracking branch 'freebsd/master' into hardened/current/log
Merge remote-tracking branch 'freebsd/master' into hardened/current/userlandenhanced
Merge branch 'hardened/current/master' into hardened/current/unstable
Merge branch 'hardened/current/hardening' into hardened/current/unstable
Merge branch 'hardened/current/segvguard' into hardened/current/unstable
Merge branch 'hardened/current/ptrace' into hardened/current/unstable
Merge branch 'hardened/current/log' into hardened/current/unstable
Merge branch 'hardened/current/userlandenhanced' into hardened/current/unstable