aboutsummaryrefslogtreecommitdiff
path: root/weed/storage/backend/memory_map/memory_map.go
blob: 5dc7ba33d7507909154f7f6f69447d21f05efc23 (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
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
}

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