Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка vnode_if.h

Опции
Развертывание Target:

На этой странице

Ссылка vnode_if.h

Включенные заголовки

  • <sys/appleapiopts.h>

  • <sys/cdefs.h>

  • <sys/kernel_types.h>

  • <sys/buf.h>

  • <mach/memory_object_types.h>

Функции

  • Запишите буфер в запоминающее устройство.

    Объявление

    Objective C

    errno_t VNOP_BWRITE ( buf_t );

    Параметры

    bp

    Буфер для записи.

    Возвращаемое значение

    0 для успеха, еще код ошибки.

    Обсуждение

    VNOP_BWRITE () вызывает buf_bawrite () (асинхронная запись) и потенциально buf_bdwrite () (отложенная запись), но не buf_bwrite (). Файловая система может принять решение выполнить некоторое манипулирование буфером в этой подпрограмме; это обычно будет заканчивать тем, что вызвало реализацию по умолчанию VFS, vn_bwrite () (который вызывает buf_bwrite () без дальнейшей суматохи).

    Оператор импорта

    Objective C

    #include <vnode_if.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Раскритикуйте к файловой системе для синхронизации файла с дисковым состоянием.

    Объявление

    Objective C

    errno_t VNOP_FSYNC ( vnode_t, int, vfs_context_t );

    Параметры

    vp

    vnode, чьи данные для сбрасывания к запоминающему устройству.

    ctx

    Контекст для аутентификации для запроса fsync.

    Возвращаемое значение

    0 для успеха, еще код ошибки.

    Обсуждение

    VNOP_FSYNC вызывают каждый раз, когда мы должны удостовериться, что данные файла были продвинуты к запоминающему устройству, например при переработке; это - также основа fsync () системный вызов.

    Оператор импорта

    Objective C

    #include <vnode_if.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Получите расширенные атрибуты файла.

    Объявление

    Objective C

    errno_t VNOP_GETXATTR ( vnode_t, const char *, uio_t, size_t *, int, vfs_context_t );

    Параметры

    vp

    vnode для получения расширенных атрибутов для.

    name

    Какое свойство извлечь.

    uio

    Целевая информация для значения атрибута.

    size

    Должен быть установлен на сумму записанных данных.

    options

    XATTR_NOSECURITY: обходная проверка безопасности.

    ctx

    Контекст для аутентификации для запроса getxattr.

    Возвращаемое значение

    0 для успеха или кода ошибки.

    Оператор импорта

    Objective C

    #include <vnode_if.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Раскритикуйте к файловой системе или драйверу устройства, чтобы выполнить различные операции управления на или запросить данные о файле.

    Объявление

    Objective C

    errno_t VNOP_IOCTL ( vnode_t, u_long, caddr_t, int, vfs_context_t );

    Параметры

    vp

    vnode для выполнения команды на.

    command

    Идентификатор для действия для взятия.

    data

    Указатель на данные; это может быть целочисленной константой (только 32 битов) или адрес, который будет считан из или записан в, в зависимости от «команды». Если это - адрес, это допустимо и находится в ядре; вызывающие стороны VNOP_IOCTL () ответственны за копирование к и от пространства пользователя.

    ctx

    Контекст, против которого можно аутентифицировать запрос ioctl.

    Возвращаемое значение

    0 для успеха или специфичной для файловой системы ошибки.

    Обсуждение

    Средства управления Ioctl обычно связываются с устройствами, но они могут фактически быть переданы для любого файла; они используются для реализации любого широкого диапазона информационных запросов и средств управления. fcntl () вызывает VNOP_IOCTL для нескольких команд и будет делать попытку VNOP_IOCTL, если это передается неизвестная команда, хотя никакое копирование или copyout параметров не могут произойти в этом случае - «аргумент» должен быть целочисленным значением. Файловые системы могут определить свой собственный fcntls, использующий этот механизм. То, как ioctl команды структурированы, немного сложно; см. страницу руководства для ioctl (2).

    Оператор импорта

    Objective C

    #include <vnode_if.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Раскритикуйте к файловой системе для чтения данных файла.

    Объявление

    Objective C

    errno_t VNOP_READ ( vnode_t, struct uio *, int, vfs_context_t );

    Параметры

    vp

    vnode для чтения из.

    uio

    Описание запроса, включая файловое смещение, объем данных, который требуют, адрес назначения на данные, и является ли то место назначения в ядре или пространстве пользователя.

    ctx

    Контекст, против которого можно аутентифицировать запрос чтения.

    Возвращаемое значение

    0 для успеха или специфичной для файловой системы ошибки. Даже если меньше данных было считано, чем первоначально требуемый, VNOP_READ () может возвратить успех; возврат ошибочного значения должен указать, что что-то фактически пошло не так, как надо.

    Обсуждение

    VNOP_READ () - то, где происходит тяжелая работа чтения () системный вызов. Файловая система может использовать буферный кэш, кластерный уровень или альтернативный метод для получения его данных; подпрограммы uio будут использоваться, чтобы видеть, что данные копируются в корректный виртуальный адрес в корректном адресном пространстве и обновят свой uio параметр для указания, сколько данных было перемещено.

    Оператор импорта

    Objective C

    #include <vnode_if.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Установите расширенные атрибуты файла.

    Объявление

    Objective C

    errno_t VNOP_SETXATTR ( vnode_t, const char *, uio_t, int, vfs_context_t );

    Параметры

    vp

    vnode для установки расширенных атрибутов для.

    name

    Какое свойство извлечь.

    uio

    Информация об источнике для значения атрибута.

    options

    XATTR_NOSECURITY: обходная проверка безопасности. XATTR_CREATE: значение набора, сбой, если существует. XATTR_REPLACE: значение набора, сбой, если не существует.

    ctx

    Контекст для аутентификации для запроса setxattr.

    Возвращаемое значение

    0 для успеха или кода ошибки.

    Оператор импорта

    Objective C

    #include <vnode_if.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Инициируйте I/O на файле (и чтение и запись).

    Объявление

    Objective C

    errno_t VNOP_STRATEGY ( struct buf *bp );

    Параметры

    bp

    Завершите specificiation требуемого I/O: область данных включила, является ли запрос для чтения или записи и т.д.

    Возвращаемое значение

    0 для успеха, еще код ошибки.

    Обсуждение

    Подпрограмма стратегии файловой системы берет буфер, выполняет любые манипуляции, необходимы для передачи запроса I/O к уровню устройств, и вызывает подпрограмму стратегии надлежащего устройства. Большинство файловых систем должно просто вызвать buf_strategy () с «BP» как параметр.

    Оператор импорта

    Objective C

    #include <vnode_if.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Раскритикуйте к файловой системе для записи данных файла.

    Объявление

    Objective C

    errno_t VNOP_WRITE ( vnode_t, struct uio *, int, vfs_context_t );

    Параметры

    vp

    vnode для записи в.

    uio

    Описание запроса, включая файловое смещение, объем данных для записи, исходный адрес для данных, и является ли то место назначения в ядре или пространстве пользователя.

    ctx

    Контекст, против которого можно аутентифицировать запрос записи.

    Возвращаемое значение

    0 для успеха или специфичной для файловой системы ошибки. Даже если меньше данных было записано, чем первоначально требуемый, VNOP_WRITE () может возвратить успех; возврат ошибочного значения должен указать, что что-то фактически пошло не так, как надо.

    Обсуждение

    VNOP_WRITE () должен записать (), поскольку VNOP_READ () должен читать (). Файловая система может использовать буферный кэш, кластерный уровень или альтернативный метод для записи его данных; подпрограммы uio будут использоваться, чтобы видеть, что данные копируются в корректный виртуальный адрес в корректном адресном пространстве и обновят свой uio параметр для указания, сколько данных было перемещено.

    Оператор импорта

    Objective C

    #include <vnode_if.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

