/*
 * Copyright (C) 2006 Atmark Techno, Inc.
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License. See the file "COPYING" in the main directory of this archive
 * for more details.
 */

#ifndef _ASM_MICROBLAZE_SEMBUF_H
#define _ASM_MICROBLAZE_SEMBUF_H

/*
 * The semid64_ds structure for microblaze architecture.
 * Note extra padding because this structure is passed back and forth
 * between kernel and user space.
 *
 * Pad space is left for:
 * - 64-bit time_t to solve y2038 problem
 * - 2 miscellaneous 32-bit values
 */

struct semid64_ds {
	struct ipc64_perm sem_perm; /* permissions .. see ipc.h */
	__kernel_time_t	sem_otime; /* last semop time */
	unsigned long	__unused1;
	__kernel_time_t	sem_ctime; /* last change time */
	unsigned long	__unused2;
	unsigned long	sem_nsems; /* no. of semaphores in array */
	unsigned long	__unused3;
	unsigned long	__unused4;
};


#endif /* _ASM_MICROBLAZE_SEMBUF_H */
