New file |
| | |
| | | // Copyright 2014 Vastech SA (PTY) LTD |
| | | // |
| | | // Licensed under the Apache License, Version 2.0 (the "License"); |
| | | // you may not use this file except in compliance with the License. |
| | | // You may obtain a copy of the License at |
| | | // |
| | | // http://www.apache.org/licenses/LICENSE-2.0 |
| | | // |
| | | // Unless required by applicable law or agreed to in writing, software |
| | | // distributed under the License is distributed on an "AS IS" BASIS, |
| | | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| | | // See the License for the specific language governing permissions and |
| | | // limitations under the License. |
| | | |
| | | // +build linux |
| | | |
| | | package shmqueue |
| | | |
| | | |
| | | //#include <string.h> |
| | | import "C" |
| | | import "unsafe" |
| | | |
| | | func memcpy(dest, src []byte) int { |
| | | n := len(src) |
| | | if len(dest) < len(src) { |
| | | n = len(dest) |
| | | } |
| | | if n == 0 { |
| | | return 0 |
| | | } |
| | | C.memcpy(unsafe.Pointer(&dest[0]), unsafe.Pointer(&src[0]), C.size_t(n)) |
| | | return n |
| | | } |
| | | |
| | | func memmove(dest, src []byte) int { |
| | | n := len(src) |
| | | if len(dest) < len(src) { |
| | | n = len(dest) |
| | | } |
| | | if n == 0 { |
| | | return 0 |
| | | } |
| | | C.memmove(unsafe.Pointer(&dest[0]), unsafe.Pointer(&src[0]), C.size_t(n)) |
| | | return n |
| | | } |