git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor: mount system reworked
[lunaix-os.git]
/
lunaix-os
/
kernel
/
mm
/
region.c
diff --git
a/lunaix-os/kernel/mm/region.c
b/lunaix-os/kernel/mm/region.c
index d9fddeb0688da964512df788207637f959e6e0dd..920c35bbb86a3ea26cf04c247bce0b317128c5e1 100644
(file)
--- a/
lunaix-os/kernel/mm/region.c
+++ b/
lunaix-os/kernel/mm/region.c
@@
-1,65
+1,57
@@
-#include <lunaix/mm/kalloc.h>
#include <lunaix/mm/region.h>
#include <lunaix/mm/region.h>
+#include <lunaix/mm/valloc.h>
void
void
-region_add(struct mm_region*
*
regions,
+region_add(struct mm_region* regions,
unsigned long start,
unsigned long end,
unsigned int attr)
{
unsigned long start,
unsigned long end,
unsigned int attr)
{
- struct mm_region* region =
lxm
alloc(sizeof(struct mm_region));
+ struct mm_region* region =
v
alloc(sizeof(struct mm_region));
*region = (struct mm_region){ .attr = attr, .end = end, .start = start };
*region = (struct mm_region){ .attr = attr, .end = end, .start = start };
- if (!*regions) {
- llist_init_head(®ion->head);
- *regions = region;
- } else {
- llist_append(&(*regions)->head, ®ion->head);
- }
+ llist_append(®ions->head, ®ion->head);
}
void
}
void
-region_release_all(struct mm_region*
*
regions)
+region_release_all(struct mm_region* regions)
{
struct mm_region *pos, *n;
{
struct mm_region *pos, *n;
- llist_for_each(pos, n, &
(*regions)
->head, head)
+ llist_for_each(pos, n, &
regions
->head, head)
{
lxfree(pos);
}
{
lxfree(pos);
}
-
- *regions = NULL;
}
void
}
void
-region_copy(struct mm_region*
* src, struct mm_region*
* dest)
+region_copy(struct mm_region*
src, struct mm_region
* dest)
{
{
- if (!
*
src) {
+ if (!src) {
return;
}
struct mm_region *pos, *n;
return;
}
struct mm_region *pos, *n;
- llist_init_head(*dest);
- llist_for_each(pos, n, &(*src)->head, head)
+ llist_for_each(pos, n, &src->head, head)
{
region_add(dest, pos->start, pos->end, pos->attr);
}
}
struct mm_region*
{
region_add(dest, pos->start, pos->end, pos->attr);
}
}
struct mm_region*
-region_get(struct mm_region*
*
regions, unsigned long vaddr)
+region_get(struct mm_region* regions, unsigned long vaddr)
{
{
- if (!
*
regions) {
+ if (!regions) {
return NULL;
}
struct mm_region *pos, *n;
return NULL;
}
struct mm_region *pos, *n;
- llist_for_each(pos, n, &
(*regions)
->head, head)
+ llist_for_each(pos, n, &
regions
->head, head)
{
{
- if (
vaddr >= pos->start
&& vaddr < pos->end) {
+ if (
pos->start <= vaddr
&& vaddr < pos->end) {
return pos;
}
}
return pos;
}
}