source: icGREP/icgrep-devel/icgrep/kernels/mmap_kernel.h @ 5425

Last change on this file since 5425 was 5425, checked in by nmedfort, 2 years ago

Changes towards separate compilation

File size: 1021 bytes
Line 
1/*
2 *  Copyright (c) 2017 International Characters.
3 *  This software is licensed to the public under the Open Software License 3.0.
4 */
5#ifndef MMAP_KERNEL_H
6#define MMAP_KERNEL_H
7
8#include "kernel.h"
9namespace IDISA { class IDISA_Builder; }
10
11namespace kernel {
12
13/* The MMapSourceKernel is a simple wrapper for an external MMap file buffer.
14   The doSegment method of this kernel feeds one segment at a time to a
15   pipeline. */
16   
17class MMapSourceKernel final: public SegmentOrientedKernel {
18public:
19    MMapSourceKernel(IDISA::IDISA_Builder * iBuilder, unsigned blocksPerSegment = 1, unsigned codeUnitWidth = 8); 
20    bool moduleIDisSignature() override { return true; }
21private:
22    void linkExternalMethods() override;
23    void generateInitializeMethod() override;
24    void generateDoSegmentMethod() override;
25    void generateFinalizeMethod() override;
26private:
27    const unsigned          mSegmentBlocks;
28    const unsigned          mCodeUnitWidth;
29    llvm::Function *        mFileSizeFunction;
30};
31
32}
33
34#endif
Note: See TracBrowser for help on using the repository browser.