diff options
Diffstat (limited to 'api/src/glfs-internal.h')
| -rw-r--r-- | api/src/glfs-internal.h | 68 | 
1 files changed, 51 insertions, 17 deletions
diff --git a/api/src/glfs-internal.h b/api/src/glfs-internal.h index 25571f7f11c..684636c360b 100644 --- a/api/src/glfs-internal.h +++ b/api/src/glfs-internal.h @@ -18,6 +18,38 @@  #define DEFAULT_REVAL_COUNT 1 +#ifndef GF_DARWIN_HOST_OS +#ifndef GFAPI_PUBLIC +#define GFAPI_PUBLIC(sym, ver) /**/ +#endif +#ifndef GFAPI_PRIVATE +#define GFAPI_PRIVATE(sym, ver) /**/ +#endif +#define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, ver) \ +        asm(".symver pub_"STR(fn)", "STR(fn)"@@GFAPI_"STR(ver)) + +#define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, ver) \ +        asm(".symver priv_"STR(fn)", "STR(fn)"@@GFAPI_PRIVATE_"STR(ver)) + +#define GFAPI_SYMVER_PUBLIC(fn1, fn2, ver) \ +        asm(".symver pub_"STR(fn1)", "STR(fn2)"@@GFAPI_"STR(ver)) + +#define GFAPI_SYMVER_PRIVATE(fn1, fn2, ver) \ +        asm(".symver priv_"STR(fn1)", "STR(fn2)"@@GFAPI_PRIVATE_"STR(ver)) +#define STR(str) #str +#else +#ifndef GFAPI_PUBLIC +#define GFAPI_PUBLIC(sym, ver) __asm("_" __STRING(sym) "$GFAPI_" __STRING(ver)) +#endif +#ifndef GFAPI_PRIVATE +#define GFAPI_PRIVATE(sym, ver) __asm("_" __STRING(sym) "$GFAPI_PRIVATE_" __STRING(ver)) +#endif +#define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, dotver) /**/ +#define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, dotver) /**/ +#define GFAPI_SYMVER_PUBLIC(fn1, fn2, dotver) /**/ +#define GFAPI_SYMVER_PRIVATE(fn1, fn2, dotver) /**/ +#endif +  /*   * syncop_xxx() calls are executed in two ways, one is inside a synctask where   * the executing function will do 'swapcontext' and the other is without @@ -51,7 +83,7 @@  #define GLFS_LOC_FILL_INODE(oinode, loc, label) do {   \  	loc.inode = inode_ref (oinode);                \  	uuid_copy (loc.gfid, oinode->gfid);            \ -	ret = priv_glfs_loc_touchup (&loc);            \ +	ret = glfs_loc_touchup (&loc);                 \  	if (ret != 0) {                                \  		errno = EINVAL;                        \  		goto label;                            \ @@ -67,7 +99,7 @@  	}                                                                 \  	loc.parent = inode_ref (pinode);                                  \  	loc.name = path;                                                  \ -	ret = priv_glfs_loc_touchup (&loc);                               \ +	ret = glfs_loc_touchup (&loc);                                    \  	if (ret != 0) {                                                   \  		errno = EINVAL;                                           \  		goto label;                                               \ @@ -136,10 +168,12 @@ struct glfs_object {  #define GF_MEMPOOL_COUNT_OF_LRU_BUF_T     256  int glfs_mgmt_init (struct glfs *fs); -void priv_glfs_init_done (struct glfs *fs, int ret); +void glfs_init_done (struct glfs *fs, int ret) +        GFAPI_PRIVATE(glfs_init_done, 3.4.0);  int glfs_process_volfp (struct glfs *fs, FILE *fp);  int priv_glfs_resolve (struct glfs *fs, xlator_t *subvol, const char *path, -                       loc_t *loc, struct iatt *iatt, int reval); +                       loc_t *loc, struct iatt *iatt, int reval) +        GFAPI_PRIVATE(glfs_resolve, 3.7.0);  int glfs_lresolve (struct glfs *fs, xlator_t *subvol, const char *path, loc_t *loc,  		   struct iatt *iatt, int reval);  fd_t *glfs_resolve_fd (struct glfs *fs, xlator_t *subvol, struct glfs_fd *glfd); @@ -198,9 +232,11 @@ void glfs_fd_destroy (struct glfs_fd *glfd);  struct glfs_fd *glfs_fd_new (struct glfs *fs);  void glfs_fd_bind (struct glfs_fd *glfd); -xlator_t *priv_glfs_active_subvol (struct glfs *fs); +xlator_t *glfs_active_subvol (struct glfs *fs) +        GFAPI_PRIVATE(glfs_active_subvol, 3.4.0);  xlator_t *__glfs_active_subvol (struct glfs *fs); -void priv_glfs_subvol_done (struct glfs *fs, xlator_t *subvol); +void glfs_subvol_done (struct glfs *fs, xlator_t *subvol) +        GFAPI_PRIVATE(glfs_subvol_done, 3.4.0);  inode_t *glfs_refresh_inode (xlator_t *subvol, inode_t *inode); @@ -213,10 +249,12 @@ int __glfs_cwd_set (struct glfs *fs, inode_t *inode);  int glfs_resolve_base (struct glfs *fs, xlator_t *subvol, inode_t *inode,  		       struct iatt *iatt); -int priv_glfs_resolve_at (struct glfs *fs, xlator_t *subvol, inode_t *at, +int glfs_resolve_at (struct glfs *fs, xlator_t *subvol, inode_t *at,                            const char *origpath, loc_t *loc, struct iatt *iatt, -                          int follow, int reval); -int priv_glfs_loc_touchup (loc_t *loc); +                          int follow, int reval) +        GFAPI_PRIVATE(glfs_resolve_at, 3.4.0); +int glfs_loc_touchup (loc_t *loc) +	GFAPI_PRIVATE(glfs_loc_touchup, 3.4.0);  void glfs_iatt_to_stat (struct glfs *fs, struct iatt *iatt, struct stat *stat);  int glfs_loc_link (loc_t *loc, struct iatt *iatt);  int glfs_loc_unlink (loc_t *loc); @@ -251,7 +289,8 @@ int glfs_get_volume_info (struct glfs *fs);         NULL   : Otherwise.  */ -struct glfs *priv_glfs_new_from_ctx (glusterfs_ctx_t *ctx); +struct glfs *glfs_new_from_ctx (glusterfs_ctx_t *ctx) +        GFAPI_PRIVATE(glfs_new_from_ctx, 3.7.0);  /*    SYNOPSIS @@ -276,13 +315,8 @@ struct glfs *priv_glfs_new_from_ctx (glusterfs_ctx_t *ctx);         void  */ -void priv_glfs_free_from_ctx (struct glfs *fs); +void glfs_free_from_ctx (struct glfs *fs) +         GFAPI_PRIVATE(glfs_free_from_ctx, 3.7.0); -#define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, dotver) \ -        asm(".symver pub_"STR(fn)", "STR(fn)"@@GFAPI_"STR(dotver)) - -#define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, dotver) \ -        asm(".symver priv_"STR(fn)", "STR(fn)"@@GFAPI_PRIVATE_"STR(dotver)) -#define STR(str) #str  #endif /* !_GLFS_INTERNAL_H */  | 
