usermode/library/mcore/src/hal/pcm_i.h File Reference

#include <stdint.h>
#include <mmintrin.h>
#include <list.h>
#include <spinlock.h>
#include "cuckoo_hash/PointerHashInline.h"

Go to the source code of this file.

Classes

struct  pcm_storeset_s

Defines

#define WRITE_COMBINING_BUFFERS_NUM   8
#define WCBUF_HASHTBL_SIZE   WRITE_COMBINING_BUFFERS_NUM*4
#define MEMORY_BANKING_FACTOR   8
#define TOTAL_OUTCOMES_NUM   1000000
#define NS2CYCLE(__ns)   ((__ns) * M_PCM_CPUFREQ / 1000)
#define CYCLE2NS(__cycles)   ((__cycles) * 1000 / M_PCM_CPUFREQ)
#define likely(x)   __builtin_expect(!!(x), 1)
#define unlikely(x)   __builtin_expect(!!(x), 0)
#define PAGE_SIZE   4096
#define NUM_PAGES(size)   ((((size) % PAGE_SIZE) == 0? 0 : 1) + (size)/PAGE_SIZE)
#define SIZEOF_PAGES(size)   (NUM_PAGES((size)) * PAGE_SIZE)
#define PAGE_ALIGN(addr)   (NUM_PAGES((addr)) * PAGE_SIZE)
#define CACHELINE_SIZE   32
#define CACHELINE_SIZE_LOG   5
#define BLOCK_ADDR(addr)   ( (pcm_word_t *) (((pcm_word_t) (addr)) & ~(CACHELINE_SIZE - 1)) )
#define INDEX_ADDR(addr)   ( (pcm_word_t *) (((pcm_word_t) (addr)) & (CACHELINE_SIZE - 1)) )
#define RAM_SYSTEM_PEAK_BANDWIDTH_MB   7000

Typedefs

typedef uintptr_t pcm_word_t
typedef uint64_t pcm_hrtime_t
typedef pcm_storeset_s pcm_storeset_t
typedef cacheline_tbl_s cacheline_tbl_t

Functions

int pcm_storeset_create (pcm_storeset_t **setp)
void pcm_storeset_destroy (pcm_storeset_t *set)
pcm_storeset_tpcm_storeset_get (void)
void pcm_storeset_put (void)
void pcm_wb_store_emulate_crash (pcm_storeset_t *set, volatile pcm_word_t *addr, pcm_word_t val)
void pcm_wb_flush_emulate_crash (pcm_storeset_t *set, volatile pcm_word_t *addr)
void pcm_nt_store_emulate_crash (pcm_storeset_t *set, volatile pcm_word_t *addr, pcm_word_t val)
void pcm_nt_flush_emulate_crash (pcm_storeset_t *set)

Variables

unsigned int pcm_likelihood_store_blockwaits
volatile arch_spinlock_t ticket_lock


Detailed Description

PCM emulation over DRAM.

Definition in file pcm_i.h.


Define Documentation

#define MEMORY_BANKING_FACTOR   8

The memory banking factor. Must be a power of 2.

Definition at line 85 of file pcm_i.h.

#define WCBUF_HASHTBL_SIZE   WRITE_COMBINING_BUFFERS_NUM*4

The size of the WC-buffer hash table. Must be a power of 2.

Definition at line 82 of file pcm_i.h.

Referenced by pcm_storeset_create().

#define WRITE_COMBINING_BUFFERS_NUM   8

The number of available write-combining buffers.

Definition at line 79 of file pcm_i.h.

Referenced by pcm_nt_store_emulate_crash().


Generated on Sat Apr 23 11:43:36 2011 for Mnemosyne by  doxygen 1.4.7