[LTP] [PATCH] safe_macros: make safe_pread() and safe_pwrite() inline

Cyril Hrubis chrubis@suse.cz
Mon Nov 28 16:45:25 CET 2016


Hi!
> diff --git a/include/old/safe_macros.h b/include/old/safe_macros.h
> index 8ed2eb4..e3be1f2 100644
> --- a/include/old/safe_macros.h
> +++ b/include/old/safe_macros.h
> @@ -70,6 +70,26 @@
>  	safe_read(__FILE__, __LINE__, cleanup_fn, (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(cleanup_fn, len_strict, fildes, buf, nbyte, offset)   \
>  	safe_pread(__FILE__, __LINE__, cleanup_fn, (len_strict), (fildes), \
>  	    (buf), (nbyte), (offset))
> @@ -112,6 +132,25 @@
>  	safe_write(__FILE__, __LINE__, cleanup_fn, (len_strict), (fildes), \
>  	    (buf), (nbyte))
>  

I've removed this part (SAFE_PREAD in old library headers), since the
old library is deprecated and there are more users for this function.

Pushed, thanks.

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list