LibC+Userland: Add a proper syscall wrapper for purge()
This commit is contained in:
parent
c01f766fb2
commit
907b090ddf
Notes:
sideshowbarker
2024-07-19 10:25:51 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/907b090ddf5
3 changed files with 17 additions and 4 deletions
|
@ -47,4 +47,10 @@ int futex(int32_t* userspace_address, int futex_op, int32_t value, const struct
|
||||||
__RETURN_WITH_ERRNO(rc, rc, -1);
|
__RETURN_WITH_ERRNO(rc, rc, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int purge(int mode)
|
||||||
|
{
|
||||||
|
int rc = syscall(SC_purge, mode);
|
||||||
|
__RETURN_WITH_ERRNO(rc, rc, -1);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,4 +58,9 @@ int set_process_boost(pid_t, int amount);
|
||||||
|
|
||||||
int futex(int32_t* userspace_address, int futex_op, int32_t value, const struct timespec* timeout);
|
int futex(int32_t* userspace_address, int futex_op, int32_t value, const struct timespec* timeout);
|
||||||
|
|
||||||
|
#define PURGE_ALL_VOLATILE 0x1
|
||||||
|
#define PURGE_ALL_CLEAN_INODE 0x2
|
||||||
|
|
||||||
|
int purge(int mode);
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
#include <Kernel/Syscall.h>
|
#include <Kernel/Syscall.h>
|
||||||
|
#include <serenity.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#define PURGE_ALL_VOLATILE 0x1
|
|
||||||
#define PURGE_ALL_CLEAN_INODE 0x2
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
int mode = 0;
|
int mode = 0;
|
||||||
|
@ -20,7 +18,11 @@ int main(int argc, char** argv)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int purged_page_count = syscall(SC_purge, mode);
|
int purged_page_count = purge(mode);
|
||||||
|
if (purged_page_count < 0) {
|
||||||
|
perror("purge");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
printf("Purged page count: %d\n", purged_page_count);
|
printf("Purged page count: %d\n", purged_page_count);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue