/* * Copyright (C) 2012 Linux Test Project, Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU General Public * License as published by the Free Software Foundation. * * 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. * * Further, this software is distributed without any warranty that it * is free of the rightful claim of any third person regarding * infringement or the like. Any license provided herein, whether * implied or otherwise, applies only to this software file. Patent * licenses, if any, provided herein do not apply to combinations of * this program with other software, or any other product whatsoever. * * 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 Street, Fifth Floor, Boston, MA * 02110-1301, USA. */ #ifndef _PROCESS_VM_H_ #define _PROCESS_VM_H_ #include #include #include #define CMA_PARAMS pid, lvec, liovcnt, rvec, riovcnt, flags #define CMA_PARAMS_TYPES pid_t pid, const struct iovec *lvec, unsigned long liovcnt,\ const struct iovec *rvec, unsigned long riovcnt, unsigned long flags #define CMA_FUNC_PROTO(func_name) ssize_t func_name(CMA_PARAMS_TYPES) #define CMA_FUNCP_PROTO(func_name) ssize_t (*func_name)(CMA_PARAMS_TYPES) /* * process_vm_readv */ #if (HAVE_PROCESS_VM_READV==1) static inline CMA_FUNC_PROTO(ltp_process_vm_readv) { return process_vm_readv(CMA_PARAMS); } #elif defined(__NR_process_vm_readv) static inline CMA_FUNC_PROTO(ltp_process_vm_readv) { return syscall(__NR_process_vm_readv, CMA_PARAMS); } #else CMA_FUNCP_PROTO(ltp_process_vm_readv) = NULL; #endif /* * process_vm_writev */ #if (HAVE_PROCESS_VM_WRITEV==1) static inline CMA_FUNC_PROTO(ltp_process_vm_writev) { return process_vm_writev(CMA_PARAMS); } #elif defined(__NR_process_vm_writev) static inline CMA_FUNC_PROTO(ltp_process_vm_writev) { return syscall(__NR_process_vm_writev, CMA_PARAMS); } #else CMA_FUNCP_PROTO(ltp_process_vm_writev) = NULL; #endif #endif /* _PROCESS_VM_H_ */