aboutsummaryrefslogtreecommitdiff
path: root/weed/storage/memory_map/memory_map.go
blob: e940fcc0e577aa1183618acb1f9c2701929c0422 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package memory_map

import (
	"os"
	"strconv"
)

type MemoryBuffer struct {
	aligned_length uint64
	length         uint64
	aligned_ptr    uintptr
	ptr            uintptr
	Buffer         []byte
}

type MemoryMap struct {
	File                   *os.File
	file_memory_map_handle uintptr
	write_map_views        []MemoryBuffer
	max_length             uint64
	End_of_file            int64
}

var FileMemoryMap = make(map[string]*MemoryMap)

func ReadMemoryMapMaxSizeMb(memoryMapMaxSizeMbString string) (uint32, error) {
	if memoryMapMaxSizeMbString == "" {
		return 0, nil
	}
	memoryMapMaxSize64, err := strconv.ParseUint(memoryMapMaxSizeMbString, 10, 32)
	return uint32(memoryMapMaxSize64), err
}