Skip to content

Commit 9c1946d

Browse files
committed
removed func version with new address specification
1 parent 22de029 commit 9c1946d

File tree

3 files changed

+4
-71
lines changed

3 files changed

+4
-71
lines changed

unix/mremap_linux_test.go

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -26,44 +26,7 @@ func TestMremap(t *testing.T) {
2626
t.Fatalf("Msync: %v", err)
2727
}
2828

29-
bNew, err := unix.Mmap(-1, int64(unix.Getpagesize()*4), unix.Getpagesize(), unix.PROT_NONE, unix.MAP_ANON|unix.MAP_PRIVATE)
30-
if err != nil {
31-
t.Fatalf("Mmap: %v", err)
32-
}
33-
34-
bRemapped, err := unix.Mremap(b, bNew, 0)
35-
if err != nil {
36-
t.Fatalf("Mremap: %v", err)
37-
}
38-
if &bRemapped[0] != &bNew[0] {
39-
t.Fatal("bNew and bRemapped start at different pointers")
40-
}
41-
if bRemapped[0] != 42 {
42-
t.Fatal("first element wasn't mapped")
43-
}
44-
if len(bNew) != len(bRemapped) {
45-
t.Fatal("bNew len doesn't equal bRemapped len")
46-
}
47-
if cap(bNew) != cap(bRemapped) {
48-
t.Fatal("bNew cap doesn't equal bRemapped len")
49-
}
50-
}
51-
52-
func TestMremap2(t *testing.T) {
53-
b, err := unix.Mmap(-1, 0, unix.Getpagesize()*2, unix.PROT_NONE, unix.MAP_ANON|unix.MAP_PRIVATE)
54-
if err != nil {
55-
t.Fatalf("Mmap: %v", err)
56-
}
57-
if err := unix.Mprotect(b, unix.PROT_READ|unix.PROT_WRITE); err != nil {
58-
t.Fatalf("Mprotect: %v", err)
59-
}
60-
61-
b[0] = 42
62-
if err := unix.Msync(b, unix.MS_SYNC); err != nil {
63-
t.Fatalf("Msync: %v", err)
64-
}
65-
66-
bNew, err := unix.Mremap2(b, unix.Getpagesize(), unix.MREMAP_MAYMOVE)
29+
bNew, err := unix.Mremap(b, unix.Getpagesize(), unix.MREMAP_MAYMOVE)
6730
if err != nil {
6831
t.Fatalf("Mremap2: %v", err)
6932
}

unix/syscall_linux.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2141,12 +2141,8 @@ func Munmap(b []byte) (err error) {
21412141
return mapper.Munmap(b)
21422142
}
21432143

2144-
func Mremap(oldData []byte, newData []byte, flags int) (data []byte, err error) {
2145-
return mapper.Mremap(oldData, newData, flags)
2146-
}
2147-
2148-
func Mremap2(oldData []byte, newLength int, flags int) (data []byte, err error) {
2149-
return mapper.Mremap2(oldData, newLength, flags)
2144+
func Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) {
2145+
return mapper.Mremap(oldData, newLength, flags)
21502146
}
21512147

21522148
//sys Madvise(b []byte, advice int) (err error)

unix/syscall_unix.go

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -148,33 +148,7 @@ func (m *mmapper) Munmap(data []byte) (err error) {
148148
return nil
149149
}
150150

151-
func (m *mmapper) Mremap(oldData []byte, newData []byte, flags int) (data []byte, err error) {
152-
if len(oldData) == 0 || len(oldData) != cap(oldData) || len(newData) == 0 || len(newData) != cap(newData) {
153-
return nil, EINVAL
154-
}
155-
flags |= MREMAP_MAYMOVE | MREMAP_FIXED
156-
157-
pOld := &oldData[cap(oldData)-1]
158-
m.Lock()
159-
defer m.Unlock()
160-
bOld := m.active[pOld]
161-
if bOld == nil || &bOld[0] != &oldData[0] {
162-
return nil, EINVAL
163-
}
164-
newAddr, errno := m.mremap(uintptr(unsafe.Pointer(&bOld[0])), uintptr(len(bOld)), uintptr(len(newData)), flags, uintptr(unsafe.Pointer(&newData[0])))
165-
if errno != nil {
166-
return nil, errno
167-
}
168-
bNew := unsafe.Slice((*byte)(unsafe.Pointer(newAddr)), len(newData))
169-
pNew := &bNew[cap(bNew)-1]
170-
m.active[pNew] = bNew
171-
if flags&MREMAP_DONTUNMAP == 0 {
172-
delete(m.active, pOld)
173-
}
174-
return bNew, nil
175-
}
176-
177-
func (m *mmapper) Mremap2(oldData []byte, newLength int, flags int) (data []byte, err error) {
151+
func (m *mmapper) Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) {
178152
if newLength <= 0 || len(oldData) == 0 || len(oldData) != cap(oldData) {
179153
return nil, EINVAL
180154
}

0 commit comments

Comments
 (0)