Типы данных

Посмотрите раздел Overview выше для документации уровня заголовка.

  • Раскритикуйте к файловой системе для закрытия файла.

    Объявление

    Objective C

    struct vnop_access_args { struct vnodeop_desc *a_desc; vnode_t a_vp; int a_action; vfs_context_t a_context; };

    Поля

    vp

    Файл для закрытия.

    fflag

    FREAD и/или FWRITE; в случае файла, открытого с, открывают (2), fflag соответствует, как был открыт файл.

    ctx

    Контекст, против которого можно аутентифицировать близко.

    Обсуждение

    Завершение vnop дает файловой системе шанс выпустить состояние, установленное VNOP_OPEN (). VFS обещает отправить вниз точно один VNOP_CLOSE () для каждого VNOP_OPEN ().

    Доступность

    Доступный в OS X v10.6 и позже.

  • Запросите файловую систему для свойств пути.

    Объявление

    Objective C

    struct vnop_advlock_args { struct vnodeop_desc *a_desc; vnode_t a_vp; caddr_t a_id; int a_op; struct flock *a_fl; int a_flags; vfs_context_t a_context; struct timespec *a_timeout; };

    Поля

    vp

    vnode, чья файловая система для запросов.

    name

    Какое свойство запросить: см. unistd.h. Например: _PC_CASE_SENSITIVE (действительно ли файловая система чувствительна к регистру?). Только одно свойство можно требовать за один раз.

    retval

    Место назначения для значения свойства.

    ctx

    Контекст для аутентификации для запроса pathconf.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Aquire или выпуск и консультация соединяют vnode.

    Объявление

    Objective C

    struct vnop_allocate_args { struct vnodeop_desc *a_desc; vnode_t a_vp; off_t a_length; u_int32_t a_flags; off_t *a_bytesallocated; off_t a_offset; vfs_context_t a_context; };

    Поля

    vp

    vnode, чтобы заблокировать или разблокировать.

    id

    Идентификатор для держателя блокировки: проигнорированный большинством файловых систем.

    op

    Какая блокировка работы: F_SETLK: информация о блокировке набора об области. F_GETLK: получите информацию блокировки об указанной области. F_UNLCK: Разблокируйте область.

    fl

    Описание области файла для блокировки. l_whence как с «lseek». Включает тип: F_RDLCK (коллективная блокировка), F_UNLCK (разблокировали), и F_WRLCK (монопольная блокировка).

    flags

    F_FLOCK: используйте скопление () семантика. F_POSIX: используйте семантику POSIX. F_WAIT: спите при необходимости. Ф_ПРОВ: Non-coelesced временная блокировка (неиспользованный в xnu).

    ctx

    Контекст для аутентификации для консультативного запроса блокировки.

    timeout

    Timespec для тайм-аута в случае F_SETLKWTIMEOUT.

    Обсуждение

    Консультативная блокировка является несколько сложной. VNOP_ADVLOCK перегружается для обоих скоплений () и консультация POSIX блокировка использования, хотя не все файловые системы поддерживают обоих (или любой). VFS обеспечивает консультативный механизм блокировки для файловых систем, которые могут использовать в своих интересах его; vfs_setlocklocal () отмечает файловую систему как использующий консультацию VFS, блокирующую поддержку.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Перечислите расширенные ключи атрибута.

    Объявление

    Objective C

    struct vnop_blktooff_args { struct vnodeop_desc *a_desc; vnode_t a_vp; daddr64_t a_lblkno; off_t *a_offset; };

    Поля

    vp

    vnode, для которого можно получить расширенные ключи атрибута.

    uio

    Описание целевой памяти для ключей атрибута.

    size

    Должен быть установлен на сумму данных, записанных для буферизации.

    options

    XATTR_NOSECURITY: обходная проверка безопасности.

    ctx

    Контекст для аутентификации для запроса названия атрибута.

    Обсуждение

    Должен записать последовательность неразделенных, завершенных нулем расширенных названий атрибута в пространство, описанное предоставленным uio. Эти ключи могут тогда быть переданы getxattr () (и VNOP_GETXATTR ()).

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для преобразования файлового смещения в номер логического блока.

    Объявление

    Objective C

    struct vnop_blockmap_args { struct vnodeop_desc *a_desc; vnode_t a_vp; off_t a_foffset; size_t a_size; daddr64_t *a_bpn; size_t *a_run; void *a_poff; int a_flags; vfs_context_t a_context; };

    Поля

    vp

    vnode, для которого можно преобразовать смещение в номер логического блока.

    offset

    Файловое смещение для преобразования.

    lblkno

    Место назначения для соответствующего номера логического блока.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для открытия файла.

    Объявление

    Objective C

    struct vnop_close_args { struct vnodeop_desc *a_desc; vnode_t a_vp; int a_fflag; vfs_context_t a_context; };

    Поля

    vp

    Файл для открытия.

    mode

    FREAD и/или FWRITE.

    ctx

    Контекст, против которого можно аутентифицировать открытый.

    Обсуждение

    Открытый vnop дает файловой системе шанс инициализировать файл для операций как чтение, запись и ioctls. VFS обещает отправить вниз точно один VNOP_CLOSE () для каждого VNOP_OPEN ().

    Доступность

    Доступный в OS X v10.6 и позже.

  • Запишите данные из отображенного файла назад к диску.

    Объявление

    Objective C

    /* @function VNOP_SEARCHFS @abstract Search a filesystem quickly for files or directories that match the passed-in search criteria. @discussion VNOP_SEARCHFS is a getattrlist-based system call which is implemented almost entirely inside supported filesystems. Callers provide a set of criteria to match against, and the filesystem is responsible for finding all files or directories that match the criteria. Once these files or directories are found, the user-requested attributes of these files is provided as output. The set of searchable attributes is a subset of the getattrlist attributes. For example, ATTR_CMN_UUID is not a valid searchable attribute as of 10.6. A common usage scenario could be to request all files whose mod dates is greater than time X, less than time Y, and provide the inode ID and filename of the matching objects as output. @param vp The vnode representing the mountpoint of the filesystem to be searched. @param a_searchparams1 If one-argument search criteria is requested, the search criteria would go here. However, some search criteria, like ATTR_CMN_MODTIME, can be bounded. The user could request files modified between time X and time Y. In this case, the lower bound goes in a_searchparams1. @param a_searchparams2 If two-argument search criteria is requested, the upper bound goes in here. @param a_searchattrs Contains the getattrlist-style attribute bits which are requested by the current search. @param a_maxmatches The maximum number of matches to return in a single system call. @param a_timelimit The suggested maximum amount of time we can spend in the kernel to service this system call. Filesystems should use this as a guide only, and set their own internal maximum time to avoid denial of service. @param a_returnattrs The getattrlist-style attributes to return for items in the filesystem that match the search criteria above. @param a_scriptcode Currently ignored. @param a_uio The uio in which to write out the search matches. @param a_searchstate Sometimes searches cannot be completed in a single system call. In this case, we provide an identifier back to the user which indicates where to resume a previously-started search. This is an opaque structure used by the filesystem to identify where to resume said search. @param a_context The context in which to perform the filesystem search. @return 0 on success, EAGAIN for searches which could not be completed in 1 call, and other ERRNOS as needed. */ struct vnop_copyfile_args { struct vnodeop_desc *a_desc; vnode_t a_fvp; vnode_t a_tdvp; vnode_t a_tvp; struct componentname *a_tcnp; int a_mode; int a_flags; vfs_context_t a_context; };

    Поля

    vp

    vnode, для которого можно разбить на страницы данные.

    pl

    UPL описание страниц должен был быть разбит на страницы. Если UPL является NULL, то это означает, что файловая система выбрала в семантику VFC_VFSVNOP_PAGEOUTV2, что означает, что это будет создавать и управлять самостоятельно UPLs в противоположность доверию тому, переданному в файловую систему. Это означает, что файловая система должна быть ответственна за N cluster_pageout требования N грязные диапазоны в UPL.

    pl_offset

    Смещение в UPL, с которого можно запустить разбивку на страницы данные. Под новой семантикой VFC_VFSVNOP_PAGEOUTV2 это - смещение в диапазоне, указанном, что это должно быть разбито на страницы, если связанная страница грязна.

    f_offset

    Смещение в файле данных, бывших должных быть разбитыми на страницы. Под новой семантикой VFC_VFSVNOP_PAGEOUTV2 это представляет смещение в файле, где мы должны начать искать грязные страницы.

    size

    Объем данных к странице (в байтах). Под VFC_VFSVNOP_PAGEOUTV2 это представляет размер диапазона, который рассмотрят. fileystem свободен расширить или уменьшить указанный диапазон для лучше адаптации, его блокирование моделируют целый, страница в 'pl_offset' включена.

    flags

    Флаги UPL-стиля: UPL_IOSYNC, UPL_NOCOMMIT, UPL_NORDAHEAD, UPL_VNODE_PAGER, UPL_MSYNC. Файловые системы должны обычно предоставлять кластерному уровню право обрабатывать эти флаги. Посмотрите memory_object_types.h заголовок в платформе ядра, если заинтересовано.

    ctx

    Контекст для аутентификации для запроса pageout.

    Обсуждение

    VNOP_PAGEOUT () вызывают, когда данные от отображенного файла должны быть сброшены к диску, любому из-за msync () вызов или вследствие давления памяти. Файловые системы, как по большей части ожидают, просто вызовут cluster_pageout (). Однако, если они выберут во флаг VFC_VFSVNOP_PAGEOUTV2, то тогда они будут ответственны за создание их собственного UPLs.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для поиска записи каталога по имени.

    Объявление

    Objective C

    struct vnop_create_args { struct vnodeop_desc *a_desc; vnode_t a_dvp; vnode_t *a_vpp; struct componentname *a_cnp; struct vnode_attr *a_vap; vfs_context_t a_context; };

    Поля

    dvp

    Каталог, в котором можно искать файл.

    vpp

    Место назначения для найденного vnode.

    cnp

    Структура, описывающая имя файла для нахождения, рассуждайте для поиска и различных других данных.

    ctx

    Контекст, против которого можно аутентифицировать запрос поиска.

    Обсуждение

    VNOP_LOOKUP является ключевой трассой, через которую VFS просит, чтобы файловая система нашла файл. vnode должен быть возвращен с iocount, который будет отброшен вызывающей стороной. VNOP_LOOKUP () выговор может прибыть без предыдущего VNOP_OPEN ().

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе или устройству, чтобы проверить, готов ли файл к I/O, и запросите более позднее уведомление, если это не в настоящее время готово.

    Объявление

    Objective C

    struct vnop_exchange_args { struct vnodeop_desc *a_desc; vnode_t a_fvp; vnode_t a_tvp; int a_options; vfs_context_t a_context; };

    Поля

    vp

    vnode для проверки на готовность I/O.

    which

    Какой желаем I/O: FREAD, FWRITE.

    fflags

    Флаги от fileglob, как замечено в fcntl.h, например, O_NONBLOCK, O_APPEND.

    wql

    Непрозрачный объект для передачи selrecord ().

    ctx

    Контекст для аутентификации для избранного запроса.

    Обсуждение

    В целом, регулярный всегда «готовы к I/O», и их выбор vnops просто возвращаются «1». Устройства, тем не менее, могут или не могут быть считаны; они отслеживают то, кто выбирает на них, и отправьте уведомления, когда они становятся готовыми. xnu обеспечивает структуры и подпрограммы для отслеживания потоков, ожидающих I/O и будящих те потоки: см. selrecord (), selthreadclear (), seltrue (), selwait (), selwakeup (), и selinfo структура (sys/select.h).

    Доступность

    Доступный в OS X v10.6 и позже.

  • Сообщите файловой системе, что больше не отображается файл.

    Объявление

    Objective C

    struct vnop_fsync_args { struct vnodeop_desc *a_desc; vnode_t a_vp; int a_waitfor; vfs_context_t a_context; };

    Поля

    vp

    Больше не отображающийся vnode.

    ctx

    Контекст для аутентификации для запроса mnomap.

    Обсуждение

    В целом никакое действие не требуется файловой системы для VNOP_MNOMAP.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе, чтобы видеть, разрешена ли работа kauth-стиля.

    Объявление

    Objective C

    struct vnop_getattr_args { struct vnodeop_desc *a_desc; vnode_t a_vp; struct vnode_attr *a_vap; vfs_context_t a_context; };

    Поля

    vp

    Файл для авторизации действия для.

    action

    действие kauth-стиля, которое будет проверено на полномочия, например, KAUTH_VNODE_DELETE.

    ctx

    Контекст, против которого можно аутентифицировать действие.

    Обсуждение

    К VNOP_ACCESS в настоящее время только обращаются файловые системы, отмечающие себя как выполнение их аутентификации удаленно (vfs_setauthopaque (), vfs_authopaque ()). VNOP_ACCESS () выговор может прибыть ни с кем предшествующим VNOP_OPEN ().

    Доступность

    Доступный в OS X v10.6 и позже.

  • Свяжите метку MACF с файлом.

    Объявление

    Objective C

    struct vnop_getnamedstream_args { struct vnodeop_desc *a_desc; vnode_t a_vp; vnode_t *a_svpp; const char *a_name; enum nsoperation a_operation; int a_flags; vfs_context_t a_context; };

    Поля

    vp

    vnode для маркировки.

    label

    Желаемая метка.

    ctx

    Контекст для аутентификации для изменения метки.

  • Запишите данные из отображенного файла назад к диску.

    Объявление

    Objective C

    struct vnop_getxattr_args { struct vnodeop_desc *a_desc; vnode_t a_vp; const char *a_name; uio_t a_uio; size_t *a_size; int a_options; vfs_context_t a_context; };

    Поля

    vp

    vnode, для которого можно разбить на страницы данные.

    pl

    UPL описание страниц должен был быть разбит на страницы. Если UPL является NULL, то это означает, что файловая система выбрала в семантику VFC_VFSVNOP_PAGEOUTV2, что означает, что это будет создавать и управлять самостоятельно UPLs в противоположность доверию тому, переданному в файловую систему. Это означает, что файловая система должна быть ответственна за N cluster_pageout требования N грязные диапазоны в UPL.

    pl_offset

    Смещение в UPL, с которого можно запустить разбивку на страницы данные. Под новой семантикой VFC_VFSVNOP_PAGEOUTV2 это - смещение в диапазоне, указанном, что это должно быть разбито на страницы, если связанная страница грязна.

    f_offset

    Смещение в файле данных, бывших должных быть разбитыми на страницы. Под новой семантикой VFC_VFSVNOP_PAGEOUTV2 это представляет смещение в файле, где мы должны начать искать грязные страницы.

    size

    Объем данных к странице (в байтах). Под VFC_VFSVNOP_PAGEOUTV2 это представляет размер диапазона, который рассмотрят. fileystem свободен расширить или уменьшить указанный диапазон для лучше адаптации, его блокирование моделируют целый, страница в 'pl_offset' включена.

    flags

    Флаги UPL-стиля: UPL_IOSYNC, UPL_NOCOMMIT, UPL_NORDAHEAD, UPL_VNODE_PAGER, UPL_MSYNC. Файловые системы должны обычно предоставлять кластерному уровню право обрабатывать эти флаги. Посмотрите memory_object_types.h заголовок в платформе ядра, если заинтересовано.

    ctx

    Контекст для аутентификации для запроса pageout.

    Обсуждение

    VNOP_PAGEOUT () вызывают, когда данные от отображенного файла должны быть сброшены к диску, любому из-за msync () вызов или вследствие давления памяти. Файловые системы, как по большей части ожидают, просто вызовут cluster_pageout (). Однако, если они выберут во флаг VFC_VFSVNOP_PAGEOUTV2, то тогда они будут ответственны за создание их собственного UPLs.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для представления пути символьной ссылкой.

    Объявление

    Objective C

    struct vnop_inactive_args { struct vnodeop_desc *a_desc; vnode_t a_vp; vfs_context_t a_context; };

    Поля

    vp

    Символьная ссылка для чтения из.

    uio

    Целевая информация для пути ссылок.

    ctx

    Контекст для аутентификации для запроса readlink.

    Обсуждение

    VNOP_READLINK () сохранил путь в символьной ссылке; это вызывает namei () и readlink () системным вызовом.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для удаления файла.

    Объявление

    Objective C

    struct vnop_link_args { struct vnodeop_desc *a_desc; vnode_t a_vp; vnode_t a_tdvp; struct componentname *a_cnp; vfs_context_t a_context; };

    Поля

    dvp

    Каталог, в котором можно удалить файл.

    vp

    Файл для удаления.

    cnp

    Информация об имени файла.

    ctx

    Контекст для аутентификации для запроса fsync.

    Обсуждение

    VNOP_REMOVE вызывают для удаления файла из пространства имен файловой системы, например расцепляют (). Это может воздействовать на регулярные файлы, именованные каналы, специальные файлы, и в некоторых случаях на каталогах.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Удалите расширенные атрибуты файла.

    Объявление

    Objective C

    struct vnop_listxattr_args { struct vnodeop_desc *a_desc; vnode_t a_vp; uio_t a_uio; size_t *a_size; int a_options; vfs_context_t a_context; };

    Поля

    vp

    vnode, из которого можно удалить расширенные атрибуты.

    name

    Которые приписывают для удаления.

    options

    XATTR_NOSECURITY: обходная проверка безопасности.

    ctx

    Контекст для аутентификации для атрибута удаляет запрос.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Свяжите именованный поток с файлом.

    Объявление

    Objective C

    struct vnop_makenamedstream_args { struct vnodeop_desc *a_desc; vnode_t *a_svpp; vnode_t a_vp; const char *a_name; int a_flags; vfs_context_t a_context; };

    Поля

    vp

    vnode, для которого можно получить именованный поток.

    svpp

    Место назначения для указателя на vnode именованного потока.

    name

    Имя именованного потока, например, «com.apple. ResourceFork».

    operation

    Работа для выполнения. В HFS и AFP, этот параметр только рассматривают следующим образом: если ветвь ресурсов не была открыта, и работа не является NS_OPEN, сбоем с ENOATTR. В настоящее время только переданный как NS_OPEN VFS.

    flags

    В настоящее время неиспользованный.

    ctx

    Контекст для аутентификации для того, чтобы быть названным потоком.

    Обсуждение

    Если этот вызов sucecss, svpp должен быть возвращен с iocount, который отбросит вызывающая сторона. VFS предоставляет средство для моделирования именованных потоков при взаимодействии с файловыми системами, не поддерживающими их.

  • Раскритикуйте к файловой системе для переименования файла.

    Объявление

    Objective C

    struct vnop_mkdir_args { struct vnodeop_desc *a_desc; vnode_t a_dvp; vnode_t *a_vpp; struct componentname *a_cnp; struct vnode_attr *a_vap; vfs_context_t a_context; };

    Поля

    fdvp

    Каталог, в котором находится исходный файл.

    fvp

    Переименовываемый файл.

    fcnp

    Информация об имени для исходного файла.

    tdvp

    Файл каталога перемещается в.

    tvp

    Существующий файл с тем же именем как цель, должен каждый существовать.

    tcnp

    Информация об имени для целевого пути.

    ctx

    Контекст для аутентификации для переименовывает запрос.

    Обсуждение

    VNOP_RENAME () только вызовут с источником и целью на том же объеме.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для создания белой тьмы.

    Объявление

    Objective C

    struct vnop_mknod_args { struct vnodeop_desc *a_desc; vnode_t a_dvp; vnode_t *a_vpp; struct componentname *a_cnp; struct vnode_attr *a_vap; vfs_context_t a_context; };

    Поля

    dvp

    Каталог, в котором можно создать.

    cnp

    Информация об имени для белой тьмы.

    flags

    CREATE: создайте белую тьму. LOOKUP: проверьте, поддерживает ли каталог белую тьму, DELETE: удалите белую тьму.

    ctx

    Контекст, против которого можно аутентифицировать создание белой тьмы.

    Обсуждение

    Белая тьма используется для поддержки файловой системы объединения, посредством чего одна файловая система смонтирована «прозрачно» поверх другого. Белая тьма на верхнем уровне монтирования объединения является «удалением» файла на нижнем уровне; даже если базовый файл того же имени будет существовать, поиски поймают белую тьму и сбой, установку ISWHITEOUT в componentname структуре. Белая тьма vnop используется для создания, удаления, и проверяющий, поддерживает ли каталог белую тьму (см. флаги). также поддерживайте флаг LOOKUP, использующийся, чтобы протестировать, поддерживает ли каталог белую тьму.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для лишения законной силы всех открытых дескрипторов файлов для vnode.

    Объявление

    Objective C

    struct vnop_mmap_args { struct vnodeop_desc *a_desc; vnode_t a_vp; int a_fflags; vfs_context_t a_context; };

    Поля

    vp

    vnode для отмены.

    flags

    Неиспользованный.

    ctx

    Контекст для аутентификации для отменяет запрос.

    Обсуждение

    Эта функция обычно вызывается, поскольку часть TTY отменяет, но может также использоваться на регулярных файлах. Большинство файловых систем просто использует nop_revoke (), который вызывает vn_revoke () как их отменять vnop реализацию.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Уведомьте файловую систему, что файл является mmap-редактором.

    Объявление

    Objective C

    struct vnop_mnomap_args { struct vnodeop_desc *a_desc; vnode_t a_vp; vfs_context_t a_context; };

    Поля

    vp

    vnode быть отображенным.

    flags

    Защита памяти: PROT_READ, PROT_WRITE, PROT_EXEC.

    ctx

    Контекст для аутентификации для запроса mmap.

    Обсуждение

    VNOP_MMAP является консультативным выговором, чтобы сказать, что система является mmap-лугом файл.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для преобразования номера логического блока в файловое смещение.

    Объявление

    Objective C

    struct vnop_offtoblk_args { struct vnodeop_desc *a_desc; vnode_t a_vp; off_t a_offset; daddr64_t *a_lblkno; };

    Поля

    vp

    vnode, для которого можно преобразовать логический блок в смещение.

    lblkno

    Номер логического блока для превращений в смещение.

    offset

    Место назначения для файлового смещения.

    Обсуждение

    ВНОП_БЛКТУФФ () преобразовывает логический блок в файловое смещение в байтах. То смещение может быть передано VNOP_BLOCKMAP (), тогда, получить физический номер блока - buf_strategy () делает это.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для создания специального файла.

    Объявление

    Objective C

    struct vnop_open_args { struct vnodeop_desc *a_desc; vnode_t a_vp; int a_mode; vfs_context_t a_context; };

    Поля

    dvp

    Каталог, в котором можно создать специальный файл.

    vpp

    Место назначения для недавно создаваемого vnode.

    cnp

    Информация об имени для нового файла.

    vap

    Атрибуты для нового файла, включая тип.

    ctx

    Контекст, против которого можно аутентифицировать создание узла.

    Обсуждение

    mknod vnop используют для создания файлов устройства посимвольного ввода-вывода и блочного устройства, именованный канал (FIFO) файлы, и называют сокетами. Недавно создаваемый файл должен быть возвращен с iocount, который будет отброшен вызывающей стороной. VNOP_MKNOD () вызов может снизиться без предыдущего VNOP_OPEN ().

    Доступность

    Доступный в OS X v10.6 и позже.

  • Предварительно выделите пространство для файла.

    Объявление

    Objective C

    struct vnop_pagein_args { struct vnodeop_desc *a_desc; vnode_t a_vp; upl_t a_pl; upl_offset_t a_pl_offset; off_t a_f_offset; size_t a_size; int a_flags; vfs_context_t a_context; };

    Поля

    vp

    vnode, для которого можно предварительно выделить пространство.

    length

    Желаемая предварительно выделенная длина файла.

    flags

    PREALLOCATE: предварительно выделите блоки выделения. ALLOCATECONTIG: выделите contigious площадь. ALLOCATEALL: выделите всю требуемую площадь или никакое пространство вообще. FREEREMAINDER: освободите выделенные но незаполненные блоки. ALLOCATEFROMPEOF: выделите от физического eof. ALLOCATEFROMVOL: выделите от смещения объема.

    bytesallocated

    Дополнительные байты отложены для файла. Набор к 0, если ни один не выделенный OR, если заключен файл.

    offset

    Подсказка для того, где найти свободные блоки.

    ctx

    Контекст для аутентификации для запроса выделения.

    Обсуждение

    VNOP_ALLOCATE () изменяет сумму запоминающего устройства, отложенного к файлу. Это может использоваться, чтобы или уменьшить или увеличить файл. Если файл уменьшится, то его ubc размер будет изменен соответственно, но если это растет, то ubc размер неизменен; пространство обойдено, не активно используясь файлом. VNOP_ALLOCATE () в настоящее время только вызывают как часть F_PREALLOCATE fcntl.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Вытяните данные файла в память.

    Объявление

    Objective C

    struct vnop_pageout_args { struct vnodeop_desc *a_desc; vnode_t a_vp; upl_t a_pl; upl_offset_t a_pl_offset; off_t a_f_offset; size_t a_size; int a_flags; vfs_context_t a_context; };

    Поля

    vp

    vnode, для которого можно разбить на страницы в данных.

    pl

    UPL описание страниц, бывших должных быть разбитыми на страницы в.

    pl_offset

    Смещение в UPL, в котором можно начать помещать данные.

    f_offset

    Смещение в файле данных, бывших должных быть разбитыми на страницы в.

    size

    Объем данных к странице в (в байтах).

    flags

    Флаги UPL-стиля: UPL_IOSYNC, UPL_NOCOMMIT, UPL_NORDAHEAD, UPL_VNODE_PAGER, UPL_MSYNC. Файловые системы должны обычно предоставлять кластерному уровню право обрабатывать эти флаги. Посмотрите memory_object_types.h заголовок в платформе ядра, если заинтересовано.

    ctx

    Контекст для аутентификации для запроса pagein.

    Обсуждение

    VNOP_PAGEIN () вызывают тем, когда процесс дает сбой на данных, отображенных от файла или когда madvise () упреждающая выборка требований. Это концептуально несколько подобно VNOP_READ (). Файловые системы, как обычно ожидают, вызовут cluster_pagein () для обработки работы отображения и фиксации UPL.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Высвободите внутренние файловой системой средства на vnode.

    Объявление

    Objective C

    struct vnop_pathconf_args { struct vnodeop_desc *a_desc; vnode_t a_vp; int a_name; int32_t *a_retval; vfs_context_t a_context; };

    Поля

    vp

    vnode для предъявления претензий.

    ctx

    Контекст для аутентификации для предъявления претензий.

    Обсуждение

    VNOP_RECLAIM () вызывают как часть процесса переработки vnode. Во время подпрограммы предъявления претензий файловая система должна удалить vnode из своего хеша и освободить любые ресурсы, выделенные к этому vnode. VFS гарантирует, что, когда VNOP_RECLAIM () вызывают, больше нет iocount ссылок на vnode (хотя могут все еще быть usecount ссылки - они лишены законной силы предъявлением претензий), и что ничто больше не предоставят. Это означает на практике, что не будет никакой файловой системы, обращается к vnode, предъявляемому претензии, пока предъявление претензий не закончилось, и vnode был снова использован.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для установки атрибутов vnode.

    Объявление

    Objective C

    struct vnop_read_args { struct vnodeop_desc *a_desc; vnode_t a_vp; struct uio *a_uio; int a_ioflag; vfs_context_t a_context; };

    Поля

    vp

    vnode, чьи атрибуты для установки.

    vap

    Контейнер, для которого атрибуты должны быть установлены и их требуемые значения, а также для файловой системы для возврата информации, о которой были успешно установлены атрибуты.

    ctx

    Контекст, против которого можно аутентифицировать запрос на изменение атрибута.

    Обсуждение

    Поддерживаемые атрибуты («да, Я устанавливаю этот атрибут».) установлены с VATTR_SET_SUPPORTED. С требуемыми атрибутами сверяются VATTR_IS_ACTIVE. К значениям атрибута получают доступ непосредственно через поля структуры. VNOP_SETATTR () является ядром функции KPI vnode_setattr (), который используется chmod (), chown (), усеченный (), и многие другие. VNOP_SETATTR () вызов может прибыть ни с кем предшествующим VNOP_OPEN ().

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для создания символьной ссылки.

    Объявление

    Objective C

    /* * * When VNOP_READDIR is called from the NFS Server, the nfs_data * argument is non-NULL. * * The value of nfs_eofflag should be set to TRUE if the end of * the directory was reached while reading. * * The directory seek offset (cookies) are returned to the NFS client and * may be used later to restart a directory read part way through * the directory. There is one cookie returned for each directory * entry returned and its size is determince from nfs_sizeofcookie. * The value of the cookie should be the logical offset within the * directory where the on-disc version of the appropriate directory * entry starts. Memory for the cookies is allocated from M_TEMP * and it is freed by the caller of VNOP_READDIR. * */ struct vnop_readdir_args { struct vnodeop_desc *a_desc; vnode_t a_vp; struct uio *a_uio; int a_flags; int *a_eofflag; int *a_numdirent; vfs_context_t a_context; };

    Поля

    If

    VNOP_SYMLINK () успешен, новый файл должен быть возвращен с iocount, который будет отброшен вызывающей стороной. VFS не гарантирует, что целевой путь будет иметь длину короче, чем макс. длина символьной ссылки для файловой системы.

    dvp

    Родительский каталог для нового файла символьной ссылки.

    vpp
    cnp

    Информация об имени для новой символьной ссылки.

    vap

    Атрибуты для символьной ссылки.

    target

    Путь для символьной ссылки для хранения; для «ln-s/var/vardir linktovardir», «цель» была бы «/var/vardir»

    ctx

    Контекст для аутентификации для запроса символьной ссылки.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для перечисления записей каталога.

    Объявление

    Objective C

    struct vnop_readdirattr_args { struct vnodeop_desc *a_desc; vnode_t a_vp; struct attrlist *a_alist; struct uio *a_uio; uint32_t a_maxcount; uint32_t a_options; uint32_t *a_newstate; int *a_eofflag; uint32_t *a_actualcount; vfs_context_t a_context; };

    Поля

    vp

    Каталог для перечисления.

    uio

    Целевая информация для заканчивания direntries.

    flags

    VNODE_READDIR_EXTENDED, ВНОДЕ_РИДДИР_РЕКСИКОФФ, VNODE_READDIR_SEEKOFF32: внутренние Apple флаги.

    eofflag

    Если конец каталога был достигнут, должен быть установлен в 1.

    numdirent

    Должен быть установлен в число записей, записанных в буфер.

    ctx

    Контекст для аутентификации для запроса readdir.

    Обсуждение

    VNOP_READDIR () упаковывает буфер «структурой dirent» представления записи каталога, как описано «getdirentries» страницей руководства.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте для получения атрибутов файла для многих файлов в каталоге сразу.

    Объявление

    Objective C

    struct vnop_readlink_args { struct vnodeop_desc *a_desc; vnode_t a_vp; struct uio *a_uio; vfs_context_t a_context; };

    Поля

    vp

    Каталог, в котором можно перечислить атрибуты записей.

    alist

    Какие атрибуты требуются для каждой записи каталога.

    uio

    Целевая информация для получающихся атрибутов.

    maxcount

    Максимальное количество файлов для получения атрибутов для.

    options

    FSOPT_NOFOLLOW: не идите по символьным ссылкам. FSOPT_NOINMEMUPDATE: не используйте данные, обновленные, так как inode был загружен в память.

    newstate

    «Newstate» должен быть установлен в значение, изменяющееся, если содержание изменения каталога посредством дополнения или удаления, но остается то же иначе.

    eofflag

    Если конец каталога был достигнут, должен быть установлен в 1.

    actualcount

    Должен быть установлен в число файлов, атрибуты которых были записаны в буфер.

    ctx

    Контекст для аутентификации для запроса readdirattr.

    Обсуждение

    VNOP_READDIRATTR () упаковывает буфер атрибутами файла, как будто результаты многих «getattrlist» вызывают.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Уведомьте файловую систему, что был отброшен последний usecount (персистентная ссылка) на vnode.

    Объявление

    Objective C

    struct vnop_reclaim_args { struct vnodeop_desc *a_desc; vnode_t a_vp; vfs_context_t a_context; };

    Поля

    vp

    vnode, который теперь неактивен.

    ctx

    Контекст для аутентификации для неактивного сообщения.

    Обсуждение

    VNOP_INACTVE () дает файловой системе шанс настойчиво высвободить средства assocated с vnode, возможно даже вызвать vnode_recycle (), но не предписано никакое действие; приемлемо для VNOP_INACTIVE быть не и задержать все восстановление до VNOP_RECLAIM (). Если никакая персистентная ссылка никогда не будет взята, VNOP_INACTVE () не вызовут на vnode; важным примером является статистика (), который берет iocount, считывает его данные и отбрасывания это iocount.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Создайте именованный поток, связанный с файлом.

    Объявление

    Objective C

    struct vnop_removenamedstream_args { struct vnodeop_desc *a_desc; vnode_t a_vp; vnode_t a_svp; const char *a_name; int a_flags; vfs_context_t a_context; };

    Поля

    vp

    vnode, для которого можно получить именованный поток.

    svpp

    Место назначения для указателя на vnode именованного потока.

    name

    Имя именованного потока, например, «com.apple. ResourceFork».

    flags

    В настоящее время неиспользованный.

    ctx

    Контекст для аутентификации создания назвал поток.

    Обсуждение

    Если этот вызов успешно выполняется, svpp должен быть возвращен с iocount, который отбросит вызывающая сторона. VFS предоставляет средство для моделирования именованных потоков при взаимодействии с файловыми системами, не поддерживающими их.

  • Раскритикуйте к файловой системе для создания hardlink к файлу.

    Объявление

    Objective C

    struct vnop_rename_args { struct vnodeop_desc *a_desc; vnode_t a_fdvp; vnode_t a_fvp; struct componentname *a_fcnp; vnode_t a_tdvp; vnode_t a_tvp; struct componentname *a_tcnp; vfs_context_t a_context; };

    Поля

    vp

    Файл для соединения с.

    dvp

    Каталог, в котором можно создать ссылку.

    cnp

    Информация об имени файла для новой ссылки.

    ctx

    Контекст для аутентификации для запроса на канал.

    Обсуждение

    См. «человека 2 ссылки».

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для атомного обмена данными двух файлов.

    Объявление

    Objective C

    struct vnop_revoke_args { struct vnodeop_desc *a_desc; vnode_t a_vp; int a_flags; vfs_context_t a_context; };

    Поля

    fvp

    Первый vnode.

    tvp

    Второй vnode.

    options

    Неиспользованный.

    ctx

    Контекст для аутентификации для запроса exchangedata.

    Обсуждение

    VNOP_EXCHANGE () в настоящее время только вызывает exchangedata () системным вызовом. Это будет только применено к файлам на том же объеме.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для создания каталога.

    Объявление

    Objective C

    struct vnop_rmdir_args { struct vnodeop_desc *a_desc; vnode_t a_dvp; vnode_t a_vp; struct componentname *a_cnp; vfs_context_t a_context; };

    Поля

    dvp

    Каталог, в котором можно создать новый каталог.

    vpp

    Место назначения для указателя на vnode нового каталога.

    cnp

    Информация об имени для нового каталога.

    vap

    Атрибуты для нового каталога.

    ctx

    Контекст для аутентификации для запроса mkdir.

    Обсуждение

    Недавно создаваемый каталог должен быть возвращен с iocount, который будет отброшен вызывающей стороной.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Запишите данные из отображенного файла назад к диску.

    Объявление

    Objective C

    struct vnop_searchfs_args { struct vnodeop_desc *a_desc; vnode_t a_vp; void *a_searchparams1; void *a_searchparams2; struct attrlist *a_searchattrs; uint32_t a_maxmatches; struct timeval *a_timelimit; struct attrlist *a_returnattrs; uint32_t *a_nummatches; uint32_t a_scriptcode; uint32_t a_options; struct uio *a_uio; struct searchstate *a_searchstate; vfs_context_t a_context; };

    Поля

    vp

    vnode, для которого можно разбить на страницы данные.

    pl

    UPL описание страниц должен был быть разбит на страницы. Если UPL является NULL, то это означает, что файловая система выбрала в семантику VFC_VFSVNOP_PAGEOUTV2, что означает, что это будет создавать и управлять самостоятельно UPLs в противоположность доверию тому, переданному в файловую систему. Это означает, что файловая система должна быть ответственна за N cluster_pageout требования N грязные диапазоны в UPL.

    pl_offset

    Смещение в UPL, с которого можно запустить разбивку на страницы данные. Под новой семантикой VFC_VFSVNOP_PAGEOUTV2 это - смещение в диапазоне, указанном, что это должно быть разбито на страницы, если связанная страница грязна.

    f_offset

    Смещение в файле данных, бывших должных быть разбитыми на страницы. Под новой семантикой VFC_VFSVNOP_PAGEOUTV2 это представляет смещение в файле, где мы должны начать искать грязные страницы.

    size

    Объем данных к странице (в байтах). Под VFC_VFSVNOP_PAGEOUTV2 это представляет размер диапазона, который рассмотрят. fileystem свободен расширить или уменьшить указанный диапазон для лучше адаптации, его блокирование моделируют целый, страница в 'pl_offset' включена.

    flags

    Флаги UPL-стиля: UPL_IOSYNC, UPL_NOCOMMIT, UPL_NORDAHEAD, UPL_VNODE_PAGER, UPL_MSYNC. Файловые системы должны обычно предоставлять кластерному уровню право обрабатывать эти флаги. Посмотрите memory_object_types.h заголовок в платформе ядра, если заинтересовано.

    ctx

    Контекст для аутентификации для запроса pageout.

    Обсуждение

    VNOP_PAGEOUT () вызывают, когда данные от отображенного файла должны быть сброшены к диску, любому из-за msync () вызов или вследствие давления памяти. Файловые системы, как по большей части ожидают, просто вызовут cluster_pageout (). Однако, если они выберут во флаг VFC_VFSVNOP_PAGEOUTV2, то тогда они будут ответственны за создание их собственного UPLs.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для получения атрибутов vnode.

    Объявление

    Objective C

    struct vnop_setattr_args { struct vnodeop_desc *a_desc; vnode_t a_vp; struct vnode_attr *a_vap; vfs_context_t a_context; };

    Поля

    vp

    vnode, чьи атрибуты для получения.

    vap

    Контейнер, на который требуют атрибуты, какие атрибуты поддерживаются файловой системой и значениями атрибута.

    ctx

    Контекст, против которого можно аутентифицировать запрос на атрибуты.

    Обсуждение

    Поддерживаемые атрибуты («да, Я возвращаю эту информацию») установлены с VATTR_SET_SUPPORTED. С тем, какие атрибуты требовали, сверяются VATTR_IS_ACTIVE. Атрибуты возвращаются с VATTR_RETURN. Именно через VNOP_GETATTR подпрограммы как статистика () получают свою информацию. VNOP_GETATTR () выговор может прибыть ни с кем предшествующим VNOP_OPEN ().

    Доступность

    Доступный в OS X v10.6 и позже.

  • Свяжите метку MACF с файлом.

    Объявление

    Objective C

    struct vnop_getnamedstream_args { struct vnodeop_desc *a_desc; vnode_t a_vp; vnode_t *a_svpp; const char *a_name; enum nsoperation a_operation; int a_flags; vfs_context_t a_context; };

    Поля

    vp

    vnode для маркировки.

    label

    Желаемая метка.

    ctx

    Контекст для аутентификации для изменения метки.

  • Раскритикуйте к файловой системе для получения информации о дисковом расположении области файла.

    Объявление

    Objective C

    struct vnop_strategy_args { struct vnodeop_desc *a_desc; struct buf *a_bp; };

    Поля

    vp

    vnode, для которого можно получить дисковую информацию.

    foffset

    Смещение (в байтах), в котором запускается область.

    size

    Размер области.

    bpn

    Место назначения для физического номера блока, в котором область начинается на диске.

    run

    Место назначения для числа байтов, которые могут быть сочтены непрерывно дисковыми перед первым разрывом.

    poff

    В настоящее время неиспользованный.

    flags

    VNODE_READ: запрос для чтения. VNODE_WRITE: запрос для записи.

    ctx

    Контекст для аутентификации для запроса blockmap; в настоящее время часто устанавливаемый в NULL.

    Обсуждение

    VNOP_BLOCKMAP () возвращает требуемую информацию для передачи запроса на непрерывную область вниз к подпрограмме стратегии устройства.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для удаления каталога.

    Объявление

    Objective C

    struct vnop_symlink_args { struct vnodeop_desc *a_desc; vnode_t a_dvp; vnode_t *a_vpp; struct componentname *a_cnp; struct vnode_attr *a_vap; char *a_target; vfs_context_t a_context; };

    Поля

    dvp

    Родитель каталога, который будет удален.

    vp

    Каталог для удаления.

    cnp

    Информация об имени для каталога, который будет удален.

    ctx

    Контекст для аутентификации для запроса rmdir.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Раскритикуйте к файловой системе для создания регулярного файла (VREG).

    Объявление

    Objective C

    struct vnop_whiteout_args { struct vnodeop_desc *a_desc; vnode_t a_dvp; struct componentname *a_cnp; int a_flags; vfs_context_t a_context; };

    Поля

    dvp

    Каталог, в котором можно создать файл.

    vpp

    Место назначения для vnode для недавно создаваемого файла.

    cnp

    Описание имени файла для создания.

    vap

    Свойства создания файла, как замечено в vnode_getattr (). Управляемый с VATTR_ISACTIVE, VATTR_RETURN, VATTR_SET_SUPPORTED, и т.д.

    ctx

    Контекст, против которого можно аутентифицировать создание файла.

    Обсуждение

    Если создание файла успешно выполняется, «vpp» должен быть возвращен с iocount, который будет отброшен вызывающей стороной. VNOP_CREATE () выговор может прибыть без предыдущего VNOP_OPEN ().

    Доступность

    Доступный в OS X v10.6 и позже.

