Platform Mocking

This file documents platform mocking, mocking libraries that mock out platform specific features and aid in writing mocks for platform drivers and other low level kernel code.

Enable Platform Mocking

CONFIG_PLATFORM_MOCK needs to be added to the .config (or kunitconfig) to enable platform mocking.

Mocked IO Functions

The following functions have been mocked for convenience.

u8 readb(const volatile void __iomem *);
u16 readw(const volatile void __iomem *);
u32 readl(const volatile void __iomem *);
u64 readq(const volatile void __iomem *);
void writeb(u8, const volatile void __iomem *);
void writew(u16, const volatile void __iomem *);
void writel(u32, const volatile void __iomem *);
void writeq(u64, const volatile void __iomem *);

Note

These functions do not have any non-mocked behaviour in UML.

API

struct device_node *of_fake_node(struct test *test, const char *name)

Parameters

struct test *test

the test to associate node with

const char *name

name of the node

Description

The struct device_node returned is allocated as a root node with the given name and otherwise behaves as a real struct device_node.

Return

the faked struct device_node

struct platform_device *of_fake_probe_platform(struct test *test, struct platform_driver *driver, const char *node_name)

Parameters

struct test *test

the test to associate the fake platform device with

struct platform_driver *driver

driver to probe

const char *node_name

name of the device node created

Description

Creates a struct platform_device and an associated struct device_node, probes the provided struct platform_driver with the struct platform_device.

Return

the struct platform_device that was created

struct platform_device *of_fake_probe_platform_by_name(struct test *test, const char *driver_name, const char *node_name)

Parameters

struct test *test

the test to associate the fake platform device with

const char *driver_name

name of the driver to probe

const char *node_name

name of the device node created

Description

Same as of_fake_probe_platform() but looks up the struct platform_driver by the provided name.

Return

the struct platform_device that was created