Add local drm_memory.c to implement drm_ioremap and drm_iounmap.
drm_global.c needs <linux/kernel.h>, <linux/export.h>, and <asm/bug.h>.
In drm_global_release, declare item ignored.
Avoid INT_MAX in PTR_ERR; check for truncation instead.
Implement hash_long in <linux/hash.h>.

Uses the same hash function as in Linux, implemented differently.
Implement unlikely as __predict_false in <linux/kernel.h>.
Add some hlist operations to <linux/list.h>.

Also add some bogus `rcu-safe' operations, to be filled in with the
right memory barriers later.
Add kcalloc to <linux/slab.h>.
Add (unauthentic) spin_lock_destroy to <linux/spinlock.h>.
Add vzalloc to <linux/vmalloc.h>.
Unhook drm_gem.c until rewritten with uvm cruft.
Unhook drm_info.c -- Linux sysfs stuff.
Build drm2 module with DIAGNOSTIC.
Unhook drm_ioc32.c; worry about 32-bit compat later.
Disable DRM_IOCTL_GET_CLIENT (drmGetClient in libdrm) for now.

It does not appear to be needed by anything but diagnostic tools, and
it requires bogus kernel state to be maintained.
Define WARN_ON_SMP to be the same as WARN_ON in Linux <asm/bug.h>.
Define IRQF_SHARED to be 0 in drm_irq_netbsd.h.
Define DRM_HZ to be hz (super-kludgey!) in drm_wait_netbsd.h.
Add empty trace_drm_vblank_* stubs to drm_trace.h.
Separate `struct atomic { ... }' from typedef for greppability.