Re: [PATCH] Add a common library that can be shared between libs and corosync

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Please correct the copyright dates on error_conversion.c to match the
set from the files you copied those routines from (including 2012).

Reviewed-by: Steven Dake <sdake@xxxxxxxxxx>

On 02/08/2012 03:57 PM, Angus Salkeld wrote:
> We have always had this problem and worked around it by coping code
> or using inline functions. Both not good IMO.
> 
> Signed-off-by: Angus Salkeld <asalkeld@xxxxxxxxxx>
> ---
>  Makefile.am                   |    2 +-
>  common_lib/Makefile.am        |   43 ++++++++++++++++
>  common_lib/error_conversion.c |  113 +++++++++++++++++++++++++++++++++++++++++
>  configure.ac                  |    1 +
>  exec/Makefile.am              |    4 +-
>  include/corosync/corotypes.h  |   77 +---------------------------
>  lib/Makefile.am               |    2 +-
>  7 files changed, 162 insertions(+), 80 deletions(-)
>  create mode 100644 common_lib/Makefile.am
>  create mode 100644 common_lib/error_conversion.c
> 
> diff --git a/Makefile.am b/Makefile.am
> index 178b34d..b16eae6 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -47,7 +47,7 @@ MAINTAINERCLEANFILES	= Makefile.in aclocal.m4 configure depcomp \
>  
>  dist_doc_DATA		= LICENSE INSTALL README.recovery SECURITY TODO AUTHORS
>  
> -SUBDIRS			= include lib exec tools test cts pkgconfig \
> +SUBDIRS			= include common_lib lib exec tools test cts pkgconfig \
>  			  man init conf
>  
>  coverity:
> diff --git a/common_lib/Makefile.am b/common_lib/Makefile.am
> new file mode 100644
> index 0000000..14d6fba
> --- /dev/null
> +++ b/common_lib/Makefile.am
> @@ -0,0 +1,43 @@
> +#
> +# Copyright (c) 2009 Red Hat, Inc.
> +#
> +# Authors: Angus Salkeld
> +#
> +# This software licensed under BSD license, the text of which follows:
> +#
> +# Redistribution and use in source and binary forms, with or without
> +# modification, are permitted provided that the following conditions are met:
> +#
> +# - Redistributions of source code must retain the above copyright notice,
> +#   this list of conditions and the following disclaimer.
> +# - Redistributions in binary form must reproduce the above copyright notice,
> +#   this list of conditions and the following disclaimer in the documentation
> +#   and/or other materials provided with the distribution.
> +# - Neither the name of the MontaVista Software, Inc. nor the names of its
> +#   contributors may be used to endorse or promote products derived from this
> +#   software without specific prior written permission.
> +#
> +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> +# THE POSSIBILITY OF SUCH DAMAGE.
> +
> +MAINTAINERCLEANFILES    = Makefile.in
> +
> +AM_CFLAGS		= -fPIC
> +
> +INCLUDES		= -I$(top_builddir)/include -I$(top_srcdir)/include
> +
> +noinst_LIBRARIES		= libcorosync_common.a
> +
> +libcorosync_common_a_SOURCES	= error_conversion.c
> +
> +clean-local:
> +	rm -f *.o *.a
> diff --git a/common_lib/error_conversion.c b/common_lib/error_conversion.c
> new file mode 100644
> index 0000000..ad6193a
> --- /dev/null
> +++ b/common_lib/error_conversion.c
> @@ -0,0 +1,113 @@
> +/*
> + * Copyright (c) 2012 Red Hat, Inc.
> + *
> + * All rights reserved.
> + *
> + * Author: Angus Salkeld (asalkeld@xxxxxxxxxx)
> + *
> + * This software licensed under BSD license, the text of which follows:
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions are met:
> + *
> + * - Redistributions of source code must retain the above copyright notice,
> + *   this list of conditions and the following disclaimer.
> + * - Redistributions in binary form must reproduce the above copyright notice,
> + *   this list of conditions and the following disclaimer in the documentation
> + *   and/or other materials provided with the distribution.
> + * - Neither the name of the MontaVista Software, Inc. nor the names of its
> + *   contributors may be used to endorse or promote products derived from this
> + *   software without specific prior written permission.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
> + * THE POSSIBILITY OF SUCH DAMAGE.
> + */
> +
> +#include <corosync/corotypes.h>
> +
> +cs_error_t qb_to_cs_error (int result)
> +{
> +	int32_t res;
> +	cs_error_t err = CS_ERR_LIBRARY;
> +
> +	if (result >= 0) {
> +		return CS_OK;
> +	}
> +	res = -result;
> +
> +	switch (res) {
> +	case EBADF:
> +		err = CS_ERR_BAD_HANDLE;
> +		break;
> +	case ENOMEM:
> +		err = CS_ERR_NO_MEMORY;
> +		break;
> +	case ETIMEDOUT:
> +	case EAGAIN:
> +		err = CS_ERR_TRY_AGAIN;
> +		break;
> +	case EBADE:
> +		err = CS_ERR_FAILED_OPERATION;
> +		break;
> +	case ETIME:
> +		err = CS_ERR_TIMEOUT;
> +		break;
> +	case EINVAL:
> +		err = CS_ERR_INVALID_PARAM;
> +		break;
> +	case EBUSY:
> +		err = CS_ERR_BUSY;
> +		break;
> +	case EACCES:
> +		err = CS_ERR_ACCESS;
> +		break;
> +	case EOVERFLOW:
> +		err = CS_ERR_NAME_TOO_LONG;
> +		break;
> +	case EEXIST:
> +		err = CS_ERR_EXIST;
> +		break;
> +	case ENOBUFS:
> +		err = CS_ERR_QUEUE_FULL;
> +		break;
> +	case ENOSPC:
> +		err = CS_ERR_NO_SPACE;
> +		break;
> +	case EINTR:
> +		err = CS_ERR_INTERRUPT;
> +		break;
> +	case ENOENT:
> +	case ENODEV:
> +		err = CS_ERR_NOT_EXIST;
> +		break;
> +	case ENOSYS:
> +	case ENOTSUP:
> +		err = CS_ERR_NOT_SUPPORTED;
> +		break;
> +	case EBADMSG:
> +		err = CS_ERR_MESSAGE_ERROR;
> +		break;
> +	case EMSGSIZE:
> +	case E2BIG:
> +		err = CS_ERR_TOO_BIG;
> +		break;
> +	case ECONNREFUSED:
> +	case ENOTCONN:
> +	default:
> +		err = CS_ERR_LIBRARY;
> +		break;
> +	}
> +
> +	return err;
> +}
> +
> +
> diff --git a/configure.ac b/configure.ac
> index d03c91b..65abfae 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -131,6 +131,7 @@ AC_CONFIG_FILES([Makefile
>  		 include/Makefile
>  		 init/Makefile
>  		 lib/Makefile
> +		 common_lib/Makefile
>  		 man/Makefile
>  		 pkgconfig/Makefile
>  		 test/Makefile
> diff --git a/exec/Makefile.am b/exec/Makefile.am
> index 3b6f201..d4d83eb 100644
> --- a/exec/Makefile.am
> +++ b/exec/Makefile.am
> @@ -52,8 +52,8 @@ corosync_SOURCES	= evil.c vsf_ykd.c coroparse.c vsf_quorum.c syncv2.c \
>  			  votequorum.c wd.c util.c schedwrk.c main.c \
>  			  apidef.c quorum.c sync.c icmap.c timer.c \
>  			  ipc_glue.c service.c mainconfig.c totemconfig.c
> -corosync_LDADD	  	= -ltotem_pg $(LIBQB_LIBS) $(statgrab_LIBS)
> -corosync_DEPENDENCIES	= libtotem_pg.so.$(SONAME)
> +corosync_LDADD		= -ltotem_pg ../common_lib/libcorosync_common.a $(LIBQB_LIBS) $(statgrab_LIBS)
> +corosync_DEPENDENCIES	= libtotem_pg.so.$(SONAME) ../common_lib/libcorosync_common.a
>  corosync_LDFLAGS	= $(OS_DYFLAGS) -L./
>  
>  TOTEM_OBJS		= $(TOTEM_SRC:%.c=%.o)
> diff --git a/include/corosync/corotypes.h b/include/corosync/corotypes.h
> index c67bf29..dcd78f3 100644
> --- a/include/corosync/corotypes.h
> +++ b/include/corosync/corotypes.h
> @@ -134,82 +134,7 @@ static inline uint64_t cs_timestamp_get(void)
>  	return result;
>  }
>  
> -static inline cs_error_t qb_to_cs_error (int result)
> -{
> -	int32_t res;
> -	cs_error_t err = CS_ERR_LIBRARY;
> -
> -	if (result >= 0) {
> -		return CS_OK;
> -	}
> -	res = -result;
> -
> -	switch (res) {
> -	case EBADF:
> -		err = CS_ERR_BAD_HANDLE;
> -		break;
> -	case ENOMEM:
> -		err = CS_ERR_NO_MEMORY;
> -		break;
> -	case ETIMEDOUT:
> -	case EAGAIN:
> -		err = CS_ERR_TRY_AGAIN;
> -		break;
> -	case EBADE:
> -		err = CS_ERR_FAILED_OPERATION;
> -		break;
> -	case ETIME:
> -		err = CS_ERR_TIMEOUT;
> -		break;
> -	case EINVAL:
> -		err = CS_ERR_INVALID_PARAM;
> -		break;
> -	case EBUSY:
> -		err = CS_ERR_BUSY;
> -		break;
> -	case EACCES:
> -		err = CS_ERR_ACCESS;
> -		break;
> -	case EOVERFLOW:
> -		err = CS_ERR_NAME_TOO_LONG;
> -		break;
> -	case EEXIST:
> -		err = CS_ERR_EXIST;
> -		break;
> -	case ENOBUFS:
> -		err = CS_ERR_QUEUE_FULL;
> -		break;
> -	case ENOSPC:
> -		err = CS_ERR_NO_SPACE;
> -		break;
> -	case EINTR:
> -		err = CS_ERR_INTERRUPT;
> -		break;
> -	case ENOENT:
> -	case ENODEV:
> -		err = CS_ERR_NOT_EXIST;
> -		break;
> -	case ENOSYS:
> -	case ENOTSUP:
> -		err = CS_ERR_NOT_SUPPORTED;
> -		break;
> -	case EBADMSG:
> -		err = CS_ERR_MESSAGE_ERROR;
> -		break;
> -	case EMSGSIZE:
> -	case E2BIG:
> -		err = CS_ERR_TOO_BIG;
> -		break;
> -	case ECONNREFUSED:
> -	case ENOTCONN:
> -	default:
> -		err = CS_ERR_LIBRARY;
> -		break;
> -	}
> -
> -	return err;
> -}
> -
> +cs_error_t qb_to_cs_error (int result);
>  
>  /*
>   * DEPRECATED
> diff --git a/lib/Makefile.am b/lib/Makefile.am
> index d2dd8ed..6744233 100644
> --- a/lib/Makefile.am
> +++ b/lib/Makefile.am
> @@ -89,7 +89,7 @@ lib%.so: lib%.a
>  	$(CC) -shared -o $@.$(call get_soname,$*) \
>  		-Wl,-soname=lib$*.so.$(call get_major,$*) \
>  		-Wl,-version-script=$(srcdir)/lib$*.versions \
> -		-Wl,-whole-archive $^ -Wl,-no-whole-archive $(LDFLAGS) $(LIBQB_LIBS) $(AM_LDFLAGS) $(call get_linker_add,$*)
> +		-Wl,-whole-archive $^ -Wl,-no-whole-archive $(LDFLAGS) $(LIBQB_LIBS) ../common_lib/libcorosync_common.a $(AM_LDFLAGS) $(call get_linker_add,$*)
>  	ln -sf lib$*.so.$(call get_soname,$*) lib$*.so
>  	ln -sf lib$*.so.$(call get_soname,$*) lib$*.so.$(call get_major,$*)
>  

_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss


[Index of Archives]     [Linux Clusters]     [Corosync Project]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux