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

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

Разработчик

Ссылка vnode.h

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

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

Ссылка vnode.h

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

  • <sys/appleapiopts.h>

  • <sys/cdefs.h>

  • <sys/kernel_types.h>

  • <sys/param.h>

  • <sys/signal.h>

  • <sys/vnode_if.h>

Функции

  • Добавьте (имя, vnode) запись в VFS namecache.

    Объявление

    Objective C

    void cache_enter ( vnode_t dvp, vnode_t vp, struct componentname *cnp );

    Параметры

    dvp

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

    vp

    Файл для добавления к кэшу. Не-NULL vp сохранен для быстрого доступа; NULL vp указывает, что нет такого файла в каталоге, и будущее скоростей привело поиски к сбою.

    cnp

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

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

    недействительный.

    Обсуждение

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

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Проверьте на имя файла в каталоге с помощью кэша имени VFS.

    Объявление

    Objective C

    int cache_lookup ( vnode_t dvp, vnode_t *vpp, struct componentname *cnp );

    Параметры

    dvp

    Каталог, в котором происходит поиск.

    vpp

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

    cnp

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

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

    ENOENT: файловая система ранее добавила отрицательную запись с cache_enter (), чтобы указать, что нет никакого файла имени в «разности потенциалов».-1: успешно найденный кэшируемым vnode (vpp установлен). 0: Никакими данными в кэше или работой не является КРИТ/RENAME.

    Обсуждение

    если работой cn_nameiop будет CREATE или RENAME, cache_lookup () сбросит отрицательные записи кэша и возвратится 0. Часто используемый от файловой системы во время поиска vnop. Файловую систему вызовут, к тому, если будет отрицательная запись кэша для файла, таким образом, это может быть целесообразно первоначально проверять на отрицательные записи (и возможно пышный их).

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Удалите все данные, касающиеся vnode от namecache.

    Объявление

    Objective C

    void cache_purge ( vnode_t vp );

    Параметры

    vp

    vnode для чистки.

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

    недействительный.

    Обсуждение

    Сбросит весь hardlinks к vnode, а также все дочерние элементы (должен любой существовать). Логичный для использования, когда кэшированные данные о vnode становятся недопустимыми, например в расцеплении.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Удалите все отрицательные записи кэша, которые являются дочерними элементами данного vnode.

    Объявление

    Objective C

    void cache_purge_negatives ( vnode_t vp );

    Параметры

    vp

    vnode, чьи отрицательные дочерние элементы для чистки.

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

    недействительный.

    Обсуждение

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

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Общие ссылки количества на данный файл, игнорируя «kusecount» (слушатель события, как с O_EVTONLY) ссылки.

    Объявление

    Objective C

    int vcount ( vnode_t vp );

    Параметры

    vp

    vnode, чьи ссылки для подсчета.

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

    Количество ссылок.

    Обсуждение

    Для регулярного файла просто возвратитесь (usecount-kusecount); для файлов устройств возвратите сумму по всему vnodes 'v' который ссылка что устройство (usecount (v) - kusecount (v)). Обратите внимание на то, что это - просто снимок и могло быть недопустимо к тому времени, когда вызывающая сторона проверяет результат.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Предъявите претензии в отношении vnodes, связанного с монтированием.

    Объявление

    Objective C

    int vflush ( struct mount *mp, struct vnode *skipvp, int flags );

    Параметры

    mp

    Монтирование, чей vnodes для уничтожения.

    skipvp

    Определенный vnode, чтобы не предъявить претензии или позволить прерывает добровольный сброс

    flags

    Управление, который

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

    0 для успеха, EBUSY, если vnodes были заняты и FORCECLOSE, не был установлен.

    Обсуждение

    Эта функция используется для убирания vnodes, связанного с монтированием как часть процесса размонтирования. Его параметры могут определить, какой vnodes пропустить в процессе и нужно ли в отношении используемого vnodes насильственно предъявить претензии. Файловые системы должны вызвать эту функцию от своего кода размонтирования, потому что код VFS будет всегда вызывать его с SKIPROOT | SKIPSWAP | SKIPSYSTEM; файловые системы должны заботиться о таком vnodes сами. SKIPSYSTEM пропускают отмеченный VSYSTEM vnodes FORCECLOSE, файл силы closeure WRITECLOSE только закрывают writeable файлы, SKIPSWAP пропускают отмеченный VSWAP vnodes SKIPROOT, корень пропуска vnodes отметил VROOT

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Осуждаемый

    Объявление

    Objective C

    const char * vfs_addname ( const char *name, uint32_t len, uint32_t nc_hash, uint32_t flags );

    Обсуждение

    vnode_update_identity () и vnode_create () делают vfs_addname () ненужным для kexts.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Создайте новый vfs_context_t с надлежащими сохраненными ссылками.

    Объявление

    Objective C

    vfs_context_t vfs_context_create ( vfs_context_t );

    Параметры

    ctx

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

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

    Новый контекст или NULL в случае отказа.

    Обсуждение

    Контекст должен быть выпущен с vfs_context_rele () когда больше в использовании.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Получите vfs_context для текущего потока или контекст ядра, если нет никакого контекста для текущего потока.

    Объявление

    Objective C

    vfs_context_t vfs_context_current ( void );

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

    Контекст для текущего потока или контекст ядра, если контекст потока недоступен.

    Обсуждение

    Kexts не должен использовать эту функцию - это предпочтено для использования vfs_context_create (NULL) и vfs_context_rele (), которые гарантируют надлежащий подсчет ссылок глубинных структур.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите, соответствует ли vfs_context_t 64-разрядному пользовательскому процессу.

    Объявление

    Objective C

    int vfs_context_is64bit ( vfs_context_t );

    Параметры

    ctx

    Контекст для исследования.

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

    Ненулевой, если контекст имеет 64-разрядный процесс, 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Получите битовое поле незаконченных сигналов для процесса BSD, связанного с vfs_context_t.

    Объявление

    Objective C

    int vfs_context_issignal ( vfs_context_t, sigset_t );

    Параметры

    ctx

    Контекст, чей связанный процесс для нахождения.

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

    Битовое поле незаконченных сигналов.

    Обсуждение

    Битовое поле создается с помощью sigmask () макрос, в смысле битов | = sigmask (SIGSEGV).

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Получите ID процесса процесса BSD, связанного с vfs_context_t.

    Объявление

    Objective C

    int vfs_context_pid ( vfs_context_t );

    Параметры

    ctx

    Контекст, чей связанный процесс для нахождения.

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

    ID процесса.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Получите структуру процесса BSD, связанную с vfs_context_t.

    Объявление

    Objective C

    proc_t vfs_context_proc ( vfs_context_t );

    Параметры

    ctx

    Контекст, чей связанный процесс для нахождения.

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

    Процесс при наличии, NULL иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Ссылки выпуска на компонентах контекста и освобождают его.

    Объявление

    Objective C

    int vfs_context_rele ( vfs_context_t );

    Параметры

    ctx

    Контекст для выпуска.

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

    Всегда 0.

    Обсуждение

    На контекст нельзя сослаться после того, как vfs_context_rele вызвали.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите, соответствует ли vfs_context_t суперпользователю.

    Объявление

    Objective C

    int vfs_context_suser ( vfs_context_t );

    Параметры

    ctx

    Контекст для исследования.

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

    Ненулевой, если контекст принадлежит суперпользователю, 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Свяжите учетные данные с vfs_context_t.

    Объявление

    Objective C

    kauth_cred_t vfs_context_ucred ( vfs_context_t );

    Параметры

    ctx

    Контекст, чей связанный процесс для нахождения.

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

    Процесс при наличии, NULL иначе.

    Обсуждение

    Успешно выполняется, если и только если контекст имеет поток, поток имеет задачу, и задача имеет BSD proc.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Осуждаемый

    Объявление

    Objective C

    int vfs_removename ( const char *name );

    Обсуждение

    vnode_update_identity () и vnode_create () делают vfs_addname () ненужным для kexts.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Возвращает корень vnode с iocount.

    Объявление

    Objective C

    vnode_t vfs_rootvnode ( void );

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

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

    Обсуждение

    Вызывающая сторона должна vnode_put () корневой узел, когда сделано.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Системная реализация «bwrite» vnop.

    Объявление

    Objective C

    int vn_bwrite ( struct vnop_bwrite_args *ap );

    Параметры

    ap

    Стандартные параметры к bwrite vnop.

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

    Результаты buf_bwrite непосредственно.

    Обсуждение

    Эта подпрограмма доступна для файловых систем, не хотящих реализовывать их собственный «bwrite» vnop. Это просто вызывает buf_bwrite (), не изменяя его параметры.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Значение по умолчанию vnode работа для заполнения неподдерживаемых слотов в vnode векторах работы.

    Объявление

    Objective C

    int vn_default_error ( void );

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

    ENOTSUP

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Создайте путь к vnode.

    Объявление

    Objective C

    int vn_getpath ( struct vnode *vp, char *pathbuf, int *len );

    Параметры

    vp

    vnode, чей путь для получения.

    pathbuf

    Место назначения для пути; должен иметь размер MAXPATHLEN

    len

    Место назначения для длины получающейся строки пути. Результат будет включать РАЗДЕЛИТЕЛЬ NULL в количество - т.е. «len» будет strlen (pathbuf) + 1.

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

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

    Обсуждение

    Пути к vnodes являются не всегда прямыми: файл с многократными жесткими ссылками будет иметь многократные пути, и иногда невозможно определить полный путь vnode. vn_getpath () не введет файловую систему.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Фигура, если путь соответствует пакету Mac OS X.

    Объявление

    Objective C

    int vn_path_package_check ( vnode_t vp, char *path, int pathlen, int *component );

    Параметры

    vp

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

    path

    Путь к проверке.

    pathlen

    Размер буфера пути.

    component

    Набор к индексу запуска последнего компонента контура, если путь, как находят, является пакетом. Набор к-1, если путь не является известным типом пакета.

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

    0, если некоторый параметр не был недопустим, когда возвращается EINVAL. Определите мыс пакета путем проверки того, во что *установлен компонент.

    Обсуждение

    Определяет, является ли расширение на пути известным типом расширения OS X.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Читайте из или запишите в файл.

    Объявление

    Objective C

    int vn_rdwr ( enum uio_rw , vnode_t, caddr_t, int, off_t, enum uio_seg , int, kauth_cred_t, int *, proc_t );

    Параметры

    rw

    UIO_READ для чтения, UIO_WRITE для записи.

    vp

    vnode, на котором можно выполнить I/O.

    base

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

    len

    Длина буфера.

    offset

    Смещение в файле, в котором можно запустить I/O.

    segflg

    Какой адрес «основа». См. uio_seg определение в sys/uio.h. UIO_SYSSPACE для kernelspace, UIO_USERSPACE для пространства пользователя. UIO_USERSPACE32 и UIO_USERSPACE64 в целом предпочтены, но vn_rdwr удостоверится, что это имеет корректные размеры адреса.

    ioflg

    Определенный в vnode.h, например, IO_NOAUTH, IO_NOCACHE.

    cred

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

    aresid

    Место назначения для суммы требуемого I/O, не завершенного, как с uio_resid ().

    p

    Процесс, запрашивающий I/O.

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

    0 для успеха; ошибки от файловой системы и EIO, если не выполнял все, запросили I/O, и «aresid» параметром является NULL.

    Обсуждение

    vn_rdwr () абстрагирует подробные данные построения uio и выбора vnode работы для разрешения простого файлового ввода-вывода в ядре.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Лишите законной силы все ссылки на vnode.

    Объявление

    Objective C

    int vn_revoke ( vnode_t vp, int flags, vfs_context_t );

    Параметры

    vp

    vnode для отмены.

    flags

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

    ctx

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

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

    0 всегда.

    Обсуждение

    Предъявляет претензии в отношении vnode, давая ему deadfs vnops (хотя не останавливающиеся операции, уже происходящие). Также предъявляет претензии, все исказили vnodes (важный для устройств). Люди, содержащие usecounts на vnode, например, процессах с открытым файлом, найдут, что все последующие операции, но закрытие файла перестало работать.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Отметьте vnode, как сохраненный в хеше файловой системы.

    Объявление

    Objective C

    int vnode_addfsref ( vnode_t );

    Параметры

    vp

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

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

    Всегда 0.

    Обсуждение

    Должен только быть вызван один раз на vnode, и никогда если бы это vnode создавалось с VNFS_ADDFSREF. Должен быть соответствующий вызов к vnode_removefsref (), когда в отношении vnode предъявляют претензии; VFS предполагает, что n неиспользованный vnode не будет отмечен, как ссылается файловой системой.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Учитывая vnode_attr структуру, определите, какие действия kauth-стиля должны быть авторизованы для установки тех атрибутов.

    Объявление

    Objective C

    int vnode_authattr ( vnode_t, struct vnode_attr *, kauth_action_t *, vfs_context_t );

    Параметры

    vp

    vnode, с которым можно авторизовать действие.

    vap

    Указатель на vnode_attr структуру, содержащую, желал, чтобы атрибуты установили и их значения.

    actionp

    Место назначения для набора действий для авторизации

    ctx

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

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

    0 (и результат в «actionp» для успеха. Иначе, код ошибки.

    Обсуждение

    vnode_authorize требует действий kauth-стиля; если мы хотим установить vnode_attr структуру на vnode, мы должны перевести набор атрибутов к ряду действий kauth-стиля. Эта подпрограмма возвратит ошибки, наверняка, очевидно, запрещенные или несвязные, действия.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

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

    Объявление

    Objective C

    int vnode_authattr_new ( vnode_t, struct vnode_attr *, int, vfs_context_t );

    Параметры

    dvp

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

    vap

    Указатель на vnode_attr структуру, содержащую, желал, чтобы атрибуты установили и их значения.

    noauth

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

    ctx

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

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

    KAUTH_RESULT_ALLOW для успеха, ошибка указать недопустимые или запрещенные атрибуты.

    Обсуждение

    vnode_authattr_new () заполнит значения unitialized в vnode_attr структуре со значениями по умолчанию и проверит структуру относительно текущего контекста для создания файла.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Авторизуйте действие kauth-стиля с vnode.

    Объявление

    Objective C

    int vnode_authorize ( vnode_t, vnode_t, kauth_action_t, vfs_context_t );

    Параметры

    vp

    Vnode, с которым можно авторизовать действие.

    dvp

    Родитель «vp», может быть NULL.

    action

    Действие для авторизации, например, KAUTH_VNODE_READ_DATA. См. bsd/sys/kauth.h.

    ctx

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

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

    EACCESS, если отклонено разрешение. 0, если позволяется работа. Различные ошибки от нижних уровней.

    Обсуждение

    Операции на мертвом vnodes всегда позволяются (хотя никогда ничего не делают).

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Устанавливает специфичные для файловой системы данные vnode, чтобы быть NULL.

    Объявление

    Objective C

    void vnode_clearfsnode ( vnode_t );

    Параметры

    vp

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

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

    недействительный.

    Обсуждение

    Когда vnode больше не используется, т.е. во время VNOP_RECLAIM, эту подпрограмму нужно только вызвать.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Ясные флаги, указывающие, что блочное устройство vnode было смонтировано как файловая система.

    Объявление

    Objective C

    void vnode_clearmountedon ( vnode_t );

    Параметры

    vp

    vnode для очистки флагов на, блочное устройство.

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

    недействительный.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Очистите флаг на vnode указание, что данные не должны кэшироваться в памяти (т.е. мы пишем - через в диск и всегда чтение от диска).

    Объявление

    Objective C

    void vnode_clearnocache ( vnode_t );

    Параметры

    vp

    vnode, чьи флаги для очистки.

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

    недействительный.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Очистите флаг, указывающий, что vnode нельзя читать данные теоретически в.

    Объявление

    Objective C

    void vnode_clearnoreadahead ( vnode_t );

    Параметры

    vp

    vnode, чей флаг для очистки.

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

    недействительный.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Закройте файл, как открыто с vnode_open ().

    Объявление

    Objective C

    errno_t vnode_close ( vnode_t, int, vfs_context_t );

    Параметры

    vp

    vnode для закрытия.

    flags

    Флаги для закрытия: FWASWRITTEN указывает, что файл был записан в.

    ctx

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

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

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

    Обсуждение

    vnode_close () отбрасывает refcount (персистентная ссылка) взятый в vnode_open () и раскритиковывает к файловой системе с VNOP_CLOSE. Это нужно вызвать и с iocount и с refcount на vnode и отбросит обоих.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Создайте и инициализируйте vnode.

    Объявление

    Objective C

    errno_t vnode_create ( uint32_t, uint32_t, void *, vnode_t * );

    Параметры

    flavor

    Должен быть VNCREATE_FLAVOR.

    size

    Размер структуры vnode_fsparam в «данных».

    data

    Указатель на структуру vnode_fsparam содержащий информацию об инициализации.

    vpp

    Указатель на vnode указатель, чтобы быть заполненным в недавно создаваемым vnode.

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

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

    Обсуждение

    Возвраты wth iocount держались vnode, который должен в конечном счете быть отброшен с vnode_put ().

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

    Objective C

    #include <vnode.h>;

    Доступность

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

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

    Объявление

    Objective C

    void * vnode_fsnode ( vnode_t );

    Параметры

    vp

    vnode, чьи данные для захвата.

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

    Специфичные для файловой системы данные, непосредственно.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Увеличьте iocount на vnode.

    Объявление

    Objective C

    int vnode_get ( vnode_t );

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

    0 для успеха, ENOENT, если vnode мертв и без существующей io-ссылки.

    Обсуждение

    Если vnode_get () успешно выполняется, получающаяся io-ссылка должна быть отброшена с vnode_put (). Эта функция успешно выполняется, если vnode рассматриваемое не мертво, или в процессе умирающего AND текущий iocount является нулем. Это означает, что может блокировать продолжающееся предъявление претензий, блокирующееся позади некоторого другого iocount.

    На успехе vnode_get () возвраты с iocount держались vnode; этот тип ссылки предназначается, чтобы быть сохраненным только в течение коротких промежутков времени (например, через вызов функции) и предоставляет сильную гарантию о жизни vnode; vnodes с положительным iocounts не может быть переработан, и iocount требуется для любой работы на vnode. Однако vnode_get () не предоставляет гарантий об идентификационных данных vnode, к этому обращаются; если нет известный существующий iocount на vnode во время, вызов выполняется, это могло быть переработано и отложено в использовании, прежде чем vnode_get () успешно выполнится, таким образом, вызывающая сторона может ссылаться на абсолютно различный vnode, чем было предназначено. vnode_getwithref () и vnode_getwithvid () предоставляют гарантии о vnode идентификационных данных.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Получите атрибуты vnode.

    Объявление

    Objective C

    int vnode_getattr ( vnode_t vp, struct vnode_attr *vap, vfs_context_t ctx );

    Параметры

    vp

    vnode, чьи атрибуты для захвата.

    vap

    Структура, содержащая: 1) список требуемых атрибутов 2) Располагает с интервалами для указания, какие атрибуты поддерживаются и возвращаемый 3) Пространство для возврата атрибутов.

    ctx

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

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

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

    Обсуждение

    Желаемые атрибуты установлены с VATTR_SET_ACTIVE и VNODE_ATTR* макросы. Поддерживаемые атрибуты определяются после вызова с VATTR_IS_SUPPORTED.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Получите имя vnode от VFS namecache.

    Объявление

    Objective C

    const char * vnode_getname ( vnode_t vp );

    Параметры

    vp

    vnode, чье имя для захвата.

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

    Имя или NULL, если недоступный.

    Обсуждение

    Не все vnodes имеют имена, и имена vnode могут измениться (особенно, hardlinks). Используйте эту подпрограмму на ваш собственный риск. Строка возвращается с refcount, постепенно увеличенным в кэше; вызывающие стороны должны вызвать vnode_putname () для выпуска той ссылки.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Получите iocount на родителе vnode.

    Объявление

    Objective C

    vnode_t vnode_getparent ( vnode_t vp );

    Параметры

    vp

    vnode, чей родитель для захвата.

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

    Родитель при наличии, еще NULL.

    Обсуждение

    Родитель vnode может изменяться в течение долгого времени или быть предъявлен претензии, таким образом, vnode_getparent () может возвратить различные результаты в разное время (например, многократный-hardlink файл). Родитель возвращается с iocount, который должен впоследствии быть отброшен с vnode_put ().

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Увеличьте iocount на vnode, на котором сохранен usecount (персистентная ссылка).

    Объявление

    Objective C

    int vnode_getwithref ( vnode_t );

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

    0 для успеха, ENOENT, если vnode мертв, в процессе того, чтобы быть предъявленным претензии, или был переработан и снова использован.

    Обсуждение

    Если vnode_getwithref () успешно выполняется, получающаяся io-ссылка должна быть отброшена с vnode_put (). vnode_getwithref () успешно выполнится на мертвом vnodes; это должно перестать работать с ENOENT на vnodes, которые находятся в процессе того, чтобы быть предъявленным претензии. Поскольку это только вызывают с usecount на vnode, вызывающей стороне гарантируют это, vnode не был снова использован для различного файла, хотя это может теперь быть мертво и иметь deadfs vnops (которые возвращают ошибки как EIO, ENXIO, ENOTDIR). На успехе vnode_getwithref () возвраты с iocount держались vnode; этот тип ссылки предназначается, чтобы быть сохраненным только в течение коротких промежутков времени (например, через вызов функции) и предоставляет сильную гарантию о жизни vnode. vnodes с положительным iocounts, не может быть переработан. iocount требуется для любой работы на vnode.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Увеличьте iocount на vnode, проверив, что vnode жив и не изменил vid (т.е. был переработан),

    Объявление

    Objective C

    int vnode_getwithvid ( vnode_t, uint32_t );

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

    0 для успеха, ENOENT, если vnode мертв, в процессе того, чтобы быть предъявленным претензии, или был переработан и снова использован.

    Обсуждение

    Если vnode_getwithvid () успешно выполняется, получающаяся io-ссылка должна быть отброшена с vnode_put (). Эта функция успешно выполняется, если vnode рассматриваемое не мертво, в процессе смерти, или было переработано (и дано различный vnode ID). Намеченное использование состоит в том, что vnode сохранен и его vid (vnode_vid (vp)) зарегистрированный, в то время как iocount сохранен (пример: хеш файловой системы). iocount тогда отбрасывается, и передачи времени (возможно, блокировки отбрасываются и взяли назад). Впоследствии, vnode_getwithvid () вызывается для получения iocount, но мы предупреждены, если был переработан vnode.

    На успехе vnode_getwithvid () возвраты с iocount держались vnode; этот тип ссылки предназначается, чтобы быть сохраненным только в течение коротких промежутков времени (например, через вызов функции) и предоставляет сильную гарантию о жизни vnode. vnodes с положительным iocounts, не может быть переработан. iocount требуется для любой работы на vnode.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Проверьте, имеет ли vnode чистые буферы, связанные с ним.

    Объявление

    Objective C

    int vnode_hascleanblks ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если существуют чистые блоки, 0 иначе.

    Обсуждение

    Обратите внимание на то, что эта подпрограмма не синхронизируется; это - только снимок, и его результат может прекратить быть истиной в данный момент, это возвращается..

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

    Objective C

    #include <vnode.h>;

    Доступность

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

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

    Объявление

    Objective C

    int vnode_hasdirtyblks ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если существуют грязные блоки, 0 иначе

    Обсуждение

    Обратите внимание на то, что эта подпрограмма не синхронизируется; это - только снимок, и его результат может прекратить быть истиной в данный момент, это возвращается..

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

    Objective C

    #include <vnode.h>;

    Доступность

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

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

    Объявление

    Objective C

    int vnode_isblk ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode имеет тип VBLK, 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите, является ли vnode устройством посимвольного ввода-вывода специальный файл.

    Объявление

    Objective C

    int vnode_ischr ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode имеет тип VCHR, 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите, является ли vnode каталогом.

    Объявление

    Objective C

    int vnode_isdir ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode имеет тип VDIR, 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите, является ли vnode именованным каналом.

    Объявление

    Objective C

    int vnode_isfifo ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode имеет тип VFIFO, 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите, больше ли число персистентных (usecount) ссылок на vnode, чем данное количество.

    Объявление

    Objective C

    int vnode_isinuse ( vnode_t, int );

    Параметры

    vp

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

    refcnt

    Порог для того, чтобы сказать, что используется vnode.

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

    недействительный.

    Обсуждение

    vnode_isinuse () сравнивает usecount vnode (соответствующий vnode_ref () вызовы) к его refcnt параметру (число ссылок, вызывающая сторона ожидает быть на vnode). Обратите внимание на то, что ссылки «kusecount», соответствуя сторонам, заинтересованным только уведомлениями о событии, например, открытым (..., O_EVTONLY), не считаются к общему количеству; сравнение (usecount - kusecount> recnt). Также важно отметить, что результатом является только снимок; usecounts может измениться с момента до момента, и результат vnode_isinuse больше может не быть корректным самый момент, что вызывающая сторона получает его.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите, является ли vnode символьной ссылкой.

    Объявление

    Objective C

    int vnode_islnk ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode имеет тип VLNK, 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите, существует ли в настоящее время появление монтирования, которое покроет этот vnode.

    Объявление

    Objective C

    int vnode_ismount ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если существует происходящее монтирование, 0 иначе.

    Обсуждение

    Обратите внимание на то, что это - только снимок; монтирование может начаться или закончиться в любое время.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

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

    Объявление

    Objective C

    int vnode_ismountedon ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode является блочным устройством, на котором файловая система смонтирована, 0 иначе.

    Обсуждение

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

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите, является ли vnode именованным потоком.

    Объявление

    Objective C

    int vnode_isnamedstream ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode является именованным потоком, 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Проверьте, установлен ли vnode не кэшировать свои данные в памяти (т.е. мы пишем - через в диск и всегда чтение от диска).

    Объявление

    Objective C

    int vnode_isnocache ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode установлен не иметь данные chached, 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Проверьте, установлен ли vnode не считать данные теоретически в в надежде на будущие удачные обращения в кэш.

    Объявление

    Objective C

    int vnode_isnoreadahead ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если readahead отключен, 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Проверьте, отмечен ли vnode для быстрого старения

    Объявление

    Objective C

    int vnode_israge ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode отмечен для быстрого старения, 0 иначе

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Проверьте, мертв ли vnode или в процессе того, чтобы быть уничтоженным (переработанный).

    Объявление

    Objective C

    int vnode_isrecycled ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode мертв или быть переработанным, 0 иначе.

    Обсуждение

    Это - только снимок: vnode может начать перерабатываться или перейти от мертвых в в использовании в любое время.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите, является ли vnode регулярным файлом.

    Объявление

    Objective C

    int vnode_isreg ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode имеет тип VREG, 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

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

    Объявление

    Objective C

    int vnode_isswap ( vnode_t vp );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode используется в качестве подкачки, 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите, отмечен ли vnode как Система vnode.

    Объявление

    Objective C

    int vnode_issystem ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode является системой vnode, 0, если это не.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

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

    Объявление

    Objective C

    int vnode_isvroot ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode является корнем, 0, если это не.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Выполните работу на (почти) всем vnodes от данной точки монтирования.

    Объявление

    Objective C

    int vnode_iterate ( struct mount *, int, int (*)(struct vnode *, void *), void * );

    Параметры

    mp

    Смонтируйтесь чей vnodes для работы на.

    flags

    VNODE_RELOAD отмечают неактивный vnodes для, перерабатывают. VNODE_WAIT VNODE_WRITEABLE Только исследуют vnodes с происходящими записями. VNODE_WITHID Никакой эффект. VNODE_NOLOCK_INTERNAL Никакой эффект. VNODE_NODEAD Никакой эффект. VNODE_NOSUSPEND Никакой эффект. VNODE_ITERATE_ALL Никакой эффект. VNODE_ITERATE_ACTIVE Никакой эффект. VNODE_ITERATE_INACTIVE Никакой эффект.

    callout

    Функция для обращения к каждому vnode.

    arg

    Параметр, который будет передан выноске вместе с каждым vnode.

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

    Нуль для успеха, еще код ошибки. Если не будет никаких vnodes, сцепленных в монтирование, возвратится 0 сразу.

    Обсуждение

    Пропуски vnodes, которые мертвы, в процессе предъявления претензий, приостановленного, или типа VNON.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Преобразуйте путь в vnode.

    Объявление

    Objective C

    errno_t vnode_lookup ( const char *, int, vnode_t *, vfs_context_t );

    Параметры

    path

    Путь для поиска.

    flags

    VNODE_LOOKUP_NOFOLLOW: не идите по символьным ссылкам. VNODE_LOOKUP_NOCROSSMOUNT: не пересекайте точки монтирования.

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

    Результаты 0 для успеха или кода ошибки.

    Обсуждение

    Эта подпрограмма является тонкой оберткой вокруг xnu-внутренних подпрограмм поиска; в случае успеха, это возвращается с iocount, держался получающийся vnode, который должен быть отброшен с vnode_put ().

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Получите структуру монтирования для файловой системы, которой принадлежит vnode.

    Объявление

    Objective C

    mount_t vnode_mount ( vnode_t );

    Параметры

    vp

    vnode, чей монтируются для захвата.

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

    Монтирование, непосредственно.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Возвращает указатель на монтирование, помещенное поверх vnode, должен это существовать.

    Объявление

    Objective C

    mount_t vnode_mountedhere ( vnode_t vp );

    Параметры

    vp

    vnode, от кого взять покрытие, монтируются.

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

    Указатель для монтирования покрытия vnode или NULL, если ни один не существует.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Проверьте, нужны ли vnode события снимков (независимо от его ctime состояния)

    Объявление

    Objective C

    int vnode_needssnapshots ( vnode_t );

    Параметры

    vp

    vnode для тестирования.

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

    Ненулевой, если vnode нужны события снимка, 0 иначе

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Откройтесь файл, идентифицированный путем - грубо говорят в ядре, открывают (2).

    Объявление

    Objective C

    errno_t vnode_open ( const char *, int, int, int, vnode_t *, vfs_context_t );

    Параметры

    path

    Путь для поиска.

    fmode

    например, O_NONBLOCK, O_APPEND; см. bsd/sys/fcntl.h.

    cmode

    Полномочия, с которыми можно создать файл, если он не существует.

    flags

    То же как vnode_lookup ().

    vpp

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

    ctx

    Контекст, с которым можно авторизовать открытый / создание.

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

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

    Обсуждение

    Если vnode_open () успешно выполняется, он возвращается и с iocount и с usecount на возвращенном vnode. Они должны быть выпущены в конечном счете; iocount должен быть выпущен с vnode_put (), как только любые начальные операции на vnode закончены, тогда как usecount должен быть выпущен через vnode_close ().

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Постепенно уменьшите iocount на vnode.

    Объявление

    Objective C

    int vnode_put ( vnode_t );

    Параметры

    vp

    vnode, чей iocount для отбрасывания.

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

    Всегда 0.

    Обсуждение

    vnode_put () вызывают, чтобы указать, что vnode больше не находится в активном использовании. Это удаляет гарантию, что не будет переработан vnode. Эта подпрограмма должна использоваться для выпуска io ссылок независимо от того, как они были получены.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Выпустите ссылку на имени от кэша VFS.

    Объявление

    Objective C

    void vnode_putname ( const char *name );

    Параметры

    name

    Строка для выпуска.

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

    недействительный.

    Обсуждение

    Должен быть вызван на строке, полученной с vnode_getname ().

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Заставьте vnode быть предъявленным претензии и подготовленным к повторному использованию.

    Объявление

    Objective C

    int vnode_recycle ( vnode_t );

    Параметры

    vp

    vnode для переработки.

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

    1, если в отношении vnode предъявили претензии (т.е. не было никаких существующих ссылок), 0, если он был только отмечен для будущего предъявления претензий.

    Обсуждение

    Как весь vnode KPIs, должен быть вызван с iocount на цели vnode. когда все существующие ссылки будут отброшены, vnode_recycle () отметит это vnode для предъявления претензий.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Постепенно увеличьте usecount на vnode.

    Объявление

    Objective C

    int vnode_ref ( vnode_t );

    Параметры

    vp

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

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

    0 для успеха; ENOENT, если vnode мертв или в процессе того чего перераб AND вызывающий поток, не является vnode владельцем.

    Обсуждение

    Если vnode_ref () успешно выполняется, получающийся usecount должен быть выпущен с vnode_rele (). vnode_ref () вызывают для получения персистентной ссылки на vnode. Этот тип ссылки не предоставляет ту же сильную гарантию, которую сохранит vnode, как делает iocount - это просто гарантирует, что vnode не будет снова использован для представления различного файла. Однако usecount может быть сохранен в течение длительных периодов времени, тогда как iocount предназначается, чтобы быть полученным и выпущенным быстро как часть выполнения vnode работы. Держатель usecount должен вызвать vnode_getwithref ()/vnode_put () для выполнения любых операций на этом vnode.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Постепенно уменьшите usecount на vnode.

    Объявление

    Objective C

    void vnode_rele ( vnode_t );

    Параметры

    vp

    vnode, чей usecount для отбрасывания.

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

    недействительный.

    Обсуждение

    vnode_rele () вызывают к relese персистентной ссылкой на vnode. Выпуск последнего usecount открывает дверь для vnode, который будет снова использован как новый файл; это также инициировало вызов VNOP_INACTIVE к файловой системе, хотя это сразу не произойдет, если будут выдающиеся iocount ссылки.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Отметьте vnode как больше не сохраненный в хеше файловой системы.

    Объявление

    Objective C

    int vnode_removefsref ( vnode_t );

    Параметры

    vp

    vnode для снятия выделения.

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

    Всегда 0.

    Обсуждение

    Должен только быть вызван один раз на vnode (во время предъявления претензий), и только после того, как vnode был или создан с VNFS_ADDFSREF или отмечен vnode_addfsref ().

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Набор vnode атрибуты.

    Объявление

    Objective C

    int vnode_setattr ( vnode_t vp, struct vnode_attr *vap, vfs_context_t ctx );

    Параметры

    vp

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

    vap

    Структура, содержащая: 1) список атрибутов для установки 2) Пространства для значений для тех атрибутов 3) Пространство для указания, какие атрибуты были установлены.

    ctx

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

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

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

    Обсуждение

    Атрибуты для установки отмечены с VATTR_SET_ACTIVE и VNODE_ATTR* макросы. Атрибуты успешно набор определяются после вызова с VATTR_IS_SUPPORTED.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Набор отмечает указание, что блочное устройство vnode было смонтировано как файловая система.

    Объявление

    Objective C

    void vnode_setmountedon ( vnode_t );

    Параметры

    vp

    vnode для установки флагов на, блочное устройство.

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

    недействительный.

    Обсуждение

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

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

    Objective C

    #include <vnode.h>;

    Доступность

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

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

    Объявление

    Objective C

    void vnode_setmultipath ( vnode_t vp );

    Параметры

    vp

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

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

    недействительный.

    Обсуждение

    «Многопутевой» vnodes может быть достигнут посредством больше чем одной записи в файловой системе, и так должен быть обработан по-другому в целях уведомления о событии и кэшировании. Файловая система должна отметить vnode с многократным hardlinks этот путь.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Установите vnode для не кэширования его данных в памяти (т.е. мы пишем - через в диск и всегда чтение от диска).

    Объявление

    Objective C

    void vnode_setnocache ( vnode_t );

    Параметры

    vp

    vnode, чьи флаги для установки.

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

    недействительный.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Установите vnode, чтобы не считать данные теоретически в в надежде на удар в кэше.

    Объявление

    Objective C

    void vnode_setnoreadahead ( vnode_t );

    Параметры

    vp

    vnode, на котором можно предотвратить readahead.

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

    недействительный.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Установите vnode специфичный для файловой системы «тег».

    Объявление

    Objective C

    void vnode_settag ( vnode_t, int );

    Параметры

    vp

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

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

    недействительный.

    Обсуждение

    Устанавливает тег, указывающий, какая файловая система vnode принадлежит, например, VT_HFS, VT_UDF, VT_ZFS. Ядро никогда не проверяет эти данные, хотя теги файловой системы определяются в vnode.h; это в пользу пользовательских программ через getattrlist.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Возвратите ID устройства устройства, связанного со специальным файлом.

    Объявление

    Objective C

    dev_t vnode_specrdev ( vnode_t );

    Параметры

    vp

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

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

    ID устройства.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Постепенно увеличьте количество незаконченных записей на vnode.

    Объявление

    Objective C

    void vnode_startwrite( vnode_t);

    Параметры

    vp

    vnode, чье количество для постепенного увеличения.

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

    недействительный.

  • Постепенно уменьшите количество незаконченных записей на vnode.

    Объявление

    Objective C

    void vnode_writedone( vnode_t);

    Параметры

    vp

    vnode, чье количество для постепенного уменьшения.

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

    недействительный.

    Обсуждение

    Также будит потоки, ожидающие количества записи для отбрасывания, как в vnode_waitforwrites.

  • Получите vnode специфичный для файловой системы «тег».

    Объявление

    Objective C

    int vnode_tag ( vnode_t );

    Параметры

    vp

    vnode, чей тег для захвата.

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

    Тег.

    Обсуждение

    Получает тег, указывающий, какая файловая система vnode принадлежит, например, VT_HFS, VT_UDF, VT_ZFS. Ядро никогда не проверяет эти данные, хотя теги файловой системы определяются в vnode.h; это в пользу пользовательских программ через getattrlist.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Уберите кэшируемые учетные данные на vnode.

    Объявление

    Objective C

    void vnode_uncache_credentials ( vnode_t vp );

    Параметры

    vp

    vnode, чей кэш для очистки.

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

    недействительный.

    Обсуждение

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

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Обновите vnode данные, связанные с vfs кэшем.

    Объявление

    Objective C

    void vnode_update_identity ( vnode_t vp, vnode_t dvp, const char *name, int name_len, uint32_t name_hashval, int flags );

    Параметры

    vp

    vnode, чья информация для обновления.

    dvp

    Родитель для установки на vnode, если используется VNODE_UPDATE_PARENT.

    name

    Имя для установки в кэше для vnode, если используется VNODE_UPDATE_NAME. Буфер передал в, может быть впоследствии освобожден, поскольку кэш делает свое хранение собственного имени. Строка должна быть ЗАВЕРШЕНА NULL, если не указаны длина и значение хэш-функции.

    name_len

    Длина имени, если известный. Передача 0 причин кэш для определения самой длины.

    name_hashval

    Значение хэш-функции имени, если известный. Передача 0 причин кэш для хеширования самого имени.

    flags

    VNODE_UPDATE_PARENT: родитель набора. VNODE_UPDATE_NAME: определите имя. VNODE_UPDATE_CACHE: записи кэша сброса для жестких ссылок связались с этим файлом. VNODE_UPDATE_PURGE: записи кэша сброса для жестких ссылок и дочерних элементов этого файла.

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

    недействительный.

    Обсуждение

    vfs namecache является центральным к отслеживанию данных vnode-идентификации и к располагающимся файлам в системе. vnode_update_identity () используется для обновления vnode данных, связанных с кэшем. Это может установить родителя и/или имя vnode (также потенциально установленный vnode_create ()) или сбрасывать данные кэша.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите, отмечена ли файловая система, которой принадлежит vnode, как готовая взаимодействовать с 64-разрядными пользовательскими процессами.

    Объявление

    Objective C

    int vnode_vfs64bitready ( vnode_t );

    Параметры

    vp

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

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

    Ненулевой, если файловая система отмечена готовая к 64-разрядным взаимодействиям; 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите, смонтирована ли файловая система, которой принадлежит vnode, только для чтения.

    Объявление

    Objective C

    int vnode_vfsisrdonly ( vnode_t );

    Параметры

    vp

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

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

    Ненулевой, если файловая система только для чтения, 0 иначе.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Определите максимальную длину символьной ссылки для файловой системы, в которой находится vnode.

    Объявление

    Objective C

    uint32_t vnode_vfsmaxsymlen ( vnode_t );

    Параметры

    vp

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

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

    Макс. длина символьной ссылки.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Получите имя файловой системы, которой принадлежит vnode.

    Объявление

    Objective C

    void vnode_vfsname ( vnode_t, char * );

    Параметры

    vp

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

    buf

    Место назначения для имени vfs: должен иметь размер MFSNAMELEN или больше.

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

    Имя fileystem, которому принадлежит vnode.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Получите «число типа» файловой системы, которой принадлежит vnode.

    Объявление

    Objective C

    int vnode_vfstypenum ( vnode_t );

    Параметры

    vp

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

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

    Число типа fileystem, которому принадлежит vnode.

    Обсуждение

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

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Возвратите vid vnode (число генерации), который является постоянным от создания до предъявления претензий.

    Объявление

    Objective C

    uint32_t vnode_vid ( vnode_t );

    Параметры

    vp

    vnode, чей vid для захвата.

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

    vid vnode.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Возвратите тип vnode.

    Объявление

    Objective C

    enum vtype vnode_vtype ( vnode_t );

    Параметры

    vp

    vnode, чей тип для захвата.

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

    Тип vnode.

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Ожидайте числа незаконченных записей на vnode для падения ниже цели.

    Объявление

    Objective C

    int vnode_waitforwrites ( vnode_t, int, int, int, const char * );

    Параметры

    vp

    vnode для контроля.

    output_target

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

    slpflag

    Флаги для msleep ().

    slptimeout

    Частота, с которой можно вызвать проверку на завершение; инкременты 10 мс.

    msg

    Строка для передачи msleep ().

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

    0 для успеха или ошибки оценивают от msleep ().

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

    Objective C

    #include <vnode.h>;

    Доступность

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

  • Постепенно уменьшите количество незаконченных записей на vnode.

    Объявление

    Objective C

    void vnode_writedone ( vnode_t );

    Параметры

    vp

    vnode, чье количество для постепенного уменьшения.

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

    недействительный.

    Обсуждение

    Также будит потоки, ожидающие количества записи для отбрасывания, как в vnode_waitforwrites.

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

    Objective C

    #include <vnode.h>;

    Доступность

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