StateFS
 All Classes Files Functions Variables Typedefs Enumerations Groups Pages
loader.h
Go to the documentation of this file.
1 #ifndef _STATEFS_LOADER_H_
2 #define _STATEFS_LOADER_H_
3 
10 #include <statefs/provider.h>
11 
12 EXTERN_C_BEGIN
13 
26 {
31  unsigned version;
32 
33  struct statefs_node node;
34 
35  statefs_handle_t (*load)(struct statefs_loader*, char const*);
36  struct statefs_provider *(*get_provider)(struct statefs_loader*, statefs_handle_t);
37  int (*release)(struct statefs_loader*, statefs_handle_t);
38 };
39 
43 static inline bool statefs_is_loader_compatible(struct statefs_loader *p)
44 {
45  unsigned short maj, min;
46  unsigned short prov_maj, prov_min;
47  STATEFS_GET_VERSION(p->version, prov_maj, prov_min);
48  STATEFS_GET_VERSION(STATEFS_CURRENT_VERSION, maj, min);
49  return (prov_maj == maj) && (prov_min <= min);
50 }
51 
56 typedef struct statefs_loader * (*statefs_loader_fn)(void);
57 
61 struct statefs_loader * statefs_loader_get(void);
62 
67 EXTERN_C_END
68 
69 #endif // _STATEFS_LOADER_H_