summaryrefslogtreecommitdiffstats
path: root/cpukit/libblock/include/rtems/nvdisk.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libblock/include/rtems/nvdisk.h')
-rw-r--r--cpukit/libblock/include/rtems/nvdisk.h211
1 files changed, 0 insertions, 211 deletions
diff --git a/cpukit/libblock/include/rtems/nvdisk.h b/cpukit/libblock/include/rtems/nvdisk.h
deleted file mode 100644
index 5570fb8c6b..0000000000
--- a/cpukit/libblock/include/rtems/nvdisk.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/**
- * @file rtems/nvdisk.h
- *
- * @brief Non-volatile Disk Block Device Implementation
- */
-
-/*
- * Copyright (C) 2007 Chris Johns
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-/**
- * The Non-volatile disk provides a simple directly mapped disk
- * driver with checksums for each. It is designed to provied a
- * disk that can survive a restart. Examples are EEPROM devices
- * which have byte writeable locations, or a battery backed up
- * RAM disk.
- *
- * The low level driver provides the physical access to the
- * hardware.
- */
-#if !defined (_RTEMS_NVDISK_H_)
-#define _RTEMS_NVDISK_H_
-
-#include <stdint.h>
-#include <sys/ioctl.h>
-
-#include <rtems.h>
-
-/**
- * The base name of the nv disks.
- */
-#define RTEMS_NVDISK_DEVICE_BASE_NAME "/dev/nvd"
-
-/**
- * NV disk specific ioctl request types. To use open the
- * device and issue the ioctl call.
- *
- * @code
- * int fd = open ("/dev/nvdisk0", O_WRONLY, 0);
- * if (fd < 0)
- * {
- * printf ("driver open failed: %s\n", strerror (errno));
- * exit (1);
- * }
- * if (ioctl (fd, RTEMS_NVDISK_IOCTL_ERASE_DISK) < 0)
- * {
- * printf ("driver erase failed: %s\n", strerror (errno));
- * exit (1);
- * }
- * close (fd);
- * @endcode
- */
-#define RTEMS_NVDISK_IOCTL_ERASE_DISK _IO('B', 128)
-#define RTEMS_NVDISK_IOCTL_MONITORING _IO('B', 129)
-#define RTEMS_NVDISK_IOCTL_INFO_LEVEL _IO('B', 130)
-#define RTEMS_NVDISK_IOCTL_PRINT_STATUS _IO('B', 131)
-
-/**
- * NV Disk Monitoring Data allows a user to obtain
- * the current status of the disk.
- */
-typedef struct rtems_nvdisk_monitor_data
-{
- uint32_t block_size;
- uint32_t block_count;
- uint32_t page_count;
- uint32_t pages_available;
- uint32_t pages_used;
- uint32_t info_level;
-} rtems_nvdisk_monitor_data;
-
-/**
- * Return the number of kilo-bytes.
- */
-#define RTEMS_NVDISK_KBYTES(_k) ((_k) * 1024)
-
-/**
- * NV Low Level driver handlers.
-
- * Typically this structure is part of a table of handlers in the
- * device which is referenced in the nvdisk configuration table.
- * The reference is kept in the driver and used all the time to
- * manage the nv device, therefore it must always exist.
- */
-typedef struct rtems_nvdisk_driver_handlers
-{
- /**
- * Read data from the device into the buffer. Return an errno
- * error number if the data cannot be read.
- *
- * @param device The device to read data from.
- * @param flags Device specific flags for the driver.
- * @param base The base address of the device.
- * @param offset The offset in the segment to read.
- * @param buffer The buffer to read the data into.
- * @param size The amount of data to read.
- * @retval 0 No error.
- * @retval EIO The read did not complete.
- */
- int (*read) (uint32_t device, uint32_t flags, void* base,
- uint32_t offset, void* buffer, size_t size);
-
- /**
- * Write data from the buffer to the device. Return an errno
- * error number if the device cannot be written to.
- *
- * @param device The device to write data to.
- * @param flags Device specific flags for the driver.
- * @param base The base address of the device.
- * @param offset The offset in the device to write to.
- * @param buffer The buffer to write the data from.
- * @param size The amount of data to write.
- * @retval 0 No error.
- * @retval EIO The write did not complete or verify.
- */
- int (*write) (uint32_t device, uint32_t flags, void* base,
- uint32_t offset, const void* buffer, size_t size);
-
- /**
- * Verify data in the buffer to the data in the device. Return an
- * errno error number if the device cannot be read or the data verified.
- *
- * @param device The device to verify the data with.
- * @param flags Device specific flags for the driver.
- * @param base The base address of the device.
- * @param offset The offset in the device to verify.
- * @param buffer The buffer to verify the data in the device with.
- * @param size The amount of data to verify.
- * @retval 0 No error.
- * @retval EIO The data did not verify.
- */
- int (*verify) (uint32_t device, uint32_t flags, void* base,
- uint32_t offset, const void* buffer, size_t size);
-
-} rtems_nvdisk_driver_handlers;
-
-/**
- * NV Device Descriptor holds the description of a device that is
- * part of the NV disk.
- *
- * Typically this structure is part of a table of the device which
- * is referenced in the nvdisk configuration table.
- * The reference is kept in the driver and used all the time to
- * manage the nv device, therefore it must always exist.
- */
-typedef struct rtems_nvdisk_device_desc
-{
- uint32_t flags; /**< Private user flags. */
- void* base; /**< Base address of the device. */
- uint32_t size; /**< Size of the device. */
- const rtems_nvdisk_driver_handlers* nv_ops; /**< Device handlers. */
-} rtems_nvdisk_device_desc;
-
-/**
- * RTEMS Non-Volatile Disk configuration table used to initialise the
- * driver.
- */
-typedef struct rtems_nvdisk_config
-{
- uint32_t block_size; /**< The block size. */
- uint32_t device_count; /**< The number of devices. */
- const rtems_nvdisk_device_desc* devices; /**< The device descriptions. */
- uint32_t flags; /**< Set of flags to control
- driver. */
- uint32_t info_level; /**< Default info level. */
-} rtems_nvdisk_config;
-
-/*
- * Driver flags.
- */
-
-/**
- * Check the pages during initialisation to see which pages are
- * valid and which are not. This could slow down initialising the
- * disk driver.
- */
-#define RTEMS_NVDISK_CHECK_PAGES (1 << 0)
-
-/**
- * Non-volatile disk device driver initialization. Place in a table as the
- * initialisation entry and remainder of the entries are the RTEMS block
- * device generic handlers.
- *
- * @param major NV disk major device number.
- * @param minor Minor device number, not applicable.
- * @param arg Initialization argument, not applicable.
- * @return The rtems_device_driver is actually just
- * rtems_status_code.
- */
-rtems_device_driver
-rtems_nvdisk_initialize (rtems_device_major_number major,
- rtems_device_minor_number minor,
- void* arg);
-
-/**
- * External reference to the configuration. Please supply.
- * Support is present in confdefs.h for providing this variable.
- */
-extern const rtems_nvdisk_config rtems_nvdisk_configuration[];
-
-/**
- * External reference to the number of configurations. Please supply.
- * Support is present in confdefs.h for providing this variable.
- */
-extern uint32_t rtems_nvdisk_configuration_size;
-
-#endif