Константы

Посмотрите раздел Overview выше для документации уровня заголовка.

  • Объявление

    Objective C

    extern struct vnodeop_desc vnop_getxattr_desc; extern struct vnodeop_desc vnop_listxattr_desc;

    Константы

    • vnop_getxattr_desc

      vnop_getxattr_desc

      Запишите данные из отображенного файла назад к диску.

      VNOP_PAGEOUT () вызывают, когда данные от отображенного файла должны быть сброшены к диску, любому из-за msync () вызов или вследствие давления памяти. Файловые системы, как по большей части ожидают, просто вызовут cluster_pageout (). Однако, если они выберут во флаг VFC_VFSVNOP_PAGEOUTV2, то тогда они будут ответственны за создание их собственного UPLs.

      vnode, для которого можно разбить на страницы данные.

      UPL описание страниц должен был быть разбит на страницы. Если UPL является NULL, то это означает, что файловая система выбрала в семантику VFC_VFSVNOP_PAGEOUTV2, что означает, что это будет создавать и управлять самостоятельно UPLs в противоположность доверию тому, переданному в файловую систему. Это означает, что файловая система должна быть ответственна за N cluster_pageout требования N грязные диапазоны в UPL.

      Смещение в UPL, с которого можно запустить разбивку на страницы данные. Под новой семантикой VFC_VFSVNOP_PAGEOUTV2 это - смещение в диапазоне, указанном, что это должно быть разбито на страницы, если связанная страница грязна.

      Смещение в файле данных, бывших должных быть разбитыми на страницы. Под новой семантикой VFC_VFSVNOP_PAGEOUTV2 это представляет смещение в файле, где мы должны начать искать грязные страницы.

      Объем данных к странице (в байтах). Под VFC_VFSVNOP_PAGEOUTV2 это представляет размер диапазона, который рассмотрят. fileystem свободен расширить или уменьшить указанный диапазон для лучше адаптации, его блокирование моделируют целый, страница в 'pl_offset' включена.

      Флаги UPL-стиля: UPL_IOSYNC, UPL_NOCOMMIT, UPL_NORDAHEAD, UPL_VNODE_PAGER, UPL_MSYNC. Файловые системы должны обычно предоставлять кластерному уровню право обрабатывать эти флаги. Посмотрите memory_object_types.h заголовок в платформе ядра, если заинтересовано.

      Контекст для аутентификации для запроса pageout.

      Доступный в OS X v10.4 и позже.

    • vnop_listxattr_desc

      vnop_listxattr_desc

      Удалите расширенные атрибуты файла.

      vnode, из которого можно удалить расширенные атрибуты.

      Которые приписывают для удаления.

      XATTR_NOSECURITY: обходная проверка безопасности.

      Контекст для аутентификации для атрибута удаляет запрос.

      Доступный в OS X v10.4 и позже.