121#define KST_FILE_FORMAT 1u
129#define KST_FILE_LINE_MAX 64u
135#define KST_FILE_LINES_MAX ((unsigned)KST_F_COUNT + 8u)
143#define KST_FILE_MAX ((size_t)KST_FILE_LINES_MAX * (KST_FILE_LINE_MAX + 2u))
kst_file_err_t
Why a text is refused.
Definition kst_file.h:150
@ KST_FILE_ERR_CHECKSUM
Definition kst_file.h:165
@ KST_FILE_ERR_TYPE
Definition kst_file.h:177
@ KST_FILE_ERR_VERSION
Definition kst_file.h:155
@ KST_FILE_ERR_NOT_KST
Definition kst_file.h:154
@ KST_FILE_ERR_MALFORMED
Definition kst_file.h:162
@ KST_FILE_ERR_OVERSIZED
Definition kst_file.h:153
@ KST_FILE_ERR_TRAILING
Definition kst_file.h:170
@ KST_FILE_ERR_VALUE
Definition kst_file.h:174
@ KST_FILE_ERR_ARG
Definition kst_file.h:152
@ KST_FILE_ERR_DUPLICATE
Definition kst_file.h:173
@ KST_FILE_ERR_NAME
Definition kst_file.h:172
@ KST_FILE_ERR_TRUNCATED
Definition kst_file.h:157
@ KST_FILE_ERR_REG_COUNT
Definition kst_file.h:164
@ KST_FILE_ERR_NEWER
Definition kst_file.h:156
@ KST_FILE_ERR_LINE_END
Definition kst_file.h:160
kst_file_kind_t
What a text is.
Definition kst_file.h:182
@ KST_FILE_EDITED_TYPED
Definition kst_file.h:185
@ KST_FILE_VERIFIED
Definition kst_file.h:183
@ KST_FILE_EDITED_UNTYPED
Definition kst_file.h:187
kst_file_verdict_t
Whether a file loads.
Definition kst_file.h:267
@ KST_FILE_LOAD_HARD_LIMIT
Definition kst_file.h:271
@ KST_FILE_LOAD_ARG
Definition kst_file.h:273
@ KST_FILE_LOAD_OK
Definition kst_file.h:268
@ KST_FILE_LOAD_TYPE_MISMATCH
Definition kst_file.h:269
kst_file_verdict_t kst_file_load(const kst_file_t *file, const kst_image_t *servo, const kst_image_t *backup, kst_file_load_t *out)
Hold a file against the image read from the connected servo.
Definition kst_file.c:1116
size_t kst_file_format(const kst_image_t *img, char *out, size_t out_size)
Write the text of img into out.
Definition kst_file.c:229
kst_file_err_t kst_file_parse(const char *text, size_t len, kst_file_t *out, unsigned *line)
Read len bytes of text.
Definition kst_file.c:996
KST servo programming protocol: limits on an edited image.
uint64_t kst_rules_t
A set of rules, bit n for rule n.
Definition kst_limits.h:141
KST servo programming protocol: the register image and its fields.
uint64_t kst_field_set_t
A set of fields, bit n for field n.
Definition kst_reg.h:110
kst_field_id_t
Every bit of the 32 registers belongs to exactly one field.
Definition kst_reg.h:61
kst_type_t
The servo type of an image.
Definition kst_reg.h:269
What loading a file into a servo does.
Definition kst_file.h:277
kst_field_id_t hard_field
Definition kst_file.h:298
kst_rules_t rules
Definition kst_file.h:293
uint8_t named
Definition kst_file.h:282
uint8_t fields
Definition kst_file.h:285
kst_image_t target
Definition kst_file.h:306
kst_type_t file_type
Definition kst_file.h:280
kst_field_set_t skipped
Definition kst_file.h:289
kst_field_set_t editable
Definition kst_file.h:286
unsigned hard_line
Definition kst_file.h:303
kst_file_kind_t kind
Definition kst_file.h:279
kst_type_t servo_type
Definition kst_file.h:281
A text as read.
Definition kst_file.h:193
kst_type_t type
The servo type the file states; KST_TYPE_NONE for KST_FILE_EDITED_UNTYPED.
Definition kst_file.h:199
uint16_t line[KST_F_COUNT]
Per named field: the line of the file, counted from 1.
Definition kst_file.h:220
kst_field_set_t as_raw
Named fields whose value is raw: the line reads "raw <n>", or the line of an editable field reads as ...
Definition kst_file.h:212
kst_image_t image
The register block; all 0 for a file without one.
Definition kst_file.h:201
kst_field_set_t named
Edited kinds: the fields a line gives a value for.
Definition kst_file.h:207
int32_t value[KST_F_COUNT]
Per named field: the raw value for an editable field and for a field in as_raw, else the displayed va...
Definition kst_file.h:218
The 32 registers, by address.
Definition kst_reg.h:47