blob: ce7bf40656e8714f77a0a595f7a0757951349c69 [file] [log] [blame]
Ramon Fried7b384ec2018-07-02 02:57:55 +03001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright (c) 2018 Ramon Fried <ramon.fried@gmail.com>
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};