00001 /*----------------------------------------------------------------------------- 00002 Copyright 2006-2010 Fusion-io, Inc. All rights 00003 reserved. 00004 00005 No part of this source code may be reproduced or transmitted in any form or 00006 by any means, electronic or mechanical, including photocopying, recording, 00007 or any information storage and retrieval system, without express written 00008 permission from Fusion-io. Further, no use of this source code is permitted 00009 in any form or means without a valid, written license agreement with 00010 Fusion-io. Please refer to the included "License" or "License.txt" file for 00011 terms and conditions regarding the use and redistribution of this 00012 software. Acceptance of the terms and conditions of the license set forth in the 00013 included "License" or "License.txt" file shall govern rights granted to use this 00014 source code. While every precaution has been taken in the preparation of this 00015 source code, Fusion-io assumes no responsibility for errors, omissions, or 00016 damages from the use of the source code contained herein. 00017 00018 NEITHER FUSION-IO, ANY MEMBER OF FUSION-IO, NOR ANY PERSON OR ORGANIZATION 00019 ACTING ON BEHALF OF THEM MAKES ANY WARRANTY OR REPRESENTATION WHATSOEVER, 00020 EXPRESS OR IMPLIED, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS 00021 OF ANY PURPOSE WITH RESPECT TO THE SOURCE CODE OR ASSUMES ANY LIABILITY 00022 WHATSOEVER WITH RESPECT TO ANY USE OF THE SOURCE CODE OR ANY PORTION 00023 THEREOF OR WITH RESPECT TO ANY DAMAGES WHICH MAY RESULT FROM SUCH USE. 00024 -----------------------------------------------------------------------------*/ 00025 00026 #ifndef _INCLUDE_FIO_PUBLIC_DYN_STRUCT_ALLOC_H_ 00027 #define _INCLUDE_FIO_PUBLIC_DYN_STRUCT_ALLOC_H_ 00028 00029 #include <fio/public/version.h> 00030 #include <fio/public/common_types.h> 00031 #include <string.h> /* for memset */ 00032 00033 #ifdef __cplusplus 00034 extern "C" { 00035 #endif 00036 00049 #define FIO_STRUCT_INIT(obj, version) \ 00050 memset(&(obj), 0, sizeof(obj)); \ 00051 (obj).lib_version = (uint32_t)version; 00052 00060 #define FIO_STRUCT_VERSION_OK(obj, min_version) (((obj)->lib_version) >= (min_version)) 00061 00062 #ifdef __cplusplus 00063 } 00064 #endif 00065 00066 #endif