forked from mirrors/linux
		
	Pull ipc compat cleanup and 64-bit time_t from Al Viro: "IPC copyin/copyout sanitizing, including 64bit time_t work from Deepa Dinamani" * 'work.ipc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: utimes: Make utimes y2038 safe ipc: shm: Make shmid_kernel timestamps y2038 safe ipc: sem: Make sem_array timestamps y2038 safe ipc: msg: Make msg_queue timestamps y2038 safe ipc: mqueue: Replace timespec with timespec64 ipc: Make sys_semtimedop() y2038 safe get rid of SYSVIPC_COMPAT on ia64 semtimedop(): move compat to native shmat(2): move compat to native msgrcv(2), msgsnd(2): move compat to native ipc(2): move compat to native ipc: make use of compat ipc_perm helpers semctl(): move compat to native semctl(): separate all layout-dependent copyin/copyout msgctl(): move compat to native msgctl(): split the actual work from copyin/copyout ipc: move compat shmctl to native shmctl: split the work from copyin/copyout
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			1,009 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			1,009 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _LINUX_MSG_H
 | 
						|
#define _LINUX_MSG_H
 | 
						|
 | 
						|
#include <linux/list.h>
 | 
						|
#include <linux/time64.h>
 | 
						|
#include <uapi/linux/msg.h>
 | 
						|
 | 
						|
/* one msg_msg structure for each message */
 | 
						|
struct msg_msg {
 | 
						|
	struct list_head m_list;
 | 
						|
	long m_type;
 | 
						|
	size_t m_ts;		/* message text size */
 | 
						|
	struct msg_msgseg *next;
 | 
						|
	void *security;
 | 
						|
	/* the actual message follows immediately */
 | 
						|
};
 | 
						|
 | 
						|
/* one msq_queue structure for each present queue on the system */
 | 
						|
struct msg_queue {
 | 
						|
	struct kern_ipc_perm q_perm;
 | 
						|
	time64_t q_stime;		/* last msgsnd time */
 | 
						|
	time64_t q_rtime;		/* last msgrcv time */
 | 
						|
	time64_t q_ctime;		/* last change time */
 | 
						|
	unsigned long q_cbytes;		/* current number of bytes on queue */
 | 
						|
	unsigned long q_qnum;		/* number of messages in queue */
 | 
						|
	unsigned long q_qbytes;		/* max number of bytes on queue */
 | 
						|
	pid_t q_lspid;			/* pid of last msgsnd */
 | 
						|
	pid_t q_lrpid;			/* last receive pid */
 | 
						|
 | 
						|
	struct list_head q_messages;
 | 
						|
	struct list_head q_receivers;
 | 
						|
	struct list_head q_senders;
 | 
						|
} __randomize_layout;
 | 
						|
 | 
						|
#endif /* _LINUX_MSG_H */
 |