/*
 * ---- the four production files, VERBATIM (sha256-gated by build.sh) ----
 */
#include <dev/drm/linux_dmi.c>
#include <dev/drm/linux_kobject.c>
#include <dev/drm/linux_pci.c>
#include <dev/drm/linux_printf.c>

/*
 * <linux/slab.h> (pulled in by the headers above) #undef'd the kernel
 * kfree(addr, type) macro and redefined it as a one-argument M_DRM form.
 * Restore the two-argument kernel macro (sys/malloc.h:349): the FIXED
 * variant bodies below (extracted from the patched tree files, which do
 * NOT include linux/slab.h) and the rig code use the kernel form.
 */
#undef kfree
#define kfree(addr, type)	_kfree(addr, type)

/*
 * Prototypes for the FIXED variants (build.sh extracts these bodies from
 * fix.diff-applied scratch copies and concatenates them right after this
 * file, with the definition lines renamed *_fixed).
 */
bool dmi_match_fixed(enum dmi_field f, const char *str);
void kobject_release_fixed(struct kref *kref);
int pcie_capability_read_dword_fixed(struct pci_dev *dev, int pos, u32 *dst);
void seq_printf_fixed(struct seq_file *m, const char *f, ...);
