mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-10-31 08:42:40 +01:00 
			
		
		
		
	Initial commit of block device interface and emulated block device
This commit is contained in:
		
							
								
								
									
										57
									
								
								emubd/lfs_emubd.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								emubd/lfs_emubd.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | ||||
| /* | ||||
|  * Block device emulated on standard files | ||||
|  * | ||||
|  * Copyright (c) 2017 Christopher Haster | ||||
|  * Distributed under the MIT license | ||||
|  */ | ||||
| #ifndef LFS_EMUBD_H | ||||
| #define LFS_EMUBD_H | ||||
|  | ||||
| #include "lfs_config.h" | ||||
| #include "lfs_bd.h" | ||||
|  | ||||
|  | ||||
| // The emu bd state | ||||
| typedef struct lfs_emubd { | ||||
|     char *path; | ||||
|     char *child; | ||||
|     struct lfs_bd_info info; | ||||
| } lfs_emubd_t; | ||||
|  | ||||
|  | ||||
| // Create a block device using path for the directory to store blocks | ||||
| lfs_error_t lfs_emubd_create(lfs_emubd_t *emu, const char *path); | ||||
|  | ||||
| // Clean up memory associated with emu block device | ||||
| void lfs_emubd_destroy(lfs_emubd_t *emu); | ||||
|  | ||||
| // Read a block | ||||
| lfs_error_t lfs_emubd_read(lfs_emubd_t *bd, uint8_t *buffer, | ||||
|         lfs_ino_t ino, lfs_off_t off, lfs_size_t size); | ||||
|  | ||||
| // Program a block | ||||
| // | ||||
| // The block must have previously been erased. | ||||
| lfs_error_t lfs_emubd_write(lfs_emubd_t *bd, const uint8_t *buffer, | ||||
|         lfs_ino_t ino, lfs_off_t off, lfs_size_t size); | ||||
|  | ||||
| // Erase a block | ||||
| // | ||||
| // A block must be erased before being programmed. The | ||||
| // state of an erased block is undefined. | ||||
| lfs_error_t lfs_emubd_erase(lfs_emubd_t *bd, | ||||
|         lfs_ino_t ino, lfs_off_t off, lfs_size_t size); | ||||
|  | ||||
| // Sync the block device | ||||
| lfs_error_t lfs_emubd_sync(lfs_emubd_t *bd); | ||||
|  | ||||
| // Get a description of the block device | ||||
| // | ||||
| // Any unknown information may be left unmodified | ||||
| lfs_error_t lfs_emubd_info(lfs_emubd_t *bd, struct lfs_bd_info *info); | ||||
|  | ||||
| // Block device operations | ||||
| extern const struct lfs_bd_ops lfs_emubd_ops; | ||||
|  | ||||
|  | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user