add memobj_has_pager()
This commit is contained in:
@ -184,6 +184,7 @@ int fileobj_create(int fd, struct memobj **objp, int *maxprotp)
|
|||||||
|
|
||||||
memset(newobj, 0, sizeof(*newobj));
|
memset(newobj, 0, sizeof(*newobj));
|
||||||
newobj->memobj.ops = &fileobj_ops;
|
newobj->memobj.ops = &fileobj_ops;
|
||||||
|
newobj->memobj.flags = MF_HAS_PAGER;
|
||||||
newobj->handle = result.handle;
|
newobj->handle = result.handle;
|
||||||
newobj->sref = 1;
|
newobj->sref = 1;
|
||||||
newobj->cref = 1;
|
newobj->cref = 1;
|
||||||
|
|||||||
@ -18,8 +18,15 @@
|
|||||||
#include <ihk/lock.h>
|
#include <ihk/lock.h>
|
||||||
#include <list.h>
|
#include <list.h>
|
||||||
|
|
||||||
|
enum {
|
||||||
|
/* for memobj.flags */
|
||||||
|
MF_HAS_PAGER = 0x0001,
|
||||||
|
};
|
||||||
|
|
||||||
struct memobj {
|
struct memobj {
|
||||||
struct memobj_ops * ops;
|
struct memobj_ops * ops;
|
||||||
|
uint32_t flags;
|
||||||
|
int8_t padding[4];
|
||||||
ihk_spinlock_t lock;
|
ihk_spinlock_t lock;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -74,6 +81,11 @@ static inline void memobj_unlock(struct memobj *obj)
|
|||||||
ihk_mc_spinlock_unlock_noirq(&obj->lock);
|
ihk_mc_spinlock_unlock_noirq(&obj->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int memobj_has_pager(struct memobj *obj)
|
||||||
|
{
|
||||||
|
return !!(obj->flags & MF_HAS_PAGER);
|
||||||
|
}
|
||||||
|
|
||||||
int fileobj_create(int fd, struct memobj **objp, int *maxprotp);
|
int fileobj_create(int fd, struct memobj **objp, int *maxprotp);
|
||||||
|
|
||||||
#endif /* HEADER_MEMOBJ_H */
|
#endif /* HEADER_MEMOBJ_H */
|
||||||
|
|||||||
@ -1708,9 +1708,8 @@ SYSCALL_DECLARE(madvise)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MEMOBJ_IS_FILEOBJ(obj) ((obj) != NULL)
|
if (!range->memobj || !memobj_has_pager(range->memobj)) {
|
||||||
if (!MEMOBJ_IS_FILEOBJ(range->memobj)) {
|
dkprintf("[%d]sys_madvise(%lx,%lx,%x):has not pager"
|
||||||
dkprintf("[%d]sys_madvise(%lx,%lx,%x):not fileobj "
|
|
||||||
"[%lx-%lx) %lx\n",
|
"[%lx-%lx) %lx\n",
|
||||||
ihk_mc_get_processor_id(), start,
|
ihk_mc_get_processor_id(), start,
|
||||||
len0, advice, range->start,
|
len0, advice, range->start,
|
||||||
|
|||||||
Reference in New Issue
Block a user