/* srv9p/static9p.h - Serve static files over 9P * * Copyright (C) 2024 Luke T. Shumaker * SPDX-Licence-Identifier: AGPL-3.0-or-later */ #ifndef _STATIC9P_H_ #define _STATIC9P_H_ #include struct static_metadata { struct lib9p_srv_file header; char *u_name; uint32_t u_num; char *g_name; uint32_t g_num; char *m_name; uint32_t m_num; uint64_t pathnum; char *name; lib9p_dm_t perm; uint32_t atime, mtime; }; struct static_dir { struct static_metadata metadata; /* NULL-terminated */ struct lib9p_srv_file *members[]; }; struct static_file { struct static_metadata metadata; char *data_start; /* must not be NULL */ char *data_end; /* may be NULL, in which case data_size is used */ size_t data_size; /* only used if .data_end==NULL */ }; extern struct lib9p_srv_file_vtable static_dir_vtable; extern struct lib9p_srv_file_vtable static_file_vtable; #endif /* _STATIC9P_H_ */