1
2
3
4
5
6#include <common.h>
7#include <dm.h>
8#include <smem.h>
9
10int smem_alloc(struct udevice *dev, unsigned int host,
11 unsigned int item, size_t size)
12{
13 struct smem_ops *ops = smem_get_ops(dev);
14
15 if (!ops->alloc)
16 return -ENOSYS;
17
18 return ops->alloc(host, item, size);
19}
20
21void *smem_get(struct udevice *dev, unsigned int host,
22 unsigned int item, size_t *size)
23{
24 struct smem_ops *ops = smem_get_ops(dev);
25
26 if (!ops->get)
27 return NULL;
28
29 return ops->get(host, item, size);
30}
31
32int smem_get_free_space(struct udevice *dev, unsigned int host)
33{
34 struct smem_ops *ops = smem_get_ops(dev);
35
36 if (!ops->get_free_space)
37 return -ENOSYS;
38
39 return ops->get_free_space(host);
40}
41
42UCLASS_DRIVER(smem) = {
43 .id = UCLASS_SMEM,
44 .name = "smem",
45};
46