diff options
Diffstat (limited to 'datapath-windows/ovsext/Netlink/NetlinkBuf.h')
-rw-r--r-- | datapath-windows/ovsext/Netlink/NetlinkBuf.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/datapath-windows/ovsext/Netlink/NetlinkBuf.h b/datapath-windows/ovsext/Netlink/NetlinkBuf.h new file mode 100644 index 000000000..6a7a765d0 --- /dev/null +++ b/datapath-windows/ovsext/Netlink/NetlinkBuf.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2014 VMware, Inc. + * + * 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. + */ + +#ifndef __NETLINK_BUF_H_ +#define __NETLINK_BUF_H_ 1 + +typedef struct _NL_BUF { + PCHAR head; /* start address of the buffer */ + PCHAR tail; /* first empty byte of the buffer */ + UINT32 bufLen; /* original length of buffer */ + UINT32 bufRemLen; /* remaining length of buffer */ +} NL_BUFFER, *PNL_BUFFER; + +VOID NlBufInit(PNL_BUFFER nlBuf, PCHAR base, UINT32 size); +VOID NlBufDeInit(PNL_BUFFER nlBuf); + +BOOLEAN NlBufCopyAtTail(PNL_BUFFER nlBuf, PCHAR data, UINT32 len); +BOOLEAN NlBufCopyAtHead(PNL_BUFFER nlBuf, PCHAR data, UINT32 len); +BOOLEAN NlBufCopyAtOffset(PNL_BUFFER nlBuf, PCHAR data, + UINT32 len, UINT32 offset); + +PCHAR NlBufCopyAtTailUninit(PNL_BUFFER nlBuf, UINT32 len); +PCHAR NlBufCopyAtHeadUninit(PNL_BUFFER nlBuf, UINT32 len); +PCHAR NlBufCopyAtOffsetUninit(PNL_BUFFER nlBuf, UINT32 len, UINT32 offset); + +PCHAR NlBufAt(PNL_BUFFER nlBuf, UINT32 offset, UINT32 len); + +#endif /* __NETLINK_BUF_H_ */ |