Volkov: добавить Sprinter Commander
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места. Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
/* sc_tree.h — пошаговый BFS-обход дерева для рекурсивных файловых jobs. */
|
||||
|
||||
#ifndef SC_TREE_H
|
||||
#define SC_TREE_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "sc_copy.h"
|
||||
#include "sc_entry.h"
|
||||
|
||||
#define SC_TREE_STEP_ERROR (-1)
|
||||
#define SC_TREE_STEP_DONE 0
|
||||
#define SC_TREE_STEP_FILE 1
|
||||
#define SC_TREE_STEP_DIRECTORY 2
|
||||
#define SC_TREE_STEP_SCAN_DIR 3
|
||||
|
||||
typedef struct {
|
||||
uint8_t block;
|
||||
uint8_t page;
|
||||
uint8_t active;
|
||||
uint8_t scan_state;
|
||||
uint16_t head;
|
||||
uint16_t tail;
|
||||
uint16_t current;
|
||||
uint16_t reverse;
|
||||
uint16_t created_directories;
|
||||
uint16_t files_seen;
|
||||
int error;
|
||||
} ScTreeJob;
|
||||
|
||||
int sc_tree_begin(ScTreeJob *job, ScCopyJob *copy) __banked;
|
||||
int sc_tree_add_root(ScTreeJob *job, ScCopyJob *copy,
|
||||
const char *source_base, const char *target_base,
|
||||
const char *name) __banked;
|
||||
int sc_tree_add_delete_root(ScTreeJob *job, const char *name) __banked;
|
||||
int sc_tree_next(ScTreeJob *job, ScCopyJob *copy,
|
||||
const char *source_base, const char *target_base,
|
||||
ScDirEntry *entry) __banked;
|
||||
int sc_tree_delete_next(ScTreeJob *job, ScCopyJob *copy,
|
||||
const char *source_base,
|
||||
ScDirEntry *entry) __banked;
|
||||
int sc_tree_finish(ScTreeJob *job, ScCopyJob *copy) __banked;
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user