/* 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 typedef struct { implements_lib9p_srv_file; 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; } _static_common; struct static_dir { _static_common; /* NULL-terminated */ implements_lib9p_srv_file *members[]; }; struct static_file { _static_common; 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_ */