Contiki-Inga 3.x
|
Files | |
file | fat_coop.c |
FAT driver coop additions implementation | |
file | fat_coop.h |
FAT driver Coop Additions definitions | |
file | fat-coop-arch.c |
FAT driver Coop Additions implementation - Platform specific | |
file | fat-coop-arch.h |
FAT driver Coop Additions definitions - Platform specific | |
Functions | |
void | coop_mt_init (void *data) |
This function is mostly copied from the arm/mtarch.c file. | |
void | coop_switch_sp () |
Function switches the stack pointers for Atmel based devices (32 GPR's). | |
void | perform_next_step (QueueEntry *entry) |
Changes Stack pointer to internal Thread. More... | |
void | finish_operation (QueueEntry *entry) |
Sends a Message to the source_process of the Entry and removes the Entry from the queue. More... | |
void | operation (void *data) |
uint8_t | push_on_buffer (uint8_t *source, uint16_t length) |
This function is used to buffer the payload of write requests in a ring buffer However, the ring functionality does not work. | |
int8_t | ccfs_write (int fd, uint8_t *buf, uint16_t length, uint8_t *token) |
void | coop_finished_op () |
This Function jumps back to perform_next_step() | |
void | coop_mt_stop () |
Set the interal stack to NULL to end process. | |
Variables | |
struct file_system | mounted |
From fat.c. | |
struct file | fat_file_pool [FAT_FD_POOL_SIZE] |
From fat.c. | |
struct file_desc | fat_fd_pool [FAT_FD_POOL_SIZE] |
From fat.c. | |
int8_t ccfs_write | ( | int | fd, |
uint8_t * | buf, | ||
uint16_t | length, | ||
uint8_t * | token | ||
) |
FIXME: We push information in a ring buffer, which actually does not work as a ring, because the eventual cfs_write call does not know anything about rings
Definition at line 568 of file fat_coop.c.
References NULL, PROCESS_CURRENT, PROCESS_ERR_FULL, process_post(), process_start(), and push_on_buffer().
void finish_operation | ( | QueueEntry * | entry | ) |
Sends a Message to the source_process of the Entry and removes the Entry from the queue.
*entry | The entry which should be finished. |
Definition at line 289 of file fat_coop.c.
References coop_mt_init(), coop_mt_stop(), NULL, and process_post().
void operation | ( | void * | data | ) |
FIXME: Ring Buffer functionality does not work, because cfs_write does not know, that the buffer may wrap around
Definition at line 179 of file fat_coop.c.
References cfs_close(), cfs_closedir(), cfs_open(), cfs_opendir(), cfs_readdir(), cfs_remove(), cfs_seek(), fat_fd_pool, and NULL.
Referenced by coop_mt_init().
void perform_next_step | ( | QueueEntry * | entry | ) |
Changes Stack pointer to internal Thread.
Returns after one step has been completed.
If this function was called with one specific QueueEntry, then this function must be called again and again with the same QueueEntry, until the QueueEntry is finished executing.
*entry | The QueueEntry, which should be processed. |
Definition at line 198 of file fat-coop-arch.c.
References coop_mt_init(), coop_switch_sp(), and NULL.