Search
lxdream.org :: lxdream/test/sh4/utlb.h
lxdream 0.9.1
released Jun 29
Download Now
filename test/sh4/utlb.h
changeset 1022:43f35b12ece7
prev976:e57a25d9eb7d
author nkeynes
date Thu Dec 23 17:50:10 2010 +1000 (13 years ago)
permissions -rw-r--r--
last change Clone iso_memory_stream_new() as iso_mem_stream_new(), since current
versions of libisofs have made it unlinkable on linux
file annotate diff log raw
nkeynes@976
     1
/**
nkeynes@1022
     2
 * $Id$
nkeynes@976
     3
 * 
nkeynes@976
     4
 * UTLB unit test support
nkeynes@976
     5
 *
nkeynes@976
     6
 * Copyright (c) 2006 Nathan Keynes.
nkeynes@976
     7
 *
nkeynes@976
     8
 * This program is free software; you can redistribute it and/or modify
nkeynes@976
     9
 * it under the terms of the GNU General Public License as published by
nkeynes@976
    10
 * the Free Software Foundation; either version 2 of the License, or
nkeynes@976
    11
 * (at your option) any later version.
nkeynes@976
    12
 *
nkeynes@976
    13
 * This program is distributed in the hope that it will be useful,
nkeynes@976
    14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
nkeynes@976
    15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
nkeynes@976
    16
 * GNU General Public License for more details.
nkeynes@976
    17
 */
nkeynes@976
    18
nkeynes@976
    19
#include <../lib.h>
nkeynes@976
    20
nkeynes@976
    21
#ifndef TEST_UTLB
nkeynes@976
    22
#define TEST_UTLB 1
nkeynes@976
    23
nkeynes@976
    24
#define TLB_VALID     0x00000100
nkeynes@976
    25
#define TLB_USERMODE  0x00000040
nkeynes@976
    26
#define TLB_WRITABLE  0x00000020
nkeynes@976
    27
#define TLB_USERWRITABLE (TLB_WRITABLE|TLB_USERMODE)
nkeynes@976
    28
#define TLB_SIZE_MASK 0x00000090
nkeynes@976
    29
#define TLB_SIZE_1K   0x00000000
nkeynes@976
    30
#define TLB_SIZE_4K   0x00000010
nkeynes@976
    31
#define TLB_SIZE_64K  0x00000080
nkeynes@976
    32
#define TLB_SIZE_1M   0x00000090
nkeynes@976
    33
#define TLB_CACHEABLE 0x00000008
nkeynes@976
    34
#define TLB_DIRTY     0x00000004
nkeynes@976
    35
#define TLB_SHARE     0x00000002
nkeynes@976
    36
#define TLB_WRITETHRU 0x00000001
nkeynes@976
    37
nkeynes@976
    38
void set_tlb_enabled( int flag );
nkeynes@976
    39
void invalidate_tlb();
nkeynes@976
    40
void set_sv_enabled( int flag );
nkeynes@976
    41
void set_storequeue_protected( int flag ); 
nkeynes@976
    42
void set_asid( int asid );
nkeynes@976
    43
void load_utlb_entry( int entryNo, uint32_t vpn, uint32_t ppn, int asid, uint32_t mode );
nkeynes@976
    44
nkeynes@976
    45
#define ACCESS_OK        0
nkeynes@976
    46
#define ACCESS_READONLY  1
nkeynes@976
    47
#define ACCESS_PRIVONLY  2
nkeynes@976
    48
#define ACCESS_USERMISS  4
nkeynes@976
    49
void check_utlb_access( uint32_t addr, uint32_t direct_addr, int mode ); 
nkeynes@976
    50
nkeynes@976
    51
#endif /* !TEST_UTLB */
.