您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ IBLOCK函数代码示例

51自学网 2021-06-01 21:27:18
  C++
这篇教程C++ IBLOCK函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中IBLOCK函数的典型用法代码示例。如果您正苦于以下问题:C++ IBLOCK函数的具体用法?C++ IBLOCK怎么用?C++ IBLOCK使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了IBLOCK函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: ilock

// Lock the given inode.voidilock(struct inode *ip){  struct buf *bp;  struct dinode *dip;  if(ip == 0 || ip->ref < 1)    panic("ilock");  acquire(&icache.lock);  while(ip->flags & I_BUSY)    sleep(ip, &icache.lock);  ip->flags |= I_BUSY;  release(&icache.lock);  if(!(ip->flags & I_VALID)){    bp = bread(ip->dev, IBLOCK(ip->inum));    dip = (struct dinode*)bp->data + ip->inum%IPB;    ip->type = dip->type;    ip->major = dip->major;    ip->minor = dip->minor;    ip->nlink = dip->nlink;    ip->size = dip->size;    memmove(ip->addrs, dip->addrs, sizeof(ip->addrs));    brelse(bp);    ip->flags |= I_VALID;    if(ip->type == 0)      panic("ilock: no type");  }}
开发者ID:guneetsinghmehta,项目名称:CS537_OS,代码行数:31,


示例2: ilock

// Lock the given inode.// Reads the inode from disk if necessary.void ilock(struct inode* ip){    struct buf* bp;    struct dinode* dip;    //   cprintf("ilock /n");    if (ip == 0 || ip->ref < 1)        panic("ilock");    acquire(&icache.lock);    while (ip->flags & I_BUSY)        sleep(ip, &icache.lock);    ip->flags |= I_BUSY;    release(&icache.lock);    if (!(ip->flags & I_VALID)) {        struct superblock sb;        sb = sbs[ip->part->number];        // cprintf("inode inum %d , part Number %d /n",ip->inum,ip->part->number);        bp = bread(ip->dev, IBLOCK(ip->inum, sb));        dip = (struct dinode*)bp->data + ip->inum % IPB;        ip->type = dip->type;        ip->major = dip->major;        ip->minor = dip->minor;        ip->nlink = dip->nlink;        ip->size = dip->size;        memmove(ip->addrs, dip->addrs, sizeof(ip->addrs));        brelse(bp);        ip->flags |= I_VALID;        if (ip->type == 0)            panic("ilock: no type");    }}
开发者ID:asafbennatan,项目名称:xv6-public,代码行数:35,


示例3: ialloc

//PAGEBREAK!// Allocate a new inode with the given type on device dev.// A free inode has a type of zero.struct inode*ialloc(uint dev, short type){  int inum;  struct buf *bp;  struct dinode *dip;  struct superblock sb;  readsb(dev, &sb);  for(inum = 1; inum < sb.ninodes; inum++){    bp = bread(dev, IBLOCK(inum));    dip = (struct dinode*)bp->data + inum%IPB;    if(dip->type == 0){  // a free inode      memset(dip, 0, sizeof(*dip));      dip->type = type;      log_write(bp);   // mark it allocated on the disk      brelse(bp);      return iget(dev, inum);    }    brelse(bp);  }  panic("ialloc: no inodes");  return 0;}
开发者ID:Lulkafe,项目名称:xv6_rpi_port,代码行数:28,


示例4: sfs_ilock

// Lock the given inode.// Reads the inode from disk if necessary.static voidsfs_ilock(struct inode *ip){  struct sfs_inode *sin = vop_info(ip, sfs_inode);  struct buf *bp;  struct sfs_dinode *dip;  if(sin == 0 || sin->ref < 1)    panic("ilock");  acquire(&icache.lock);  while(sin->flags & I_BUSY)    sleep(ip, &icache.lock);  sin->flags |= I_BUSY;  release(&icache.lock);    if(!(sin->flags & I_VALID)){//    cprintf("dev=%d, inum=%d/n", sin->dev, sin->inum);    bp = bread(sin->dev, IBLOCK(sin->inum));    dip = (struct sfs_dinode*)bp->data + sin->inum%IPB;    sin->type = dip->type;    sin->major = dip->major;    sin->minor = dip->minor;    sin->nlink = dip->nlink;    sin->size = dip->size;    memmove(sin->addrs, dip->addrs, sizeof(sin->addrs));    brelse(bp);    sin->flags |= I_VALID;    if(sin->type == 0)      panic("ilock: no type");  }}
开发者ID:wzc11,项目名称:xv6_fs,代码行数:34,


