#ifndef _NT_MSQ_H_
#define _NT_MSQ_H_
#include "nt_abi.h"
#include "nt_object.h"
/* semaphore command flags */
#define NT_MSQ_FLAG_NOWAIT (0x0800)
#define NT_MSQ_FLAG_NOERROR (0x1000)
/* msgqueue info */
typedef struct __attr_ptr_size_aligned__ _nt_msq_info {
void * hport;
void * section;
void * section_addr;
size_t section_size;
void * hevent;
void * apc_routine;
void * apc_context;
int32_t msqkey;
int32_t msqid;
int32_t msqspid;
int32_t msqrpid;
intptr_t msqrank;
uintptr_t msqslots;
uintptr_t msqcbytes;
uintptr_t msqqbytes;
uint32_t msqscnt;
uint32_t msqrcnt;
nt_filetime msqstime;
nt_filetime msqrtime;
nt_filetime msqctime;
uint32_t ipcuid;
uint32_t ipcgid;
uint32_t ipccuid;
uint32_t ipccgid;
uint32_t ipcmode;
int32_t ipcseq;
uint32_t ntaccess;
uint32_t ntattr;
uint32_t ntshare;
uint32_t ntoptions;
nt_iosb ntiosb;
nt_iosb * riosb;
} nt_msq_info;
#endif