Mercurial > projects > dwt-linux
view dwt/internal/mozilla/prio.d @ 341:942da4b6558a
Ongoing fixup for compile
author | John Reimer <terminal.node@gmail.com> |
---|---|
date | Sun, 26 Oct 2008 21:19:51 -0700 |
parents | dd63eb078d7a |
children | 8d03ae013e53 |
line wrap: on
line source
module dwt.internal.mozilla.prio; import dwt.internal.mozilla.Common; import dwt.internal.mozilla.prtime; import dwt.internal.mozilla.prinrval; //extern (System): alias PRIntn PRDescIdentity; alias void PRFilePrivate; struct PRFileDesc { PRIOMethods *methods; PRFilePrivate *secret; PRFileDesc *lower; PRFileDesc *higher; void function(PRFileDesc *fd)dtor; PRDescIdentity identity; } enum PRTransmitFileFlags { PR_TRANSMITFILE_KEEP_OPEN, PR_TRANSMITFILE_CLOSE_SOCKET, } const PR_AF_INET = 2; const PR_AF_LOCAL = 1; const PR_INADDR_LOOPBACK = 0x7f000001; const PR_AF_UNSPEC = 0; union _N2 { PRUint8 [16]_S6_u8; PRUint16 [8]_S6_u16; PRUint32 [4]_S6_u32; PRUint64 [2]_S6_u64; } struct PRIPv6Addr { struct _N2{ union { PRUint8 [16]_S6_u8; PRUint16 [8]_S6_u16; PRUint32 [4]_S6_u32; PRUint64 [2]_S6_u64; } } _N2 _S6_un; } struct _N3 { PRUint16 family; char [14]data; } struct _N4 { PRUint16 family; PRUint16 port; PRUint32 ip; char [8]pad; } struct _N5 { PRUint16 family; PRUint16 port; PRUint32 flowinfo; PRIPv6Addr ip; PRUint32 scope_id; } union PRNetAddr { struct _N3 { PRUint16 family; char [14]data; } _N3 raw; struct _N4 { PRUint16 family; PRUint16 port; PRUint32 ip; char [8]pad; } _N4 inet; struct _N5 { PRUint16 family; PRUint16 port; PRUint32 flowinfo; PRIPv6Addr ip; PRUint32 scope_id; } _N5 ipv6; } enum PRSockOption { PR_SockOpt_Nonblocking, PR_SockOpt_Linger, PR_SockOpt_Reuseaddr, PR_SockOpt_Keepalive, PR_SockOpt_RecvBufferSize, PR_SockOpt_SendBufferSize, PR_SockOpt_IpTimeToLive, PR_SockOpt_IpTypeOfService, PR_SockOpt_AddMember, PR_SockOpt_DropMember, PR_SockOpt_McastInterface, PR_SockOpt_McastTimeToLive, PR_SockOpt_McastLoopback, PR_SockOpt_NoDelay, PR_SockOpt_MaxSegment, PR_SockOpt_Broadcast, PR_SockOpt_Last, } struct PRLinger { PRBool polarity; PRIntervalTime linger; } struct PRMcastRequest { PRNetAddr mcaddr; PRNetAddr ifaddr; } union _N6 { PRUintn ip_ttl; PRUintn mcast_ttl; PRUintn tos; PRBool non_blocking; PRBool reuse_addr; PRBool keep_alive; PRBool mcast_loopback; PRBool no_delay; PRBool broadcast; PRSize max_segment; PRSize recv_buffer_size; PRSize send_buffer_size; PRLinger linger; PRMcastRequest add_member; PRMcastRequest drop_member; PRNetAddr mcast_if; } struct PRSocketOptionData { int option; union _N6 { PRUintn ip_ttl; PRUintn mcast_ttl; PRUintn tos; PRBool non_blocking; PRBool reuse_addr; PRBool keep_alive; PRBool mcast_loopback; PRBool no_delay; PRBool broadcast; PRSize max_segment; PRSize recv_buffer_size; PRSize send_buffer_size; PRLinger linger; PRMcastRequest add_member; PRMcastRequest drop_member; PRNetAddr mcast_if; } _N6 value; } struct PRIOVec { char *iov_base; int iov_len; } enum PRDescType { PR_DESC_FILE = 1, PR_DESC_SOCKET_TCP, PR_DESC_SOCKET_UDP, PR_DESC_LAYERED, PR_DESC_PIPE, } enum PRSeekWhence { PR_SEEK_SET, PR_SEEK_CUR, PR_SEEK_END, } version(NON_XPCOM_GLUE){ int PR_GetDescType(PRFileDesc *file); } alias PRStatus function(PRFileDesc *fd)PRCloseFN; alias PRInt32 function(PRFileDesc *fd, void *buf, PRInt32 amount)PRReadFN; alias PRInt32 function(PRFileDesc *fd, void *buf, PRInt32 amount)PRWriteFN; alias PRInt32 function(PRFileDesc *fd)PRAvailableFN; alias PRInt64 function(PRFileDesc *fd)PRAvailable64FN; alias PRStatus function(PRFileDesc *fd)PRFsyncFN; alias PROffset32 function(PRFileDesc *fd, PROffset32 offset, int how)PRSeekFN; alias PROffset64 function(PRFileDesc *fd, PROffset64 offset, int how)PRSeek64FN; alias PRStatus function(PRFileDesc *fd, PRFileInfo *info)PRFileInfoFN; alias PRStatus function(PRFileDesc *fd, PRFileInfo64 *info)PRFileInfo64FN; alias PRInt32 function(PRFileDesc *fd, PRIOVec *iov, PRInt32 iov_size, PRIntervalTime timeout)PRWritevFN; alias PRStatus function(PRFileDesc *fd, PRNetAddr *addr, PRIntervalTime timeout)PRConnectFN; alias PRFileDesc * function(PRFileDesc *fd, PRNetAddr *addr, PRIntervalTime timeout)PRAcceptFN; alias PRStatus function(PRFileDesc *fd, PRNetAddr *addr)PRBindFN; alias PRStatus function(PRFileDesc *fd, PRIntn backlog)PRListenFN; alias PRStatus function(PRFileDesc *fd, PRIntn how)PRShutdownFN; alias PRInt32 function(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout)PRRecvFN; alias PRInt32 function(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout)PRSendFN; alias PRInt32 function(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRNetAddr *addr, PRIntervalTime timeout)PRRecvfromFN; alias PRInt32 function(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRNetAddr *addr, PRIntervalTime timeout)PRSendtoFN; alias PRInt16 function(PRFileDesc *fd, PRInt16 in_flags, PRInt16 *out_flags)PRPollFN; alias PRInt32 function(PRFileDesc *sd, PRFileDesc **nd, PRNetAddr **raddr, void *buf, PRInt32 amount, PRIntervalTime t)PRAcceptreadFN; alias PRInt32 function(PRFileDesc *sd, PRFileDesc *fd, void *headers, PRInt32 hlen, int flags, PRIntervalTime t)PRTransmitfileFN; alias PRStatus function(PRFileDesc *fd, PRNetAddr *addr)PRGetsocknameFN; alias PRStatus function(PRFileDesc *fd, PRNetAddr *addr)PRGetpeernameFN; alias PRStatus function(PRFileDesc *fd, PRSocketOptionData *data)PRGetsocketoptionFN; alias PRStatus function(PRFileDesc *fd, PRSocketOptionData *data)PRSetsocketoptionFN; alias PRInt32 function(PRFileDesc *networkSocket, PRSendFileData *sendData, int flags, PRIntervalTime timeout)PRSendfileFN; alias PRStatus function(PRFileDesc *fd, PRInt16 out_flags)PRConnectcontinueFN; alias PRIntn function(PRFileDesc *fd)PRReservedFN; struct PRIOMethods { int file_type; PRCloseFN close; PRReadFN read; PRWriteFN write; PRAvailableFN available; PRAvailable64FN available64; PRFsyncFN fsync; PRSeekFN seek; PRSeek64FN seek64; PRFileInfoFN fileInfo; PRFileInfo64FN fileInfo64; PRWritevFN writev; PRConnectFN connect; PRAcceptFN accept; PRBindFN bind; PRListenFN listen; PRShutdownFN shutdown; PRRecvFN recv; PRSendFN send; PRRecvfromFN recvfrom; PRSendtoFN sendto; PRPollFN poll; PRAcceptreadFN acceptread; PRTransmitfileFN transmitfile; PRGetsocknameFN getsockname; PRGetpeernameFN getpeername; PRReservedFN reserved_fn_6; PRReservedFN reserved_fn_5; PRGetsocketoptionFN getsocketoption; PRSetsocketoptionFN setsocketoption; PRSendfileFN sendfile; PRConnectcontinueFN connectcontinue; PRReservedFN reserved_fn_3; PRReservedFN reserved_fn_2; PRReservedFN reserved_fn_1; PRReservedFN reserved_fn_0; } enum PRSpecialFD { PR_StandardInput, PR_StandardOutput, PR_StandardError, } version(NON_XPCOM_GLUE) { PRFileDesc * PR_GetSpecialFD(int id); PRDescIdentity PR_GetUniqueIdentity(char *layer_name); char * PR_GetNameForIdentity(PRDescIdentity ident); PRDescIdentity PR_GetLayersIdentity(PRFileDesc *fd); PRFileDesc * PR_GetIdentitiesLayer(PRFileDesc *fd_stack, PRDescIdentity id); PRIOMethods * PR_GetDefaultIOMethods(); PRFileDesc * PR_CreateIOLayerStub(PRDescIdentity ident, PRIOMethods *methods); PRFileDesc * PR_CreateIOLayer(PRFileDesc *fd); PRStatus PR_PushIOLayer(PRFileDesc *fd_stack, PRDescIdentity id, PRFileDesc *layer); PRFileDesc * PR_PopIOLayer(PRFileDesc *fd_stack, PRDescIdentity id); } const PR_RDONLY = 0x01; const PR_WRONLY = 0x02; const PR_RDWR = 0x04; const PR_CREATE_FILE = 0x08; const PR_APPEND = 0x10; const PR_TRUNCATE = 0x20; const PR_SYNC = 0x40; const PR_EXCL = 0x80; version(NON_XPCOM_GLUE) { PRFileDesc * PR_Open(char *name, PRIntn flags, PRIntn mode); } const PR_IRWXU = 00700; const PR_IRUSR = 00400; const PR_IWUSR = 00200; const PR_IXUSR = 00100; const PR_IRWXG = 00070; const PR_IRGRP = 00040; const PR_IWGRP = 00020; const PR_IXGRP = 00010; const PR_IRWXO = 00007; const PR_IROTH = 00004; const PR_IWOTH = 00002; const PR_IXOTH = 00001; version(NON_XPCOM_GLUE) { PRFileDesc * PR_OpenFile(char *name, PRIntn flags, PRIntn mode); PRStatus PR_Close(PRFileDesc *fd); PRInt32 PR_Read(PRFileDesc *fd, void *buf, PRInt32 amount); PRInt32 PR_Write(PRFileDesc *fd, void *buf, PRInt32 amount); } const PR_MAX_IOVECTOR_SIZE = 16; version(NON_XPCOM_GLUE) { PRInt32 PR_Writev(PRFileDesc *fd, PRIOVec *iov, PRInt32 iov_size, PRIntervalTime timeout); PRStatus PR_Delete(char *name); } enum PRFileType { PR_FILE_FILE = 1, PR_FILE_DIRECTORY, PR_FILE_OTHER, } struct PRFileInfo { int type; PROffset32 size; PRTime creationTime; PRTime modifyTime; } struct PRFileInfo64 { int type; PROffset64 size; PRTime creationTime; PRTime modifyTime; } version (NON_XPCOM_GLUE) { PRStatus PR_GetFileInfo(char *fn, PRFileInfo *info); PRStatus PR_GetFileInfo64(char *fn, PRFileInfo64 *info); PRStatus PR_GetOpenFileInfo(PRFileDesc *fd, PRFileInfo *info); PRStatus PR_GetOpenFileInfo64(PRFileDesc *fd, PRFileInfo64 *info); PRStatus PR_Rename(char *from, char *to); } enum PRAccessHow { PR_ACCESS_EXISTS = 1, PR_ACCESS_WRITE_OK, PR_ACCESS_READ_OK, } version(NON_XPCOM_GLUE) { PRStatus PR_Access(char *name, int how); PROffset32 PR_Seek(PRFileDesc *fd, PROffset32 offset, int whence); PROffset64 PR_Seek64(PRFileDesc *fd, PROffset64 offset, int whence); PRInt32 PR_Available(PRFileDesc *fd); PRInt64 PR_Available64(PRFileDesc *fd); PRStatus PR_Sync(PRFileDesc *fd); } struct PRDirEntry { char *name; } alias void PRDir; version(NON_XPCOM_GLUE) { PRDir * PR_OpenDir(char *name); } enum PRDirFlags { PR_SKIP_NONE, PR_SKIP_DOT, PR_SKIP_DOT_DOT, PR_SKIP_BOTH, PR_SKIP_HIDDEN, } version(NON_XPCOM_GLUE) { PRDirEntry * PR_ReadDir(PRDir *dir, int flags); PRStatus PR_CloseDir(PRDir *dir); PRStatus PR_MkDir(char *name, PRIntn mode); PRStatus PR_MakeDir(char *name, PRIntn mode); PRStatus PR_RmDir(char *name); PRFileDesc * PR_NewUDPSocket(); PRFileDesc * PR_NewTCPSocket(); PRFileDesc * PR_OpenUDPSocket(PRIntn af); PRFileDesc * PR_OpenTCPSocket(PRIntn af); PRStatus PR_Connect(PRFileDesc *fd, PRNetAddr *addr, PRIntervalTime timeout); PRStatus PR_ConnectContinue(PRFileDesc *fd, PRInt16 out_flags); PRStatus PR_GetConnectStatus(PRPollDesc *pd); PRFileDesc * PR_Accept(PRFileDesc *fd, PRNetAddr *addr, PRIntervalTime timeout); PRStatus PR_Bind(PRFileDesc *fd, PRNetAddr *addr); PRStatus PR_Listen(PRFileDesc *fd, PRIntn backlog); } enum PRShutdownHow { PR_SHUTDOWN_RCV, PR_SHUTDOWN_SEND, PR_SHUTDOWN_BOTH, } version(NON_XPCOM_GLUE) { PRStatus PR_Shutdown(PRFileDesc *fd, int how); } const PR_MSG_PEEK = 0x2; version(NON_XPCOM_GLUE) { PRInt32 PR_Recv(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); PRInt32 PR_Send(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRIntervalTime timeout); PRInt32 PR_RecvFrom(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRNetAddr *addr, PRIntervalTime timeout); PRInt32 PR_SendTo(PRFileDesc *fd, void *buf, PRInt32 amount, PRIntn flags, PRNetAddr *addr, PRIntervalTime timeout); PRInt32 PR_TransmitFile(PRFileDesc *networkSocket, PRFileDesc *sourceFile, void *headers, PRInt32 hlen, int flags, PRIntervalTime timeout); } struct PRSendFileData { PRFileDesc *fd; PRUint32 file_offset; PRSize file_nbytes; void *header; PRInt32 hlen; void *trailer; PRInt32 tlen; } version(NON_XPCOM_GLUE) { PRInt32 PR_SendFile(PRFileDesc *networkSocket, PRSendFileData *sendData, int flags, PRIntervalTime timeout); PRInt32 PR_AcceptRead(PRFileDesc *listenSock, PRFileDesc **acceptedSock, PRNetAddr **peerAddr, void *buf, PRInt32 amount, PRIntervalTime timeout); PRStatus PR_NewTCPSocketPair(PRFileDesc **fds); PRStatus PR_GetSockName(PRFileDesc *fd, PRNetAddr *addr); PRStatus PR_GetPeerName(PRFileDesc *fd, PRNetAddr *addr); PRStatus PR_GetSocketOption(PRFileDesc *fd, PRSocketOptionData *data); PRStatus PR_SetSocketOption(PRFileDesc *fd, PRSocketOptionData *data); PRStatus PR_SetFDInheritable(PRFileDesc *fd, PRBool inheritable); PRFileDesc * PR_GetInheritedFD(char *name); } enum PRFileMapProtect { PR_PROT_READONLY, PR_PROT_READWRITE, PR_PROT_WRITECOPY, } alias void PRFileMap; version(NON_XPCOM_GLUE) { PRFileMap * PR_CreateFileMap(PRFileDesc *fd, PRInt64 size, int prot); PRInt32 PR_GetMemMapAlignment(); void * PR_MemMap(PRFileMap *fmap, PROffset64 offset, PRUint32 len); PRStatus PR_MemUnmap(void *addr, PRUint32 len); PRStatus PR_CloseFileMap(PRFileMap *fmap); PRStatus PR_CreatePipe(PRFileDesc **readPipe, PRFileDesc **writePipe); } struct PRPollDesc { PRFileDesc *fd; PRInt16 in_flags; PRInt16 out_flags; } const PR_POLL_READ = 0x1; const PR_POLL_WRITE = 0x2; const PR_POLL_EXCEPT = 0x4; const PR_POLL_ERR = 0x8; const PR_POLL_NVAL = 0x10; const PR_POLL_HUP = 0x20; version(NON_XPCOM_GLUE) { PRInt32 PR_Poll(PRPollDesc *pds, PRIntn npds, PRIntervalTime timeout); PRFileDesc * PR_NewPollableEvent(); PRStatus PR_DestroyPollableEvent(PRFileDesc *event); PRStatus PR_SetPollableEvent(PRFileDesc *event); PRStatus PR_WaitForPollableEvent(PRFileDesc *event); }