8e389c03f8
Реализовать двухпанельный Commander от платформенного PoC до этапов P6-P20: EMM-каталог, сортировку и выбор, операции с файлами и деревьями, транзакционное копирование, метаданные, политику конфликтов и предварительную проверку свободного места. Добавить проектную документацию, HDD/MAME-сценарии и проверенные артефакты. Расширить libc операцией bank_write_page, исправлением режима O_RDONLY и связанными регрессионными проверками.
41 lines
1.5 KiB
C
41 lines
1.5 KiB
C
/*
|
|
* fcntl.h — open / creat for Sprinter ESTEX.
|
|
*
|
|
* Флаги унаследованы от исторического Sprinter C API: младшие биты задают
|
|
* RDONLY=2, WRONLY=1, RDWR=3 (это НЕ POSIX-нумерация). open() переводит их
|
|
* в соглашение ESTEX OPEN $11; нулевой access mode принимается как RDONLY
|
|
* для совместимости с кодом, ожидающим POSIX O_RDONLY=0.
|
|
*
|
|
* The other flags map onto ESTEX calls like this:
|
|
* O_CREAT + O_EXCL → $0B (CREATE_NEW, fails if exists)
|
|
* O_CREAT + O_TRUNC → $0A (CREATE, truncates existing)
|
|
* O_CREAT alone → try $11 (OPEN); on ENOENT fall back to $0A
|
|
* no O_CREAT → $11 (OPEN, fails if missing)
|
|
* O_APPEND → after open, $15 lseek(0, SEEK_END)
|
|
*/
|
|
|
|
#ifndef FCNTL_H
|
|
#define FCNTL_H
|
|
|
|
#ifndef _STD_SEEK_
|
|
#define _STD_SEEK_
|
|
/* constants to be used as 3rd argument for "fseek" function */
|
|
#define SEEK_SET 0
|
|
#define SEEK_CUR 1
|
|
#define SEEK_END 2
|
|
#endif
|
|
|
|
/* Definition "open flags" */
|
|
#define O_WRONLY 0x01 /* 0 file write only */
|
|
#define O_RDONLY 0x02 /* 1 file read only */
|
|
#define O_RDWR 0x03 /* 1,0 file read/write */
|
|
#define O_TRUNC 0x04 /* 2 open with truncation */
|
|
#define O_CREAT 0x08 /* 3 create and open file */
|
|
#define O_EXCL 0x10 /* 4 exclusive open */
|
|
#define O_APPEND 0x20 /* 5 to end of file */
|
|
|
|
int open (const char *path, int flags);
|
|
int creat(const char *path, int mode); /* mode arg ignored on Sprinter */
|
|
|
|
#endif
|