X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=libcfs%2Finclude%2Flibcfs%2Flibcfs_prim.h;h=03da8fe39d72f49176ccaea176e690ecf9d6ce3a;hp=1bbf943a34f7864c41568a8c0d7430a2fb5368bf;hb=40e312a8275ed9240e63f0ac023d8b7a38136f42;hpb=0f8dca08a4f68cba82c2c822998ecc309d3b7aaf diff --git a/libcfs/include/libcfs/libcfs_prim.h b/libcfs/include/libcfs/libcfs_prim.h index 1bbf943..03da8fe 100644 --- a/libcfs/include/libcfs/libcfs_prim.h +++ b/libcfs/include/libcfs/libcfs_prim.h @@ -65,6 +65,8 @@ void cfs_waitlink_init(cfs_waitlink_t *link); void cfs_waitq_add(cfs_waitq_t *waitq, cfs_waitlink_t *link); void cfs_waitq_add_exclusive(cfs_waitq_t *waitq, cfs_waitlink_t *link); +void cfs_waitq_add_exclusive_head(cfs_waitq_t *waitq, + cfs_waitlink_t *link); void cfs_waitq_del(cfs_waitq_t *waitq, cfs_waitlink_t *link); int cfs_waitq_active(cfs_waitq_t *waitq); void cfs_waitq_signal(cfs_waitq_t *waitq); @@ -86,4 +88,35 @@ void cfs_timer_arm(cfs_timer_t *t, cfs_time_t deadline); void cfs_timer_disarm(cfs_timer_t *t); int cfs_timer_is_armed(cfs_timer_t *t); cfs_time_t cfs_timer_deadline(cfs_timer_t *t); + +/* + * Memory + */ +#ifndef cfs_memory_pressure_get +#define cfs_memory_pressure_get() (0) +#endif +#ifndef cfs_memory_pressure_set +#define cfs_memory_pressure_set() do {} while (0) +#endif +#ifndef cfs_memory_pressure_clr +#define cfs_memory_pressure_clr() do {} while (0) +#endif + +static inline int cfs_memory_pressure_get_and_set(void) +{ + int old = cfs_memory_pressure_get(); + + if (!old) + cfs_memory_pressure_set(); + return old; +} + +static inline void cfs_memory_pressure_restore(int old) +{ + if (old) + cfs_memory_pressure_set(); + else + cfs_memory_pressure_clr(); + return; +} #endif