示例5: rinode

voidrinode(uint inum, struct dinode *ip){  char buf[BSIZE];  uint bn;  struct dinode *dip;  bn = IBLOCK(inum, sb);  rsect(bn, buf);  dip = ((struct dinode*)buf) + (inum % IPB);  *ip = *dip;}
开发者ID:Dsdubov,项目名称:xv6,代码行数:12,


示例6: winode

voidwinode(uint inum, struct dinode *ip){  char buf[BSIZE];  uint bn;  struct dinode *dip;  bn = IBLOCK(inum);  printf("winode %d/n", bn);  rsect(bn, buf);  dip = ((struct dinode*)buf) + (inum % IPB);  *dip = *ip;  wsect(bn, buf);}
开发者ID:kazunobu-fujii,项目名称:xv6,代码行数:14,


示例7: log_iupdate

voidlog_iupdate(struct inode *ip){  struct dinode *dip;  bp[b_index] = bread(ip->dev, IBLOCK(ip->inum));  dip = (struct dinode*)bp[b_index]->data + ip->inum%IPB;  dip->type = ip->type;  dip->major = ip->major;  dip->minor = ip->minor;  dip->nlink = ip->nlink;  dip->size = ip->size;  memmove(dip->addrs, ip->addrs, sizeof(ip->addrs));  b_index++;}
开发者ID:fenster,项目名称:xv6-staus-treffert,代码行数:14,


示例8: sfs_iupdate

// Copy a modified in-memory inode to disk.voidsfs_iupdate(struct inode *ip){  struct sfs_inode *sin = vop_info(ip, sfs_inode);  struct buf *bp;  struct sfs_dinode *dip;  bp = bread(sin->dev, IBLOCK(sin->inum));  dip = (struct sfs_dinode*)bp->data + sin->inum%IPB;  dip->type = sin->type;  dip->major = sin->major;  dip->minor = sin->minor;  dip->nlink = sin->nlink;  dip->size = sin->size;  memmove(dip->addrs, sin->addrs, sizeof(sin->addrs));  log_write(bp);  brelse(bp);}
开发者ID:wzc11,项目名称:xv6_fs,代码行数:19,


示例9: iupdate

// Copy a modified in-memory inode to disk.voidiupdate(struct inode *ip){  struct buf *bp;  struct dinode *dip;  bp = bread(ip->dev, IBLOCK(ip->inum));  dip = (struct dinode*)bp->data + ip->inum%IPB;  dip->type = ip->type;  dip->major = ip->major;  dip->minor = ip->minor;  dip->nlink = ip->nlink;  dip->size = ip->size;//  cprintf("iupdate - password in memory: %s/n",ip->password);  dip->passwordSet = ip->passwordSet;  memmove(dip->password, ip->password, 10);  memmove(dip->addrs, ip->addrs, sizeof(ip->addrs));  log_write(bp);  brelse(bp);}
开发者ID:eldardamari,项目名称:operatingSystems,代码行数:21,


示例10: iupdate

// Copy a modified in-memory inode to disk.void iupdate(struct inode* ip){    //  cprintf("iupdate /n");    struct buf* bp;    struct dinode* dip;    struct superblock sb;    sb = sbs[ip->part->number];    bp = bread(ip->dev, IBLOCK(ip->inum, sb));    dip = (struct dinode*)bp->data + ip->inum % IPB;    dip->type = ip->type;    dip->major = ip->major;    dip->minor = ip->minor;    dip->nlink = ip->nlink;    dip->size = ip->size;    memmove(dip->addrs, ip->addrs, sizeof(ip->addrs));    log_write(bp, ip->part->number);    brelse(bp);}
开发者ID:asafbennatan,项目名称:xv6-public,代码行数:22,


示例11: iupdate

// Copy a modified in-memory inode to disk.voidiupdate(struct inode *ip){  struct buf *bp;  struct dinode *dip;  bp = bread(ip->dev, IBLOCK(ip->inum));  dip = (struct dinode*)bp->data + ip->inum%IPB;  dip->type = ip->type;  dip->major = ip->major;  dip->minor = ip->minor;  dip->nlink = ip->nlink;  dip->size = ip->size;  memmove(dip->addrs, ip->addrs, sizeof(ip->addrs));/*vvv  TASK 1.1  vvv*/  dip->indirect2 = ip->indirect2;/*^^^^^^^^^^^^^^^^^^*//*vvv  TASK 2    vvv*/  memmove(dip->password, ip->password, sizeof(ip->password));/*^^^^^^^^^^^^^^^^^^*/  log_write(bp);  brelse(bp);}
开发者ID:bitc,项目名称:3,代码行数:24,


