1 /*
2  * Copyright (c) 2020 Intel Corporation
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #include <ztest.h>
8 #include <device.h>
9 
10 /* define subsystem common API for drivers */
11 typedef int (*subsystem_do_this_t)(const struct device *device, int foo,
12 				   int bar);
13 typedef void (*subsystem_do_that_t)(const struct device *device,
14 				    unsigned int *baz);
15 
16 struct subsystem_api {
17 	subsystem_do_this_t do_this;
18 	subsystem_do_that_t do_that;
19 };
20 
subsystem_do_this(const struct device * device,int foo,int bar)21 static inline int subsystem_do_this(const struct device *device, int foo,
22 				    int bar)
23 {
24 	struct subsystem_api *api;
25 
26 	api = (struct subsystem_api *)device->api;
27 	return api->do_this(device, foo, bar);
28 }
29 
subsystem_do_that(const struct device * device,unsigned int * baz)30 static inline void subsystem_do_that(const struct device *device,
31 				     unsigned int *baz)
32 {
33 	struct subsystem_api *api;
34 
35 	api = (struct subsystem_api *)device->api;
36 	api->do_that(device, baz);
37 }
38