aboutsummaryrefslogtreecommitdiffstats
path: root/os/various/ramdisk.h
diff options
context:
space:
mode:
authorMichael Walker <walkerstop@gmail.com>2018-05-02 03:33:23 -0700
committerMichael Walker <walkerstop@gmail.com>2018-05-02 03:33:23 -0700
commit6d879f58f5b56eda3330aa6e7f8382f441adecf4 (patch)
treedad3f1f3b6ac3927484ee22002a947662a8a0173 /os/various/ramdisk.h
parent4e9f077fb10255dced1da4d5d2ad9f8ae41442a2 (diff)
parentd4d384557df0e8e7a8071553448b0c42849f98c0 (diff)
downloadChibiOS-Contrib-6d879f58f5b56eda3330aa6e7f8382f441adecf4.tar.gz
ChibiOS-Contrib-6d879f58f5b56eda3330aa6e7f8382f441adecf4.tar.bz2
ChibiOS-Contrib-6d879f58f5b56eda3330aa6e7f8382f441adecf4.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'os/various/ramdisk.h')
-rw-r--r--os/various/ramdisk.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/os/various/ramdisk.h b/os/various/ramdisk.h
new file mode 100644
index 0000000..0860662
--- /dev/null
+++ b/os/various/ramdisk.h
@@ -0,0 +1,86 @@
+/*
+ ChibiOS/HAL - Copyright (C) 2016 Uladzimir Pylinsky aka barthess
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file ramdisk.h
+ * @brief Virtual block devise driver header.
+ *
+ * @addtogroup ramdisk
+ * @{
+ */
+
+#ifndef RAMDISK_H_
+#define RAMDISK_H_
+
+/*===========================================================================*/
+/* Driver constants. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver pre-compile time settings. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Derived constants and error checks. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver data structures and types. */
+/*===========================================================================*/
+
+typedef struct RamDisk RamDisk;
+
+/**
+ *
+ */
+#define _ramdisk_device_data \
+ _base_block_device_data \
+ uint8_t *storage; \
+ uint32_t blk_size; \
+ uint32_t blk_num; \
+ bool readonly;
+
+/**
+ *
+ */
+struct RamDisk {
+ /** @brief Virtual Methods Table.*/
+ const struct BaseBlockDeviceVMT *vmt;
+ _ramdisk_device_data
+};
+
+/*===========================================================================*/
+/* Driver macros. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* External declarations. */
+/*===========================================================================*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ void ramdiskObjectInit(RamDisk *rdp);
+ void ramdiskStart(RamDisk *rdp, uint8_t *storage, uint32_t blksize,
+ uint32_t blknum, bool readonly);
+ void ramdiskStop(RamDisk *rdp);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* RAMDISK_H_ */
+
+/** @} */