1f08c3bdfSopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 2f08c3bdfSopenharmony_ci/* 3f08c3bdfSopenharmony_ci * Copyright (c) Linux Test Project, 2001-2009 4f08c3bdfSopenharmony_ci * Copyright (c) International Business Machines Corp., 2001 5f08c3bdfSopenharmony_ci */ 6f08c3bdfSopenharmony_ci 7f08c3bdfSopenharmony_ci#include <stdio.h> 8f08c3bdfSopenharmony_ci#include <sys/stat.h> 9f08c3bdfSopenharmony_ci#include <errno.h> 10f08c3bdfSopenharmony_ci#include <sys/types.h> 11f08c3bdfSopenharmony_ci#include <fcntl.h> 12f08c3bdfSopenharmony_ci#include <unistd.h> 13f08c3bdfSopenharmony_ci 14f08c3bdfSopenharmony_ciint lock_reg(int, int, off_t, int, off_t, int); 15f08c3bdfSopenharmony_ci 16f08c3bdfSopenharmony_ci#define read_lock(fd, offset, whence, len) \ 17f08c3bdfSopenharmony_ci lock_reg(fd, F_RDLCK, offset, whence, len, F_SETLK) 18f08c3bdfSopenharmony_ci#define write_lock(fd, offset, whence, len) \ 19f08c3bdfSopenharmony_ci lock_reg(fd, F_WRLCK, offset, whence, len, F_SETLK) 20f08c3bdfSopenharmony_ci#define un_lock(fd, offset, whence, len) \ 21f08c3bdfSopenharmony_ci lock_reg(fd, F_UNLCK, offset, whence, len, F_SETLK) 22f08c3bdfSopenharmony_ci#define readb_lock(fd, offset, whence, len) \ 23f08c3bdfSopenharmony_ci lock_reg(fd, F_RDLCK, offset, whence, len, F_SETLKW) 24f08c3bdfSopenharmony_ci#define writeb_lock(fd, offset, whence, len) \ 25f08c3bdfSopenharmony_ci lock_reg(fd, F_WRLCK, offset, whence, len, F_SETLKW) 26f08c3bdfSopenharmony_ci#define unb_lock(fd, offset, whence, len) \ 27f08c3bdfSopenharmony_ci lock_reg(fd, F_UNLCK, offset, whence, len, F_SETLKW) 28