[BACK]Return to cmmu.h CVS log [TXT][DIR] Up to [local] / sys / arch / m88k / include

Annotation of sys/arch/m88k/include/cmmu.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: cmmu.h,v 1.17 2007/02/11 12:49:35 miod Exp $ */
                      2: /*
                      3:  * Mach Operating System
                      4:  * Copyright (c) 1993-1992 Carnegie Mellon University
                      5:  * All Rights Reserved.
                      6:  *
                      7:  * Permission to use, copy, modify and distribute this software and its
                      8:  * documentation is hereby granted, provided that both the copyright
                      9:  * notice and this permission notice appear in all copies of the
                     10:  * software, derivative works or modified versions, and any portions
                     11:  * thereof, and that both notices appear in supporting documentation.
                     12:  *
                     13:  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
                     14:  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
                     15:  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     16:  *
                     17:  * Carnegie Mellon requests users of this software to return to
                     18:  *
                     19:  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
                     20:  *  School of Computer Science
                     21:  *  Carnegie Mellon University
                     22:  *  Pittsburgh PA 15213-3890
                     23:  *
                     24:  * any improvements or extensions that they make and grant Carnegie Mellon
                     25:  * the rights to redistribute these changes.
                     26:  */
                     27:
                     28: #ifndef        _M88K_CMMU_H_
                     29: #define        _M88K_CMMU_H_
                     30:
                     31: /*
                     32:  * Prototypes and stuff for cmmu.c.
                     33:  */
                     34: #if defined(_KERNEL) && !defined(_LOCORE)
                     35:
                     36: #ifdef MULTIPROCESSOR
                     37: /*
                     38:  * This lock protects the cmmu SAR and SCR's; other ports
                     39:  * can be accessed without locking it.
                     40:  *
                     41:  * May be used from "db_interface.c".
                     42:  */
                     43: extern __cpu_simple_lock_t cmmu_cpu_lock;
                     44:
                     45: #define CMMU_LOCK   __cpu_simple_lock(&cmmu_cpu_lock)
                     46: #define CMMU_UNLOCK __cpu_simple_unlock(&cmmu_cpu_lock)
                     47:
                     48: #else
                     49:
                     50: #define        CMMU_LOCK       do { /* nothing */ } while (0)
                     51: #define        CMMU_UNLOCK     do { /* nothing */ } while (0)
                     52:
                     53: #endif /* MULTIPROCESSOR */
                     54:
                     55: /* machine dependent cmmu function pointer structure */
                     56: struct cmmu_p {
                     57:        cpuid_t (*init)(void);
                     58:        void (*setup_board_config)(void);
                     59:        void (*cpu_configuration_print)(int);
                     60:        void (*shutdown)(void);
                     61:        cpuid_t (*cpu_number)(void);
                     62:        void (*set_sapr)(cpuid_t, apr_t);
                     63:        void (*set_uapr)(apr_t);
                     64:        void (*flush_tlb)(cpuid_t, u_int, vaddr_t, u_int);
                     65:        void (*flush_cache)(cpuid_t, paddr_t, psize_t);
                     66:        void (*flush_inst_cache)(cpuid_t, paddr_t, psize_t);
                     67:        void (*flush_data_page)(cpuid_t, paddr_t);
                     68:        void (*dma_cachectl)(pmap_t, vaddr_t, vsize_t, int);
                     69:        void (*dma_cachectl_pa)(paddr_t, psize_t, int);
                     70: #ifdef MULTIPROCESSOR
                     71:        void (*initialize_cpu)(cpuid_t);
                     72: #endif
                     73: };
                     74:
                     75: extern struct cmmu_p *cmmu;
                     76:
                     77: #define cmmu_init                      (cmmu->init)
                     78: #define setup_board_config             (cmmu->setup_board_config)
                     79: #define        cpu_configuration_print(a)      (cmmu->cpu_configuration_print)(a)
                     80: #define        cmmu_shutdown                   (cmmu->shutdown)
                     81: #define        cmmu_cpu_number                 (cmmu->cpu_number)
                     82: #define        cmmu_set_sapr(a, b)             (cmmu->set_sapr)(a, b)
                     83: #define        cmmu_set_uapr(a)                (cmmu->set_uapr)(a)
                     84: #define        cmmu_flush_tlb(a, b, c, d)      (cmmu->flush_tlb)(a, b, c, d)
                     85: #define        cmmu_flush_cache(a, b, c)       (cmmu->flush_cache)(a, b, c)
                     86: #define        cmmu_flush_inst_cache(a, b, c)  (cmmu->flush_inst_cache)(a, b, c)
                     87: #define        cmmu_flush_data_page(a, b)      (cmmu->flush_data_page)(a, b)
                     88: #define        dma_cachectl(a, b, c, d)        (cmmu->dma_cachectl)(a, b, c, d)
                     89: #define        dma_cachectl_pa(a, b, c)        (cmmu->dma_cachectl_pa)(a, b, c)
                     90: #define        cmmu_initialize_cpu(a)          (cmmu->initialize_cpu)(a)
                     91:
                     92: /*
                     93:  * dma_cachectl() modes
                     94:  */
                     95: #define DMA_CACHE_SYNC         0
                     96: #define DMA_CACHE_SYNC_INVAL   1
                     97: #define DMA_CACHE_INV          2
                     98:
                     99: #endif /* _KERNEL && !_LOCORE */
                    100:
                    101: #endif /* _M88K_CMMU_H_ */

CVSweb