1 #ifndef __RMTFS_H__
2 #define __RMTFS_H__
3 
4 #include <stdint.h>
5 #include "qmi_rmtfs.h"
6 
7 #define SECTOR_SIZE		512
8 
9 struct qmi_packet {
10 	uint8_t flags;
11 	uint16_t txn_id;
12 	uint16_t msg_id;
13 	uint16_t msg_len;
14 	uint8_t data[];
15 } __attribute__((__packed__));
16 
17 struct rmtfs_mem;
18 
19 struct rmtfs_mem *rmtfs_mem_open(void);
20 void rmtfs_mem_close(struct rmtfs_mem *rmem);
21 int64_t rmtfs_mem_alloc(struct rmtfs_mem *rmem, size_t size);
22 void rmtfs_mem_free(struct rmtfs_mem *rmem);
23 ssize_t rmtfs_mem_read(struct rmtfs_mem *rmem, unsigned long phys_address, void *buf, ssize_t len);
24 ssize_t rmtfs_mem_write(struct rmtfs_mem *rmem, unsigned long phys_address, const void *buf, ssize_t len);
25 
26 struct rmtfd;
27 
28 int storage_init(const char *storage_root, bool read_only, bool use_partitions);
29 struct rmtfd *storage_open(unsigned node, const char *path);
30 struct rmtfd *storage_get(unsigned node, int caller_id);
31 void storage_close(struct rmtfd *rmtfd);
32 int storage_get_caller_id(const struct rmtfd *rmtfd);
33 int storage_get_error(const struct rmtfd *rmtfd);
34 void storage_exit(void);
35 ssize_t storage_pread(const struct rmtfd *rmtfd, void *buf, size_t nbyte, off_t offset);
36 ssize_t storage_pwrite(struct rmtfd *rmtfd, const void *buf, size_t nbyte, off_t offset);
37 
38 int rproc_init(void);
39 int rproc_start(void);
40 int rproc_stop(void);
41 
42 #endif
43