diff options
author | Randall Spangler <rspangler@chromium.org> | 2011-12-07 18:51:09 +0000 |
---|---|---|
committer | Vincent Palatin <vpalatin@chromium.org> | 2011-12-07 19:10:02 +0000 |
commit | bdf7da5b082f6d18dd27f1e5d8cca0b12154a28c (patch) | |
tree | 6f14312a6cc70d056efc2bede8728c0868266719 /include/shared_mem.h | |
parent | abe5786058f4b60dc6d30e7d7c964aae850caa1f (diff) | |
download | chrome-ec-bdf7da5b082f6d18dd27f1e5d8cca0b12154a28c.tar.gz |
Initial sources import 1/3
source files mainly done by Randall.
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Change-Id: Iaff83a842b17f3350fb6f2a3f1597ad4c29bd12a
Diffstat (limited to 'include/shared_mem.h')
-rw-r--r-- | include/shared_mem.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/shared_mem.h b/include/shared_mem.h new file mode 100644 index 0000000000..14b6613a9a --- /dev/null +++ b/include/shared_mem.h @@ -0,0 +1,39 @@ +/* Copyright (c) 2011 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/* Shared memory interface for Chrome EC. + * + * This is intended to supply a relatively large block of memory for + * use by a task for a relatively short amount of time. For example, + * verified boot may need a buffer to hold signature data during a + * verification operation. It is NOT intended for allocating + * long-term buffers; those should in general be static variables + * allocated at compile-time. It is NOT a full-featured replacement + * for malloc() / free(). */ + +#ifndef __CROS_EC_SHARED_MEM_H +#define __CROS_EC_SHARED_MEM_H + +#include "common.h" + +/* Initializes the module. */ +int shared_mem_init(void); + +/* Returns the maximum amount of shared memory which can be acquired, + * in bytes. */ +int shared_mem_size(void); + +/* Acquires a shared memory area of the requested size in bytes. If + * wait != 0, will wait for the area to be available; if wait == 0, + * will fail with EC_ERROR_BUSY if the request cannot be fulfilled + * immediately. On success, sets *dest_ptr to the start of the memory + * area and returns EC_SUCCESS. */ +int shared_mem_acquire(int size, int wait, char **dest_ptr); + +/* Releases a shared memory area previously allocated via + * shared_mem_acquire(). */ +void shared_mem_release(void *ptr); + +#endif /* __CROS_EC_SHARED_MEM_H */ |