Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/fs/ocfs2/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  aops.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Copyright (C) 2002, 2004, 2005 Oracle.  All rights reserved.
 */


#ifndef OCFS2_AOPS_H
#define OCFS2_AOPS_H

#include <linux/fs.h>

int ocfs2_map_folio_blocks(struct folio *folio, u64 *p_blkno,
     struct inode *inode, unsigned int from,
     unsigned int to, int new);

void ocfs2_unlock_and_free_folios(struct folio **folios, int num_folios);

int walk_page_buffers( handle_t *handle,
   struct buffer_head *head,
   unsigned from,
   unsigned to,
   int *partial,
   int (*fn)( handle_t *handle,
     struct buffer_head *bh));

int ocfs2_write_end_nolock(struct address_space *mapping,
      loff_t pos, unsigned len, unsigned copied, void *fsdata);

typedef enum {
 OCFS2_WRITE_BUFFER = 0,
 OCFS2_WRITE_DIRECT,
 OCFS2_WRITE_MMAP,
} ocfs2_write_type_t;

int ocfs2_write_begin_nolock(struct address_space *mapping,
  loff_t pos, unsigned len, ocfs2_write_type_t type,
  struct folio **foliop, void **fsdata,
  struct buffer_head *di_bh, struct folio *mmap_folio);

int ocfs2_read_inline_data(struct inode *inode, struct folio *folio,
      struct buffer_head *di_bh);
int ocfs2_size_fits_inline_data(struct buffer_head *di_bh, u64 new_size);

int ocfs2_get_block(struct inode *inode, sector_t iblock,
      struct buffer_head *bh_result, int create);
/* all ocfs2_dio_end_io()'s fault */
#define ocfs2_iocb_is_rw_locked(iocb) \
 test_bit(0, (unsigned long *)&iocb->private)
static inline void ocfs2_iocb_set_rw_locked(struct kiocb *iocb, int level)
{
 set_bit(0, (unsigned long *)&iocb->private);
 if (level)
  set_bit(1, (unsigned long *)&iocb->private);
 else
  clear_bit(1, (unsigned long *)&iocb->private);
}

/*
 * Using a named enum representing lock types in terms of #N bit stored in
 * iocb->private, which is going to be used for communication between
 * ocfs2_dio_end_io() and ocfs2_file_write/read_iter().
 */

enum ocfs2_iocb_lock_bits {
 OCFS2_IOCB_RW_LOCK = 0,
 OCFS2_IOCB_RW_LOCK_LEVEL,
 OCFS2_IOCB_NUM_LOCKS
};

#define ocfs2_iocb_init_rw_locked(iocb) \
 (iocb->private = NULL)
#define ocfs2_iocb_clear_rw_locked(iocb) \
 clear_bit(OCFS2_IOCB_RW_LOCK, (unsigned long *)&iocb->private)
#define ocfs2_iocb_rw_locked_level(iocb) \
 test_bit(OCFS2_IOCB_RW_LOCK_LEVEL, (unsigned long *)&iocb->private)

#endif /* OCFS2_FILE_H */

Messung V0.5
C=96 H=89 G=92

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.