Ссылка 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 и позже.
-