Mercurial > projects > dwt-linux
diff dwt/internal/mozilla/prio.d @ 291:b0bd1789106b
fix: added wrong directory :(
author | John Reimer<terminal.node@gmail.com> |
---|---|
date | Wed, 06 Aug 2008 18:29:44 -0700 |
parents | dd63eb078d7a |
children | 942da4b6558a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dwt/internal/mozilla/prio.d Wed Aug 06 18:29:44 2008 -0700 @@ -0,0 +1,517 @@ +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); +} \ No newline at end of file