📄 _macos.h
字号:
#define PR_PATH_SEPARATOR ':'#define PR_PATH_SEPARATOR_STR ":"typedef enum IOOperation { READ_ASYNC, WRITE_ASYNC} IOOperation;#define _MD_INIT_IO()#define _MD_OPEN _MD_Open#define _MD_OPEN_FILE _MD_Open#define _MD_CLOSE_FILE FSClose#define _MD_READ(fd,buf,amount) ReadWriteProc(fd,buf,amount,READ_ASYNC)#define _MD_WRITE(fd,buf,amount) ReadWriteProc(fd,buf,amount,WRITE_ASYNC)#define _MD_WRITE_SYNC(fd,buf,amount) WriteSyncProc(fd,buf,amount)#define _MD_GET_FILE_ERROR() _PR_MD_CURRENT_THREAD()->md.osErrCode#define _MD_LSEEK _MD_LSeek#define _MD_FSYNC _MD_FSync/* to be implemented */#define _MD_LSEEK64(a,b,c) LL_ZERO#define _MD_GETOPENFILEINFO64(fd,info) -1#define _MD_GETFILEINFO64(fd,info) -1#define _MD_IOQ_LOCK()#define _MD_IOQ_UNLOCK()/*** File Manipulation definitions*/#define _MD_RENAME _MD_Rename#define _MD_ACCESS _MD_Access#define _MD_GETFILEINFO _MD_GetFileInfo#define _MD_GETOPENFILEINFO _MD_GetOpenFileInfo#define _MD_STAT _MD_Stat#define _MD_DELETE _MD_Deleteextern PRStatus _MD_LockFile(PRInt32 osfd);#define _MD_LOCKFILE _MD_LockFileextern PRStatus _MD_TLockFile(PRInt32 osfd);#define _MD_TLOCKFILE _MD_TLockFileextern PRStatus _MD_UnlockFile(PRInt32 osfd);#define _MD_UNLOCKFILE _MD_UnlockFile/* ** Directory enumeration related definitions */extern PRStatus _MD_OpenDir(struct _MDDir *md,const char *name);#define _MD_OPEN_DIR _MD_OpenDirextern char* _MD_ReadDir(struct _MDDir *md,PRIntn flags);#define _MD_READ_DIR _MD_ReadDir#define _MD_CLOSE_DIR _MD_CloseDir#define _MD_MKDIR _MD_MkDir#define _MD_MAKE_DIR _MD_MkDir#define _MD_RMDIR _MD_Delete/*** Pipe I/O Related definitions (not implemented)*/#define _MD_PIPEAVAILABLE(fd) -1/*** Socket I/O Related definitions*/#if UNIVERSAL_INTERFACES_VERSION >= 0x0330/* In Universal Interfaces 3.3 and later, these are enums. */#define IP_TTL IP_TTL#define IP_TOS IP_TOS#define IP_ADD_MEMBERSHIP IP_ADD_MEMBERSHIP#define IP_DROP_MEMBERSHIP IP_DROP_MEMBERSHIP#define IP_MULTICAST_IF IP_MULTICAST_IF#define IP_MULTICAST_TTL IP_MULTICAST_TTL#define IP_MULTICAST_LOOP IP_MULTICAST_LOOP#define TCP_NODELAY TCP_NODELAY#define TCP_MAXSEG TCP_MAXSEG#endif#define _MD_SOCKET _MD_socket#define _MD_BIND _MD_bind#define _MD_LISTEN _MD_listen#define _MD_GETSOCKNAME _MD_getsocknameextern PRStatus _MD_getsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, char* optval, PRInt32* optlen);#define _MD_GETSOCKOPT _MD_getsockoptextern PRStatus _MD_setsockopt(PRFileDesc *fd, PRInt32 level, PRInt32 optname, const char* optval, PRInt32 optlen);#define _MD_SETSOCKOPT _MD_setsockopt#define _MD_SOCKETAVAILABLE _MD_socketavailable#define _MD_ACCEPT _MD_accept#define _MD_CONNECT _MD_connect#define _MD_SEND _MD_send#define _MD_RECV _MD_recv#define _MD_CLOSE_SOCKET _MD_closesocket#define _MD_SENDTO _MD_sendto#define _MD_RECVFROM _MD_recvfrom#define _MD_PR_POLL _MD_poll#define _MD_INIT_FILEDESC _MD_initfiledesc#define _MD_FREE_FILEDESC _MD_freefiledesc#define _MD_MAKE_NONBLOCK _MD_makenonblock#define _MD_INIT_FD_INHERITABLE _MD_initfdinheritable#define _MD_QUERY_FD_INHERITABLE _MD_queryfdinheritable#define _MD_GET_SOCKET_ERROR() _PR_MD_CURRENT_THREAD()->md.osErrCode#define _PR_MD_MAP_SELECT_ERROR(x) (x)/*** Netdb Related definitions*/extern PRStatus _MD_gethostname(char *name, int namelen);#define _MD_GETHOSTNAME _MD_gethostname#define _PR_GET_HOST_ADDR_AS_NAME/* XXX _MD_WRITEV, _MD_SHUTDOWN & _MD_GETPEERNAME not done yet!!!*/#define _MD_WRITEV _MD_writev#define _MD_SHUTDOWN _MD_shutdown#define _MD_GETPEERNAME _MD_getpeername#ifdef OLD_MACSOCK_LIBRARY#define _MD_SOCKET macsock_socket#define _MD_LISTEN macsock_listen#define _MD_SEND(fd,buf,amount,flags,timeout) macsock_send(fd->secret->md.osfd,buf,amount,flags)#define _MD_SENDTO(fd,buf,amount,flags,addr,addrlen,timeout) macsock_sendto(fd->secret->md.osfd,buf,amount,flags,(struct sockaddr *)addr,addrlen)#define _MD_RECV(fd,buf,amount,flags,timeout) macsock_recv(fd->secret->md.osfd,buf,amount,flags)#define _MD_RECVFROM(fd,buf,amount,flags,addr,addrlen,timeout) macsock_recvfrom(fd->secret->md.osfd,buf,amount,flags,(struct sockaddr *)addr,addrlen)#define _MD_CLOSE_SOCKET macsock_close#define _MD_SHUTDOWN(a,b) (0)#define _MD_ACCEPT(fd,addr,addrlen,timeout) macsock_accept(fd->secret->md.osfd,(struct sockaddr *)addr,addrlen)#define _MD_CONNECT(fd,name,namelen,timeout) macsock_connect(fd->secret->md.osfd,(struct sockaddr *)name,namelen)#define _MD_BIND(fd,name,namelen) macsock_bind(fd->secret->md.osfd,(struct sockaddr *)name,namelen)#define _MD_GETSOCKNAME(fd,name,namelen) macsock_getsockname(fd->secret->md.osfd,(struct sockaddr *)name,namelen)#define _MD_GETPEERNAME(fd,name,namelen) macsock_getpeername(fd->secret->md.osfd,(struct sockaddr *)name,namelen)#define _MD_GETSOCKOPT(fd,level,optname,optval,optlen) macsock_getsockopt(fd->secret->md.osfd,level,optname,optval,optlen)#define _MD_SETSOCKOPT(fd,level,optname,optval,optlen) macsock_setsockopt(fd->secret->md.osfd,level,optname,optval,optlen)#define _MD_SOCKETAVAILABLE(fd,bytes) macsock_socketavailable(fd->secret->md.osfd,bytes)#endif/*** Memory Segements Related definitions*/#define _MD_INIT_SEGS() #define _MD_ALLOC_SEGMENT _MD_AllocSegment#define _MD_FREE_SEGMENT _MD_FreeSegment/*** Time Related definitions*/#define _MD_GET_INTERVAL _MD_GetInterval#define _MD_INTERVAL_PER_SEC() PR_MSEC_PER_SEC#define _MD_INTERVAL_INIT()/*** Environemnt Related definitions*/extern char *_MD_GetEnv(const char *name);#define _MD_GET_ENV _MD_GetEnvextern int _MD_PutEnv(const char *variableCopy);#define _MD_PUT_ENV _MD_PutEnv/*** Following is old stuff to be looked at.*/#define GCPTR#define CALLBACKtypedef int (*FARPROC)();#define MAX_NON_PRIMARY_TIME_SLICES 6extern long gTimeSlicesOnNonPrimaryThread;extern struct PRThread *gPrimaryThread;// Errors not found in the Mac StdCLib#define EACCES 13 // Permission denied#define ENOENT -43 // No such file or directory#define _OS_INVALID_FD_VALUE -1#define STDERR_FILENO 2#if !defined(MAC_NSPR_STANDALONE)#define PATH_SEPARATOR ':'#define PATH_SEPARATOR_STR ":"#define DIRECTORY_SEPARATOR '/'#define DIRECTORY_SEPARATOR_STR "/"#endif#define UNIX_THIS_DIRECTORY_STR "./"#define UNIX_PARENT_DIRECTORY_STR "../"// Alias a few names#define getenv PR_GetEnv#define putenv _MD_PutEnv#if defined(MAC_NSPR_STANDALONE)typedef unsigned char (*MemoryCacheFlusherProc)(size_t size);typedef void (*PreAllocationHookProc)(void);extern char *strdup(const char *source);extern void InstallPreAllocationHook(PreAllocationHookProc newHook);extern void InstallMemoryCacheFlusher(MemoryCacheFlusherProc newFlusher);#endifextern char *PR_GetDLLSearchPath(void);#if defined(MAC_NSPR_STANDALONE)extern int strcmp(const char *str1, const char *str2);extern int strcasecmp(const char *str1, const char *str2);#endifextern void MapFullToPartialMacFile(char *);extern char *MapPartialToFullMacFile(const char *);extern void ResetTimer(void);extern void PR_PeriodicIdle(void);extern void ActivateTimer(void);extern void DeactivateTimer(void);extern void PR_InitMemory(void);extern struct hostent *gethostbyaddr(const void *addr, int addrlen, int type);extern short GetVolumeRefNumFromName(const char *);#include <stdio.h> // Needed to get FILE typedefextern FILE *_OS_FOPEN(const char *filename, const char *mode);//// Macintosh only private parts.//#define dprintTrace ";dprintf;doTrace"#define dprintNoTrace ";dprintf"extern void dprintf(const char *format, ...);// Entry into the memory system's cache flushing#if defined(MAC_NSPR_STANDALONE)extern PRUint8 CallCacheFlushers(size_t blockSize);#endif#if defined(MAC_NSPR_STANDALONE)extern void* reallocSmaller(void* block, size_t newSize);#endif/*** PR_GetSystemInfo related definitions*/#define _PR_SI_SYSNAME "MacOS"#define _PR_SI_ARCHITECTURE "PowerPC"/* * Memory-mapped files */struct _MDFileMap { PRInt8 unused;};extern PRStatus _MD_CreateFileMap(struct PRFileMap *fmap, PRInt64 size);#define _MD_CREATE_FILE_MAP _MD_CreateFileMapextern PRInt32 _MD_GetMemMapAlignment(void);#define _MD_GET_MEM_MAP_ALIGNMENT _MD_GetMemMapAlignmentextern void * _MD_MemMap(struct PRFileMap *fmap, PRInt64 offset, PRUint32 len);#define _MD_MEM_MAP _MD_MemMapextern PRStatus _MD_MemUnmap(void *addr, PRUint32 size);#define _MD_MEM_UNMAP _MD_MemUnmapextern PRStatus _MD_CloseFileMap(struct PRFileMap *fmap);#define _MD_CLOSE_FILE_MAP _MD_CloseFileMapextern void SetLogFileTypeCreator(const char *logFile);extern int _MD_mac_get_nonblocking_connect_error(PRFileDesc* fd);/* * Critical section support */#define MAC_CRITICAL_REGIONS TARGET_CARBON#if MAC_CRITICAL_REGIONSextern void InitCriticalRegion();extern void TermCriticalRegion();extern void EnterCritialRegion();extern void LeaveCritialRegion();#define INIT_CRITICAL_REGION() InitCriticalRegion()#define TERM_CRITICAL_REGION() TermCriticalRegion()#define ENTER_CRITICAL_REGION() EnterCritialRegion()#define LEAVE_CRITICAL_REGION() LeaveCritialRegion()#else#define INIT_CRITICAL_REGION()#define TERM_CRITICAL_REGION()#define ENTER_CRITICAL_REGION()#define LEAVE_CRITICAL_REGION()#endif/* * CPU Idle support */extern void InitIdleSemaphore();extern void TermIdleSemaphore();extern void WaitOnIdleSemaphore();extern void SignalIdleSemaphore();/* * Atomic operations */#ifdef _PR_HAVE_ATOMIC_OPSextern PRInt32 _MD_AtomicSet(PRInt32 *val, PRInt32 newval);#define _MD_INIT_ATOMIC()#define _MD_ATOMIC_INCREMENT(val) OTAtomicAdd32(1, (SInt32 *)val)#define _MD_ATOMIC_ADD(ptr, val) OTAtomicAdd32(val, (SInt32 *)ptr)#define _MD_ATOMIC_DECREMENT(val) OTAtomicAdd32(-1, (SInt32 *)val)#define _MD_ATOMIC_SET(val, newval) _MD_AtomicSet(val, newval)#endif /* _PR_HAVE_ATOMIC_OPS */#endif /* prmacos_h___ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -