亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mosix_info.c

?? OpenMosix工具
?? C
字號:
/*** OpenMosix "struct mosix_info" handlers used by mosmon**** Copyright (C) 2004  Moreno 'baro' Baricevic**                                      <baro AT democritos DOT it>**** This  file may be used subject to the terms and conditions of the** GNU Library General Public License as published by the Free Soft-** ware Foundation; either version 2 of the License, or (at your op-** tion) any later version.**** This file is distributed in the hope that it will be useful,  but** WITHOUT  ANY  WARRANTY; without even the implied warranty of MER-** CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Li-** brary General Public License for more details.*//************************************************** * Author: Moreno 'baro' Baricevic                * * Date:   13 Mar 2004                            * * Title:  mosix_info.c                           * *================================================* * Prev Modified: 13 Mar 2004                     * * Prev Modified: 17 Mar 2004                     * * Prev Modified: 19 Mar 2004                     * * Prev Modified: 21 Mar 2004                     * * Prev Modified: 25 Mar 2004                     * * Prev Modified: 06 Apr 2004                     * * Prev Modified: 19 Jun 2004                     * * Last Modified: 25 Jun 2004                     * **************************************************//* Several bugfixes by David Santo Orcero          *//*  irbis@orcero.org  http://www.orcero.org/irbis  *//* THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTY IS ASSUMED.               *//* NO LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING            *//* FROM THE USE OF THIS SOFTWARE WILL BE ACCEPTED. IT CAN BURN              *//* YOUR HARD DISK, ERASE ALL YOUR DATA AND BROKE DOWN YOUR                  *//* MICROWAVE OVEN. YOU ARE ADVISED.                                         */#include <string.h>#include "utils.h"#include "mosix_info.h"static ssize_t get_recsz (int fd);#define SOMECODE( _k )	\	{							\           DBGprint( "using struct mosix_info" # _k );		\	   readstruct = readstruct ## _k ;			\           recsz = RECSZ ## _k ;				\	   snprintf( mstruct , 16 , "mosix_info" # _k );	\	   return _k ;						\        }/***************************************************************************** *_____________________________  GUESS_BY_RECSZ _____________________________* *****************************************************************************//*** Sets record size, mosix_info structure, handlers and all that stuff.** Kernel and OpenMosix versions are not reliable for this purpose** (believe me, I've already tested both and any kind of mix).** This seems to be the most reliable method.**** NOTE that works  ONLY  with PROC_HPC_INFOS.  It is a special proc file.** On this file, lseek() jumps across records instead of bytes. By jumping** directly to end of file, we get the total number of records stored** inside the file.**** Consider that on "normal" files lseek() jumps across bytes, on proc** files it usually does not work (EINVAL).***/intguess_by_recsz (int fd){  off_t curr = lseek (fd, 0L, SEEK_CUR);	// get current position  off_t nrec = lseek (fd, 0L, SEEK_END);	// get number of records  ssize_t nr = 0;  if (nrec < 1)			// Houston, ...    SOMECODE (_DUMMY);  (void) lseek (fd, nrec - 1, SEEK_SET);	// go to the last record  nr = get_recsz (fd);		// get the record size  (void) lseek (fd, curr, SEEK_SET);	// go to previous position  DBGprint ("nr = %d", nr);  switch (nr)    {    case RECSZ_2416 /* 32 */ :      SOMECODE (_2416);    case RECSZ_2419 /* 24 */ :      SOMECODE (_2419);    case RECSZ_2421 /* 56 */ :      SOMECODE (_2421);    case RECSZ_2423 /* 36 */ :      SOMECODE (_2423);//      case RECSZ_2422 /* 68 */: SOMECODE( _2422 );    case RECSZ_2424 /* 68 */ :      if (openmosix_release.version >= 10904)	// > 2.4.24-om1	{	  SOMECODE (_2424);	}      else	{	  SOMECODE (_2422);	}    default /* unknown */ :      break;    }  SOMECODE (_DUMMY);		// avoid unassigned handlers  return _UNKNOWN;		// just in case... (already done by SOMECODE())}				/* guess_by_recsz *//************************************************************************ *_____________________________  GET_RECSZ _____________________________* ************************************************************************//*** We should be already positioned at the start of the last record.** By reading larger amount of data than any possible record size, the** read()'s return value is the effective record size (bytes until EOF).** (MAX_RECSZ must be larger than any possible record size)*/static ssize_tget_recsz (int fd){  void *dummy = xcmalloc (MAX_RECSZ);  ssize_t nr = read (fd, dummy, MAX_RECSZ);  free (dummy);  return nr;}				/* get_recsz *//**************************************************************************** *_____________________________  FORCE_VERSION _____________________________* ****************************************************************************//*** force a specific version** Input: 2416, 2417, ...** Output: _2416 (0), _2419 (1), ...** No parachute here, we must die on error (unhandled versions).*/intforce_version (int ver){  int realver = 0;  switch (ver)    {      /* stable */    case 2416:      realver = _2416;      break;    case 2417:    case 2418:    case 2419:    case 2420:      realver = _2419;      break;    case 2421:      realver = _2421;      break;    case 2422:      realver = _2422;      break;    case 2424:      realver = _2424;      break;      /* testing */    case 2423://      case 2424:    case 2425:      realver = _2423;      break;    default:      return _UNKNOWN;    }  switch (realver)    {    case _2416:      SOMECODE (_2416);    case _2419:      SOMECODE (_2419);    case _2421:      SOMECODE (_2421);    case _2422:      SOMECODE (_2422);    case _2423:      SOMECODE (_2423);    case _2424:      SOMECODE (_2424);    default:      break;    }  return _UNKNOWN;}				/* force_version */#ifdef DEBUG/********************************************************************** *_____________________________  SUMMARY _____________________________* **********************************************************************//*** shows recsize(s) -- (debug)*/voidsummary (void){#define SUMMARY( x )	{ DBGprint( "RECSZ_" # x " = %d" , RECSZ_ ## x ); }  SUMMARY (STD);  SUMMARY (2416);  SUMMARY (2419);  SUMMARY (2421);  SUMMARY (2422);  SUMMARY (2423);  SUMMARY (2424);}				/* summary *//**************************************************************************** *_____________________________  PRINT_STRINFO _____________________________* ****************************************************************************//*** prints the content of the given mosix_infos_s structure -- (debug)*/voidprint_strinfo (mosix_info_s * mis){#define pru16(x) printf( "%-13s = 0x%016x = %u\n"     , # x , mis->x , mis->x )#define pru32(x) printf( "%-13s = 0x%016lx = %lu\n"   , # x , mis->x , mis->x )#define pri64(x) printf( "%-13s = 0x%016llx = %lld\n" , # x , mis->x , mis->x )  pru32 (load);  pru16 (speed);  pru16 (ncpus);  pru16 (util);  pru16 (status);  pri64 (mem);  pri64 (rmem);  pri64 (tmem);}				/* print_strinfo */#endif /* DEBUG *//****************************************************************************** *_____________________________  READSTRUCT_2xxx _____________________________* ******************************************************************************//*** Define a function for each known mosix_info structure.** This family of functions returns npe or 0.*/#define BUILD_READSTRUCT( type ) \int								\readstruct_ ## type ( fd , mis , el )				\   int fd ;							\   mosix_info_s * mis ;						\   size_t el ;							\{								\   size_t outsize = el * RECSZ_STD ;				\   size_t insize  = el * RECSZ_ ## type ;			\								\   ssize_t nr = -1 ;						\								\   mosix_info_s * optr = mis;		/* walk ptr  */		\								\   struct mosix_info_ ## type * dummy;	/* alloc ptr */		\   struct mosix_info_ ## type * iptr;	/* walk ptr  */		\								\   DBGprint( "el %d, orcsz %d, osz %d, ircsz %d, isz %d"	\             , el						\             , RECSZ_STD , outsize				\             , RECSZ_ ## type , insize				\           );							\								\   iptr = dummy = ( struct mosix_info_ ## type * )		\                  xcmalloc( insize );				\								\   nr = read( fd , dummy , insize );				\   if ( nr == insize )						\   {								\      int i;							\      for ( i = 0 ; i < el ; i++ , optr++ , iptr++ )		\      {								\         DBGprint( "got a record [%d of %d] out %p in %p"	\                   , i+1 , el , optr , iptr );			\         optr->load   = ( uint32_t )iptr->load;			\         optr->speed  = ( uint16_t )iptr->speed;		\         optr->ncpus  = ( uint16_t )iptr->ncpus;		\         optr->util   = ( uint16_t )iptr->util;			\         optr->status = ( uint16_t )iptr->status;		\         optr->mem    = (  int64_t )iptr->mem;			\         optr->rmem   = (  int64_t )iptr->rmem;			\         optr->tmem   = (  int64_t )iptr->tmem;			\      }								\   }								\   else								\     DBGprint( "*** NO record" );				\   free( dummy );						\   return ( nr > 0 ) ? (int)( nr / RECSZ_ ## type ) : 0 ;	\}BUILD_READSTRUCT (2416)BUILD_READSTRUCT (2419)BUILD_READSTRUCT (2421)BUILD_READSTRUCT (2422) BUILD_READSTRUCT (2423) BUILD_READSTRUCT (2424)#undef BUILD_READSTRUCT/*** this parachute avoids unassigned handler (and consequent segfault ;)*/     int     readstruct_DUMMY (int x, mosix_info_s * y, size_t z){  return 0;}				/* readstruct_DUMMY *//***********************  E N D   O F   F I L E  ************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频一区二区不卡| 欧美精品久久天天躁| 图片区小说区区亚洲影院| 国产午夜精品久久久久久久| 欧美日韩一区三区| 97久久人人超碰| 国产最新精品精品你懂的| 日韩影院在线观看| 亚洲欧美区自拍先锋| 久久精品亚洲精品国产欧美 | 天天综合天天综合色| 国产午夜精品久久久久久免费视| 欧美日韩国产精品成人| 色综合久久综合| 国产91富婆露脸刺激对白| 久久国产精品露脸对白| 亚洲成在线观看| 一区二区三区四区蜜桃| 综合av第一页| 国产精品免费网站在线观看| 欧美mv日韩mv国产网站| 91精品国产福利| 91精品国产色综合久久不卡电影| 欧美午夜电影网| 在线看不卡av| 91黄色在线观看| 在线一区二区观看| 色综合久久综合网97色综合 | 成人免费精品视频| 国产成人综合亚洲网站| 国产在线播放一区三区四| 六月丁香婷婷色狠狠久久| 午夜精品福利久久久| 天天操天天综合网| 无吗不卡中文字幕| 日韩精品成人一区二区在线| 亚洲1区2区3区4区| 日本中文字幕一区二区有限公司| 天天综合日日夜夜精品| 青娱乐精品视频在线| 美日韩黄色大片| 久久99国产精品免费网站| 麻豆精品一区二区三区| 激情都市一区二区| 国产69精品久久久久毛片 | 91黄色小视频| 欧美日韩精品一区二区三区四区| 欧美人与性动xxxx| 欧美一区二区免费观在线| 日韩精品一区二区三区蜜臀| 久久久久久久久久久久久夜| 国产亚洲精品免费| 中文字幕一区视频| 亚洲精品第一国产综合野| 亚洲福利电影网| 美女一区二区视频| 国产精品乡下勾搭老头1| 成人av在线资源| 欧美在线视频全部完| 欧美另类z0zxhd电影| 欧美电影免费提供在线观看| 国产亚洲婷婷免费| 亚洲男人天堂av| 婷婷国产v国产偷v亚洲高清| 精品一区二区久久久| 高清成人免费视频| 欧美日韩在线综合| 久久亚区不卡日本| 一区二区三区在线免费视频| 日本色综合中文字幕| 国产91丝袜在线18| 欧美三级视频在线| 久久久国产精华| 亚洲黄一区二区三区| 蜜桃精品在线观看| av综合在线播放| 91精品免费在线| 国产精品国产自产拍在线| 亚洲成人av一区二区三区| 经典三级在线一区| 欧美在线播放高清精品| 精品盗摄一区二区三区| 亚洲一区二区视频| 国产精品99久久久久久宅男| 欧美日韩亚洲综合| 国产精品嫩草影院av蜜臀| 三级影片在线观看欧美日韩一区二区 | 2023国产精华国产精品| 亚洲女与黑人做爰| 精品无人码麻豆乱码1区2区 | 国产成人亚洲综合a∨婷婷| 欧美午夜精品久久久久久孕妇| 久久一二三国产| 日韩二区三区在线观看| 91在线视频官网| 久久久五月婷婷| 日韩精品1区2区3区| av成人老司机| 久久伊人中文字幕| 五月天一区二区三区| 91在线视频播放地址| 久久久久久久电影| 美国毛片一区二区三区| 欧美视频你懂的| 亚洲欧美综合网| 国产精品资源在线观看| 欧美一区二区人人喊爽| 亚洲午夜电影在线观看| 91亚洲精品一区二区乱码| 久久精品欧美日韩精品| 久久se精品一区精品二区| 欧美另类变人与禽xxxxx| 一区二区三区在线视频观看58| 成人蜜臀av电影| 国产日韩欧美一区二区三区乱码| 久久精品二区亚洲w码| 欧美日韩国产影片| 国产宾馆实践打屁股91| 日韩精品专区在线| 美女www一区二区| 91精品国产综合久久婷婷香蕉 | 日韩av电影免费观看高清完整版在线观看| 99re6这里只有精品视频在线观看| 国产日韩精品一区二区三区在线| 另类小说色综合网站| 欧美一级日韩一级| 日本三级亚洲精品| 日韩一区二区免费在线观看| 视频一区在线播放| 在线播放中文字幕一区| 亚洲成人中文在线| 8v天堂国产在线一区二区| 亚洲国产欧美在线| 欧美精品久久99| 日本亚洲天堂网| 日韩精品中午字幕| 国产一区不卡在线| 国产无人区一区二区三区| 国产精品一二一区| 中文av一区特黄| 不卡的电影网站| 亚洲精品日韩综合观看成人91| 91福利在线观看| 五月天欧美精品| 精品国产91乱码一区二区三区 | 欧美日韩国产片| 日韩成人dvd| 久久这里只有精品6| 国产成人精品亚洲日本在线桃色| 国产精品午夜在线观看| 91视频www| 亚洲18色成人| 欧美精品一区二区三区蜜桃| 国产高清久久久久| 亚洲欧美区自拍先锋| 3d成人h动漫网站入口| 韩国毛片一区二区三区| 亚洲国产精品成人综合| 色屁屁一区二区| 青娱乐精品视频| 日本一区二区三级电影在线观看 | 亚洲黄色小视频| 欧美丰满一区二区免费视频| 久久精品99国产精品日本| 国产精品每日更新| 欧美日韩国产影片| 国产成人免费视频精品含羞草妖精| 中文字幕一区在线| 欧美一区二区三级| 9久草视频在线视频精品| 香蕉成人伊视频在线观看| 精品少妇一区二区三区免费观看| 高清不卡在线观看av| 亚洲v中文字幕| 国产色一区二区| 欧美三级视频在线| 国产成人av电影在线播放| 亚洲午夜久久久久中文字幕久| 亚洲精品一线二线三线无人区| 91在线小视频| 久久精品国产99| 一区二区久久久| 久久精品亚洲一区二区三区浴池| 欧美色爱综合网| 成人福利视频在线| 美女任你摸久久| 一区二区三国产精华液| 欧美精品一区男女天堂| 91福利区一区二区三区| 国产美女在线观看一区| 一级女性全黄久久生活片免费| 久久久久久久网| 欧美日韩一区久久| 99久久99久久精品免费看蜜桃| 精品一区二区三区在线视频| 亚洲狠狠爱一区二区三区| 国产精品超碰97尤物18| 精品少妇一区二区| 欧美日韩极品在线观看一区| 91视频你懂的|