/* * Secure X Message Passing Library v2 examples. * * (c) Alexander Vdolainen 2013-2015 * * libsxmp is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * libsxmp is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see ."; * */ #ifndef __SXMP_EXAMPLES_SMPFD_DEFS_H__ #define __SXMP_EXAMPLES_SMPFD_DEFS_H__ struct mp_fnode; struct smpfd_ctx { char *hostname; char *root_dir; struct mp_fnode *root; }; struct mp_session { sxlink_t *link; char cwd[MAX_CWDLEN]; }; typedef enum { REGULAR = 1, DIRECTORY, } fnode_type_t; struct mp_pcache_t { list_head_t *pg; size_t size; }; struct mp_fnode { int fd; uid_t uid; gid_t gid; mode_t mode; size_t size; uint32_t ref_count; uint64_t hash; fnode_type_t type; struct mp_fnode *parent; union { struct mp_pcache_t *bcache; list_head_t *dcache; }; pthread_mutex_t lock; }; #endif /* __SXMP_EXAMPLES_SMPFD_DEFS_H__ */