⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cygserver_ipc.h

📁 cygwin, 著名的在win32下模拟unix操作系统的东东
💻 H
字号:
/* cygserver_ipc.h   Copyright 2002 Red Hat, Inc.   Originally written by Conrad Scott <conrad.scott@dsl.pipex.com>This file is part of Cygwin.This software is a copyrighted work licensed under the terms of theCygwin license.  Please consult the file "CYGWIN_LICENSE" fordetails. */#ifndef __CYGSERVER_IPC_H__#define __CYGSERVER_IPC_H__#include <assert.h>#include <limits.h>		/* For OPEN_MAX. *//* * The sysv ipc id's (msgid, semid, shmid) are integers arranged such * that they no subsystem will generate the same id as some other * subsystem; nor do these ids overlap file descriptors (the other * common integer ids).  Since Cygwin can allocate more than OPEN_MAX * file descriptors, it can't be guaranteed not to overlap, but it * should help catch some errors. * * msgid's: OPEN_MAX,     OPEN_MAX + 3, OPEN_MAX + 6, . . . * semid's: OPEN_MAX + 1, OPEN_MAX + 4, OPEN_MAX + 7, . . . * shmid's: OPEN_MAX + 2, OPEN_MAX + 5, OPEN_MAX + 8, . . . * * To further ensure that ids are unique, if ipc objects are created * and destroyed and then re-created, they are given new ids by * munging the basic id (as above) with a sequence number. * * Internal ipc id's, which are 0, 1, ... within each subsystem (and * not munged with a sequence number), are used solely by the ipcs(8) * interface. */enum ipc_subsys_t  {    IPC_MSGOP = 0,    IPC_SEMOP = 1,    IPC_SHMOP = 2,    IPC_SUBSYS_COUNT  };/* * IPCMNI - The absolute maximum number of simultaneous ipc ids for * any one subsystem. */enum  {    IPCMNI = 0x10000		// Must be a power of two.  };inline intipc_int2ext (const int intid, const ipc_subsys_t subsys, long & sequence){  assert (0 <= intid && intid < IPCMNI);  const long tmp = InterlockedIncrement (&sequence);  return (((tmp & 0x7fff) << 16)	  | (OPEN_MAX + (intid * IPC_SUBSYS_COUNT) + subsys));}inline intipc_ext2int_subsys (const int extid){  return ((extid & (IPCMNI - 1)) - OPEN_MAX) % IPC_SUBSYS_COUNT;}inline intipc_ext2int (const int extid, const ipc_subsys_t subsys){  if (ipc_ext2int_subsys (extid) != subsys)    return -1;  else    return ((extid & (IPCMNI - 1)) - OPEN_MAX) / IPC_SUBSYS_COUNT;}#endif /* __CYGSERVER_IPC_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -