All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cyril Hrubis <chrubis@suse.cz>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH] safe_macros: make safe_pread() and safe_pwrite() inline
Date: Tue, 27 Sep 2016 14:56:25 +0200	[thread overview]
Message-ID: <20160927125625.GE12308@rei.suse.cz> (raw)
In-Reply-To: <1474977533-31114-1-git-send-email-nyushchenko@dev.rtsoft.ru>

Hi!
> diff --git a/include/tst_safe_macros.h b/include/tst_safe_macros.h
> index 3cf154e..ff4ef49 100644
> --- a/include/tst_safe_macros.h
> +++ b/include/tst_safe_macros.h
> @@ -97,6 +97,26 @@ static inline int safe_dup(const char *file, const int lineno,
>  #define SAFE_READ(len_strict, fildes, buf, nbyte) \
>  	safe_read(__FILE__, __LINE__, NULL, (len_strict), (fildes), (buf), (nbyte))
>  
> +/*
> + * inline function that uses off_t since sizeof(off_t) depends on compile flags
> + */
> +static inline ssize_t safe_pread(const char *file, const int lineno,
> +		void (*cleanup_fn)(void), char len_strict,
> +		int fildes, void *buf, size_t nbyte, off_t offset)
> +{
> +	ssize_t rval;
> +
> +	rval = pread(fildes, buf, nbyte, offset);
> +
> +	if (rval == -1 || (len_strict && (size_t)rval != nbyte)) {
> +		tst_brkm(TBROK | TERRNO, cleanup_fn,
> +			 "%s:%d: pread(%d,%p,%zu,%lld) failed, returned %zd",
> +			 file, lineno, fildes, buf, nbyte, (long long)offset,
> +			 rval);
> +	}
> +
> +	return rval;
> +}
>  #define SAFE_PREAD(len_strict, fildes, buf, nbyte, offset) \
>  	safe_pread(__FILE__, __LINE__, NULL, (len_strict), (fildes), \
>  	           (buf), (nbyte), (offset))
> @@ -170,6 +190,25 @@ static inline pid_t safe_getpgid(const char *file, const int lineno,
>  #define SAFE_WRITE(len_strict, fildes, buf, nbyte) \
>  	safe_write(__FILE__, __LINE__, NULL, (len_strict), (fildes), (buf), (nbyte))
>  
> +/*
> + * inline function that uses off_t since sizeof(off_t) depends on compile flags
> + */

We already have a comment in this file explaining why there are a few
inline functions so I would omit these.

> +static inline ssize_t safe_pwrite(const char *file, const int lineno,
> +		void (*cleanup_fn)(void), char len_strict,
> +		int fildes, const void *buf, size_t nbyte, off_t offset)
> +{
> +	ssize_t rval;
> +
> +	rval = pwrite(fildes, buf, nbyte, offset);
> +	if (rval == -1 || (len_strict && (size_t)rval != nbyte)) {
> +		tst_brkm(TBROK | TERRNO, cleanup_fn,
> +			 "%s:%d: pwrite(%d,%p,%zu,%lld) failed, returned %zd",
> +			 file, lineno, fildes, buf, nbyte, (long long)offset,
> +			 rval);
> +	}
> +
> +	return rval;
> +}
>  #define SAFE_PWRITE(len_strict, fildes, buf, nbyte, offset) \
>  	safe_pwrite(__FILE__, __LINE__, NULL, (len_strict), (fildes), \
>  	            (buf), (nbyte), (offset))

These newlib inline function should omit the cleanup_fn parameter and
use tst_brk_() instead.

Otherwise it looks fine.

-- 
Cyril Hrubis
chrubis@suse.cz

  reply	other threads:[~2016-09-27 12:56 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-02 15:58 [LTP] reason of pwritev01_64 failure on 32-bit arm Nikita Yushchenko
2016-09-05 10:54 ` Jan Stancek
2016-09-27 11:58   ` [LTP] [PATCH] safe_macros: make safe_pread() and safe_pwrite() inline Nikita Yushchenko
2016-09-27 12:56     ` Cyril Hrubis [this message]
2016-11-26  8:30       ` Nikita Yushchenko
2016-11-28 15:45         ` Cyril Hrubis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160927125625.GE12308@rei.suse.cz \
    --to=chrubis@suse.cz \
    --cc=ltp@lists.linux.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.