Skip to content

Commit

Permalink
lapi: Add abisize.h
Browse files Browse the repository at this point in the history
This moves ifdefs that decides if we should use compat version of
syscall or not from fallocate.h to lapi/abisize.h

Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
  • Loading branch information
metan-ucw committed Apr 17, 2014
1 parent a89e4a9 commit 04afb02
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 5 deletions.
33 changes: 33 additions & 0 deletions include/lapi/abisize.h
@@ -0,0 +1,33 @@
/*
* Copyright (c) 2014 Linux Test Project
* Cyril Hrubis <chrubis@suse.cz>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it would be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/

#ifndef ABISIZE_H__
#define ABISIZE_H__

/*
* Determines if we have to split up 64 bit arguments or not
*
* Deals with 32bit ABIs that have 64bit syscalls
*/
#define LTP_USE_64_ABI \
(defined(__mips__) && _MIPS_SIM == _ABIN32) || \
(defined(__x86_64__) && defined(__ILP32__)) || \
__WORDSIZE == 64

#endif /* ABISIZE_H__ */
9 changes: 4 additions & 5 deletions testcases/kernel/syscalls/fallocate/fallocate.h
Expand Up @@ -24,23 +24,22 @@
#include <sys/types.h>
#include <endian.h>
#include "config.h"
#include "lapi/abisize.h"
#include "linux_syscall_numbers.h"

#if !defined(HAVE_FALLOCATE)
static inline long fallocate(int fd, int mode, loff_t offset, loff_t len)
{
/* Deal with 32bit ABIs that have 64bit syscalls. */
#if (defined(__mips__) && _MIPS_SIM == _ABIN32) || \
(defined(__x86_64__) && defined(__ILP32__)) || \
__WORDSIZE == 64
# if LTP_USE_64_ABI
return ltp_syscall(__NR_fallocate, fd, mode, offset, len);
#else
# else
return (long)ltp_syscall(__NR_fallocate, fd, mode,
__LONG_LONG_PAIR((off_t) (offset >> 32),
(off_t) offset),
__LONG_LONG_PAIR((off_t) (len >> 32),
(off_t) len));
#endif
# endif
}
#endif

Expand Down

0 comments on commit 04afb02

Please sign in to comment.