示例12: ialloc

// PAGEBREAK!// Allocate a new inode with the given type on device dev.// A free inode has a type of zero.struct inode* ialloc(uint dev, short type, int partitionNumber){    // cprintf("ialloc /n");    int inum;    struct buf* bp;    struct dinode* dip;    struct superblock sb;    sb = sbs[partitionNumber];    //  cprintf("ialloc pnumber %d , numberofnods %d /n", partitionNumber, sb.ninodes);    for (inum = 1; inum < sb.ninodes; inum++) {        // cprintf("checking inode %d /n", inum);        bp = bread(dev, IBLOCK(inum, sb));        dip = (struct dinode*)bp->data + inum % IPB;        if (dip->type == 0) { // a free inode            memset(dip, 0, sizeof(*dip));            dip->type = type;            log_write(bp, partitionNumber); // mark it allocated on the disk            brelse(bp);            return iget(dev, inum, partitionNumber);        }        brelse(bp);    }    panic("ialloc: no inodes");}
开发者ID:asafbennatan,项目名称:xv6-public,代码行数:27,


示例13: MAXITS

/* Subroutine */ int sstein_(integer *n, real *d, real *e, integer *m, real *	w, integer *iblock, integer *isplit, real *z, integer *ldz, real *	work, integer *iwork, integer *ifail, integer *info){/*  -- LAPACK routine (version 2.0) --          Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,          Courant Institute, Argonne National Lab, and Rice University          September 30, 1994       Purpose       =======       SSTEIN computes the eigenvectors of a real symmetric tridiagonal       matrix T corresponding to specified eigenvalues, using inverse       iteration.       The maximum number of iterations allowed for each eigenvector is       specified by an internal parameter MAXITS (currently set to 5).       Arguments       =========       N       (input) INTEGER               The order of the matrix.  N >= 0.       D       (input) REAL array, dimension (N)               The n diagonal elements of the tridiagonal matrix T.       E       (input) REAL array, dimension (N)               The (n-1) subdiagonal elements of the tridiagonal matrix               T, in elements 1 to N-1.  E(N) need not be set.       M       (input) INTEGER               The number of eigenvectors to be found.  0 <= M <= N.       W       (input) REAL array, dimension (N)               The first M elements of W contain the eigenvalues for               which eigenvectors are to be computed.  The eigenvalues               should be grouped by split-off block and ordered from               smallest to largest within the block.  ( The output array               W from SSTEBZ with ORDER = 'B' is expected here. )       IBLOCK  (input) INTEGER array, dimension (N)               The submatrix indices associated with the corresponding               eigenvalues in W; IBLOCK(i)=1 if eigenvalue W(i) belongs to               the first submatrix from the top, =2 if W(i) belongs to               the second submatrix, etc.  ( The output array IBLOCK               from SSTEBZ is expected here. )       ISPLIT  (input) INTEGER array, dimension (N)               The splitting points, at which T breaks up into submatrices.               The first submatrix consists of rows/columns 1 to               ISPLIT( 1 ), the second of rows/columns ISPLIT( 1 )+1               through ISPLIT( 2 ), etc.               ( The output array ISPLIT from SSTEBZ is expected here. )       Z       (output) REAL array, dimension (LDZ, M)               The computed eigenvectors.  The eigenvector associated               with the eigenvalue W(i) is stored in the i-th column of               Z.  Any vector which fails to converge is set to its current               iterate after MAXITS iterations.       LDZ     (input) INTEGER               The leading dimension of the array Z.  LDZ >= max(1,N).       WORK    (workspace) REAL array, dimension (5*N)       IWORK   (workspace) INTEGER array, dimension (N)       IFAIL   (output) INTEGER array, dimension (M)               On normal exit, all elements of IFAIL are zero.               If one or more eigenvectors fail to converge after               MAXITS iterations, then their indices are stored in               array IFAIL.       INFO    (output) INTEGER               = 0: successful exit.               < 0: if INFO = -i, the i-th argument had an illegal value               > 0: if INFO = i, then i eigenvectors failed to converge                    in MAXITS iterations.  Their indices are stored in                    array IFAIL.       Internal Parameters       ===================       MAXITS  INTEGER, default = 5               The maximum number of iterations performed.       EXTRA   INTEGER, default = 2               The number of iterations performed after norm growth               criterion is satisfied, should be at least 1.       =====================================================================          Test the input parameters.   //.........这里部分代码省略.........
开发者ID:deepakantony,项目名称:vispack,代码行数:101,


示例14: interval

/* Subroutine */ int sstebz_(char *range, char *order, integer *n, real *vl, 	real *vu, integer *il, integer *iu, real *abstol, real *d, real *e, 	integer *m, integer *nsplit, real *w, integer *iblock, integer *	isplit, real *work, integer *iwork, integer *info){/*  -- LAPACK routine (version 2.0) --          Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,          Courant Institute, Argonne National Lab, and Rice University          September 30, 1994       Purpose       =======       SSTEBZ computes the eigenvalues of a symmetric tridiagonal       matrix T.  The user may ask for all eigenvalues, all eigenvalues       in the half-open interval (VL, VU], or the IL-th through IU-th       eigenvalues.       To avoid overflow, the matrix must be scaled so that its       largest element is no greater than overflow**(1/2) *       underflow**(1/4) in absolute value, and for greatest       accuracy, it should not be much smaller than that.       See W. Kahan "Accurate Eigenvalues of a Symmetric Tridiagonal       Matrix", Report CS41, Computer Science Dept., Stanford       University, July 21, 1966.       Arguments       =========       RANGE   (input) CHARACTER               = 'A': ("All")   all eigenvalues will be found.               = 'V': ("Value") all eigenvalues in the half-open interval                                (VL, VU] will be found.               = 'I': ("Index") the IL-th through IU-th eigenvalues (of the                                entire matrix) will be found.       ORDER   (input) CHARACTER               = 'B': ("By Block") the eigenvalues will be grouped by                                   split-off block (see IBLOCK, ISPLIT) and                                   ordered from smallest to largest within                                   the block.               = 'E': ("Entire matrix")                                   the eigenvalues for the entire matrix                                   will be ordered from smallest to                                   largest.       N       (input) INTEGER               The order of the tridiagonal matrix T.  N >= 0.       VL      (input) REAL       VU      (input) REAL               If RANGE='V', the lower and upper bounds of the interval to               be searched for eigenvalues.  Eigenvalues less than or equal               to VL, or greater than VU, will not be returned.  VL < VU.               Not referenced if RANGE = 'A' or 'I'.       IL      (input) INTEGER       IU      (input) INTEGER               If RANGE='I', the indices (in ascending order) of the               smallest and largest eigenvalues to be returned.               1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0.               Not referenced if RANGE = 'A' or 'V'.       ABSTOL  (input) REAL               The absolute tolerance for the eigenvalues.  An eigenvalue               (or cluster) is considered to be located if it has been               determined to lie in an interval whose width is ABSTOL or               less.  If ABSTOL is less than or equal to zero, then ULP*|T|               will be used, where |T| means the 1-norm of T.               Eigenvalues will be computed most accurately when ABSTOL is               set to twice the underflow threshold 2*SLAMCH('S'), not zero.       D       (input) REAL array, dimension (N)               The n diagonal elements of the tridiagonal matrix T.       E       (input) REAL array, dimension (N-1)               The (n-1) off-diagonal elements of the tridiagonal matrix T.       M       (output) INTEGER               The actual number of eigenvalues found. 0 <= M <= N.               (See also the description of INFO=2,3.)       NSPLIT  (output) INTEGER               The number of diagonal blocks in the matrix T.               1 <= NSPLIT <= N.       W       (output) REAL array, dimension (N)               On exit, the first M elements of W will contain the               eigenvalues.  (SSTEBZ may use the remaining N-M elements as               workspace.)   //.........这里部分代码省略.........
开发者ID:bliss-sid,项目名称:OCR,代码行数:101,


示例15: IBLOCK

struct dinode *inodeFromINum(uint inum) {	uint blockNum = IBLOCK(inum);	void *blockPtr = blockPtrFromBNum(blockNum);	return (struct dinode *) blockPtr + (inum % IPB);}
开发者ID:r1ptide64,项目名称:p5a,代码行数:5,



注:本文中的IBLOCK函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ IBRCOMMON_LOGGER_DEBUG_TAG函数代码示例
C++ IBAprep函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。