NanoPayload

stage2/paging.c

216:95be7694d999
2017-06-28 Paul Boddie Employ structure member names to make initialisation clearer.
     1 /*     2  * Paging utilities.     3  *     4  * Copyright (C) 2016 Paul Boddie <paul@boddie.org.uk>     5  *     6  * This program is free software: you can redistribute it and/or modify     7  * it under the terms of the GNU General Public License as published by     8  * the Free Software Foundation, either version 3 of the License, or     9  * (at your option) any later version.    10  *    11  * This program is distributed in the hope that it will be useful,    12  * but WITHOUT ANY WARRANTY; without even the implied warranty of    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    14  * GNU General Public License for more details.    15  *    16  * You should have received a copy of the GNU General Public License    17  * along with this program.  If not, see <http://www.gnu.org/licenses/>.    18  */    19     20 #include "paging.h"    21 #include "memory.h"    22     23 inline u32 user_address(u32 addr)    24 {    25 	return addr & USER_ADDRESS_MASK;    26 }    27     28 inline u32 previous_page(u32 addr, u32 pagesize)    29 {    30 	return addr - pagesize * 2;    31 }    32     33 inline u32 next_page(u32 addr, u32 pagesize)    34 {    35 	return addr + pagesize * 2;    36 }    37     38 inline u32 page_size(u32 size)    39 {    40 	return size / 2;    41 }