协议
AdvisoryLocking
在 fuchsia.io/locking.fidl 中定义
Advisory Locking Protocol。
此协议旨在组成 |File|协议 为建议锁定提供支持。
建议锁定只是建议性锁定。它们不会阻止实际读取或 对文件执行的写入操作,无论是通过 还是通过其他连接进行连接。
这些基元旨在支持 flock() 和 fcntl(), 具体来说是 F_SETLK、F_SETLKW 和 F_GETLK, 在 Fuchsia 上运行的应用对其他操作系统有一定的预期。
AdvisoryLock
获取底层文件的咨询锁。
锁定状态将持续到此连接关闭或 此方法是通过 |AdvisoryLockType.UNLOCK| 调用的解锁 。
建议锁定只是建议性锁定。它们不会阻止实际读取或 对文件执行的写入操作,无论是通过 还是通过其他连接进行连接。
此方法需要以下权限:
- Rights.READ_BYTES(如果
request.type
为 AdvisoryLockType.READ)。 - Rights.WRITE_BYTES(如果
request.type
为) AdvisoryLockType.WRITE。
错误
ZX_ERR_BAD_STATE
无法获取指定的锁定类型。对于 例如,另一个连接持有的锁类型可能存在冲突。ZX_ERR_NOT_SUPPORTED
此文件不支持建议锁定。ZX_ERR_ACCESS_DENIED
此连接权限不足 来获取指定类型的锁。
请求
名称 | 类型 |
---|---|
request |
AdvisoryLockRequest
|
响应
名称 | 类型 |
---|---|
payload |
AdvisoryLocking_AdvisoryLock_Result
|
目录
在 fuchsia.io/directory.fidl 中定义
AdvisoryLock
获取底层文件的咨询锁。
锁定状态将持续到此连接关闭或 此方法是通过 |AdvisoryLockType.UNLOCK| 调用的解锁 。
建议锁定只是建议性锁定。它们不会阻止实际读取或 对文件执行的写入操作,无论是通过 还是通过其他连接进行连接。
此方法需要以下权限:
- Rights.READ_BYTES(如果
request.type
为 AdvisoryLockType.READ)。 - Rights.WRITE_BYTES(如果
request.type
为) AdvisoryLockType.WRITE。
错误
ZX_ERR_BAD_STATE
无法获取指定的锁定类型。对于 例如,另一个连接持有的锁类型可能存在冲突。ZX_ERR_NOT_SUPPORTED
此文件不支持建议锁定。ZX_ERR_ACCESS_DENIED
此连接权限不足 来获取指定类型的锁。
请求
名称 | 类型 |
---|---|
request |
AdvisoryLockRequest
|
响应
名称 | 类型 |
---|---|
payload |
AdvisoryLocking_AdvisoryLock_Result
|
克隆
创建与同一远程对象的另一个连接。
flags
可以是以下任何一项:
OpenFlags.RIGHT_*
OpenFlags.APPEND
OpenFlags.DESCRIBE
OpenFlags.CLONE_SAME_RIGHTS
所有其他标记均会被忽略。
flags
中的 OpenFlags.RIGHT_*
位会请求对所得结果的相应权限
克隆对象。
克隆对象拥有的权限必须不高于原始对象,否则
返回 ZX_ERR_ACCESS_DENIED
。
或者,您也可以传递 OpenFlags.CLONE_SAME_RIGHTS
以继承来源连接的权限。
将任何 OpenFlags.RIGHT_*
标志与
OpenFlags.CLONE_SAME_RIGHTS
。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
object |
server_end<Node>
|
关闭
终止连接。
调用 Close
后,客户端不得发送任何其他请求。
服务器在发送状态响应后,应关闭连接 无论状态如何,都不会发送摘要。
关闭通道的客户端应该在语义上等效
调用 Close
,但不知道关闭何时完成或其
状态。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
fuchsia.unknown/Closeable_Close_Result
|
CreateSymlink
创建一个符号链接。
name
是要为所创建的符号链接指定的名称。
target
是符号链接的目标,它在服务器上没有意义。服务器
除了服务器选择的最大长度之外,不会对 target
执行任何验证。
connection
是通道的可选服务器端,它将使用 Symlink 协议
成功创建的节点上。
-
如果
name
已存在,则会发生ZX_ERR_ALREADY_EXISTS
错误。 -
如果
target
超过符号链接的服务器长度限制,则会发生ZX_ERR_BAD_PATH
错误。 -
如果
name
不是有效的名称,则会显示错误ZX_ERR_INVALID_ARGS
。 -
如果服务器不支持创建符号链接,则会发生
ZX_ERR_NOT_SUPPORTED
错误。
请求
名称 | 类型 |
---|---|
name |
Name
|
target |
SymlinkTarget
|
connection |
server_end<Symlink>?
|
响应
名称 | 类型 |
---|---|
payload |
Directory2_CreateSymlink_Result
|
GetAttr
获取节点相关信息。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
attributes |
NodeAttributes
|
GetAttributes
获取节点相关信息。
节点的属性应该是稳定的, 访问它所使用的特定协议。
如果某个属性不适用或不受支持, 文件系统应保留相应的字段。
query
:用于指定要提取的属性的位掩码。服务器 不应返回超出必要数量的值。
attributes
:返回的属性。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
query |
NodeAttributesQuery
|
响应
名称 | 类型 |
---|---|
payload |
Node2_GetAttributes_Result
|
GetConnectionInfo
获取关于连接的信息。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
ConnectionInfo
|
GetExtendedAttribute
获取与此节点的指定属性 name
相关联的值。
属性名称的长度上限为 MAX_ATTRIBUTE_NAME。否 特定的结构。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
响应
名称 | 类型 |
---|---|
payload |
Node2_GetExtendedAttribute_Result
|
GetFlags
获取 Directory.Open
权限和用于访问此文件的标志。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
flags |
OpenFlags
|
GetToken
获取目录的令牌,此令牌可用于日后识别对目录的访问 。只要连接请求令牌,该令牌就会一直有效 保持打开状态。
此方法需要以下权限:OpenFlags.RIGHT_WRITABLE
,否则返回
ZX_ERR_BAD_HANDLE
。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
token |
handle<handle>?
|
链接
在用 dst 表示的目录内创建指向名为 src 的对象的链接 令牌。
src
必须是已解析对象名称。包含“/”会
返回 ZX_ERR_INVALID_ARGS
。
dst
必须是已解析对象名称。包含“/”会
返回 ZX_ERR_INVALID_ARGS
。
使用此方法需要以下权限:OpenFlags.RIGHT_WRITABLE
和
OpenFlags.RIGHT_READABLE
,否则返回 ZX_ERR_BAD_HANDLE
。
如果同时重命名或解除关联来源,这将会是原子性的,例如如果 有两个执行者同时操作,其中一个执行者执行了重命名操作,这会影响 另一个是此目录下的来源,而另一个则添加了链接, 以原子方式按未指定的顺序执行操作。
请求
名称 | 类型 |
---|---|
src |
string[255]
|
dst_parent_token |
handle<handle>
|
dst |
string[255]
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
ListExtendedAttributes
针对关联的所有扩展属性名称创建迭代器 具有此节点。如果出现错误,则会在 迭代器请求渠道,然后该渠道就会关闭。
GetExtendedAttributes 可与上述任意名称搭配使用,以检索 关联的值。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
iterator |
server_end<ExtendedAttributeIterator>
|
OnOpen
FIDL 服务器根据 OpenFlags.DESCRIBE
请求即时生成的事件。
指示打开操作成功或失败,并且可以选择性地描述
对象。如果状态为 ZX_OK
,则 info
包含对象的描述性信息
(与 Describe
将返回的内容相同)。
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
info |
NodeInfoDeprecated?
|
OnRepresentation
服务器根据以下请求立即生成的事件: NodeFlags.GET_REPRESENTATION。此活动将是第一条消息 并且只发送一次。
有效变体对应于以下某个受支持的协议: 该节点表示连接时间 协商。提供辅助句柄(如果适用)。
如果客户端在更新期间在 protocols
中指定了多个协议,
Directory.Open 时,Representation 还包含
通过其标记确认连接时间协商的结果。
这些元素与 NodeProtocolKinds 的支持。
这是 fuchsia.unknown/Queryable.Query +
Describe
方法。它以
以避免出现额外的往返行程
响应
名称 | 类型 |
---|---|
payload |
Representation
|
打开
打开相对于此目录对象的新对象。
“path
”可以包含多个以“/”分隔的细分字符,且不得
empty;即 ""路径无效。结尾的斜杠表示 OpenFlags.DIRECTORY。组件
不得为空(即“foo//bar”无效)。“..”路径的任何位置都不允许使用。“.”
只有在路径为“.”时才允许,否则不允许使用。以“/”开头允许(并且
与不存在时的处理方式相同,即“/foo/bar”和“foo/bar”相同)。
如果发送的标志未知值,则连接应关闭。
flags
中提供的 OpenFlags.RIGHT_*
个标记将限制
object
频道,它将与打开的实体相关联。
权限从未增加。在目录中打开嵌套实体时,您可能只有
请求的权限与目录连接已拥有的权限相同,或仅请求部分权限。
用户超出这些权限后,系统会在
OnOpen
事件(如果适用),并且 object
连接已关闭。
系统会忽略 mode
。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
mode |
ModeType
|
path |
string[4095]
|
object |
server_end<Node>
|
Open2
打开或创建与此目录节点相关的新节点。
此方法需要对当前连接具备以下权限:
错误会以标注在 object_request
通道上呈现。
- 如果请求的权限超出允许的权限,则会发生
ZX_ERR_ACCESS_DENIED
错误。 - 如果
path
无效,则会发生ZX_ERR_BAD_PATH
错误。
请求
名称 | 类型 |
---|---|
path |
Path
|
protocols |
ConnectionProtocols
|
object_request |
handle<channel>
|
Open3
打开(或创建)相对于此目录的节点。系统会通过
墓碑已发送至 object
频道。
错误:
- 如果
path
无效,则为ZX_ERR_BAD_PATH
- 请参阅标志了解可能会根据
flags
传达的其他错误
请求
名称 | 类型 |
---|---|
path |
Path
|
flags |
Flags
|
options |
Options
|
object |
handle<channel>
|
查询
请求
<空>
响应
名称 | 类型 |
---|---|
protocol |
vector<uint8>
|
QueryFilesystem
查询文件系统以获取特定于文件系统的信息。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
info |
FilesystemInfo?
|
ReadDirents
将大小可变的 dirent 集合读取到缓冲区中。
目录中的 dirent 数可能非常庞大:
对一个文件多次调用 read,目录会有一个跳转
偏移量,在对 ReadDirents 的后续调用中会更新。
每次调用 ReadDirents 都只会返回整个目录结构,
它们不会在 ReadDirent 调用之间拆分跳转时
偏移到末尾,dirents
将为空。
这些 dirent 的形式如下:
struct dirent {
// Describes the inode of the entry.
uint64 ino;
// Describes the length of the dirent name in bytes.
uint8 size;
// Describes the type of the entry. Aligned with the
// POSIX d_type values. Use `DirentType` constants.
uint8 type;
// Unterminated name of entry.
char name[0];
}
此方法不需要任何权限,因为用户始终可以探测 从而避免在文件创建过程中触发名称冲突
请求
名称 | 类型 |
---|---|
max_bytes |
uint64
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
dirents |
vector<uint8>[8192]
|
RemoveExtendedAttribute
移除指定的扩展属性。
如果该属性不存在,则返回 ZX_ERR_NOT_FOUND。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
响应
名称 | 类型 |
---|---|
payload |
Node2_RemoveExtendedAttribute_Result
|
重命名
将名为 src
的节点重命名为名称 dst
(位于表示的目录中)
上传者:dst_parent_token
。
src
和 dst
必须是有效的节点名称。
如需了解有效名称的构成要素,请参阅名称。
此方法需要对当前连接和该连接都具备以下权限
由 dst_parent_token
标识:
为避免权利升级,必须满足以下要求。
如果源目录和目标目录不同,则源目录还必须具有 文件支持的最大功能集,通常是 Rights.READ_BYTES、Rights.WRITE_BYTES、Rights.GET_ATTRIBUTES 和 Rights.UPDATE_ATTRIBUTES。某些文件系统可能也支持 Rights.EXECUTE 。
如果 src
引用的是目录,并且与目标目录不同,则源目录
目录还必须具有 Rights.CONNECT 和 Rights.TRAVERSE 权限。
- 如果
src
或dst
无效,则会发生ZX_ERR_INVALID_ARGS
错误。 - 错误
ZX_ERR_ACCESS_DENIED
,表示权限不足。
请求
名称 | 类型 |
---|---|
src |
Name
|
dst_parent_token |
Token
|
dst |
Name
|
响应
名称 | 类型 |
---|---|
payload |
Directory2_Rename_Result
|
重新打开
创建与同一节点的另一个连接。
请求
名称 | 类型 |
---|---|
rights_request |
RightsRequest
|
object_request |
server_end<Node>
|
快退
重置目录跳转偏移量。
与 ReadDirents 类似,此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
SetAttr
更新有关节点的信息。
如果不支持 flags 指定的任何属性,则返回 ZX_ERR_NOT_SUPPORTED
。
此方法需要以下权限:OpenFlags.RIGHT_WRITABLE
,否则返回
ZX_ERR_BAD_HANDLE
。
请求
名称 | 类型 |
---|---|
flags |
NodeAttributeFlags
|
attributes |
NodeAttributes
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
SetExtendedAttribute
将此节点的给定属性 name
的值设置为 value
。
属性名称可能已存在,在这种情况下会更新属性。 如果属性不存在,系统会创建一个。名称不应 null 字节。如果包含,则返回 ZX_ERR_INVALID_ARGS。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
value |
ExtendedAttributeValue
|
mode |
SetExtendedAttributeMode
|
响应
名称 | 类型 |
---|---|
payload |
Node2_SetExtendedAttribute_Result
|
SetFlags
更改用于访问文件的 Directory.Open
标志。
可开启 / 关闭的受支持标志:
OpenFlags.APPEND
此方法不需要任何权限。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
同步
将节点更新同步到底层媒体(如果存在)。
当文件系统服务器刷新
相关更新,但不保证
这类信息并非由底层媒体留存下来,而任何信息
都致力于硬件客户端可以使用 Sync
来确保排序
操作之间。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
Node2_Sync_Result
|
解除关联
从该目录的条目列表中移除子节点。
注意:这无法保证底层对象会被销毁。 尽管该链接会从包含目录的目录中删除, 具有多个引用的对象(例如仍处于打开状态的文件) 直到所有引用都关闭后才会销毁。
- 如果连接未成功,则会发生
ZX_ERR_ACCESS_DENIED
错误 Rights.WRITE_BYTES。 - 如果底层文件系统不执行上述操作,则会发生
ZX_ERR_NOT_SUPPORTED
错误 支持写作。 - 如果
name
无效,则会发生ZX_ERR_BAD_PATH
错误。 - 如果
name
引用非空目录,则会发生ZX_ERR_NOT_EMPTY
错误。 - 如果
name
引用了装载点,则会发生ZX_ERR_UNAVAILABLE
错误; 包含远程频道 - 错误
ZX_ERR_NOT_DIR
如果选项请求目录,但 发现了除目录以外的内容。
由于特定于文件系统的原因,也可能会返回其他错误。
此方法需要以下权限:
请求
名称 | 类型 |
---|---|
name |
Name
|
options |
UnlinkOptions
|
响应
名称 | 类型 |
---|---|
payload |
Directory2_Unlink_Result
|
UpdateAttributes
更新有关节点的信息。
attributes
;如果attributes
中存在表格字段,则表示 intent 来更新相应属性。
如果该节点不支持任何指定属性,则返回 ZX_ERR_NOT_SUPPORTED
。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
payload |
MutableNodeAttributes
|
响应
名称 | 类型 |
---|---|
payload |
Node2_UpdateAttributes_Result
|
观看
监视目录,在 Watcher 请求渠道。
选项必须为零;资源。
与 ReadDirents 类似,此方法不需要任何权限。
请求
名称 | 类型 |
---|---|
mask |
WatchMask
|
options |
uint32
|
watcher |
server_end<DirectoryWatcher>
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
Directory1
在 fuchsia.io/directory.fidl 中定义
目录定义了能够容纳其他对象的节点。
克隆
创建与同一远程对象的另一个连接。
flags
可以是以下任何一项:
OpenFlags.RIGHT_*
OpenFlags.APPEND
OpenFlags.DESCRIBE
OpenFlags.CLONE_SAME_RIGHTS
所有其他标记均会被忽略。
flags
中的 OpenFlags.RIGHT_*
位会请求对所得结果的相应权限
克隆对象。
克隆对象拥有的权限必须不高于原始对象,否则
返回 ZX_ERR_ACCESS_DENIED
。
或者,您也可以传递 OpenFlags.CLONE_SAME_RIGHTS
以继承来源连接的权限。
将任何 OpenFlags.RIGHT_*
标志与
OpenFlags.CLONE_SAME_RIGHTS
。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
object |
server_end<Node>
|
GetAttr
获取节点相关信息。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
attributes |
NodeAttributes
|
GetFlags
获取 Directory.Open
权限和用于访问此文件的标志。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
flags |
OpenFlags
|
GetToken
获取目录的令牌,此令牌可用于日后识别对目录的访问 。只要连接请求令牌,该令牌就会一直有效 保持打开状态。
此方法需要以下权限:OpenFlags.RIGHT_WRITABLE
,否则返回
ZX_ERR_BAD_HANDLE
。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
token |
handle<handle>?
|
链接
在用 dst 表示的目录内创建指向名为 src 的对象的链接 令牌。
src
必须是已解析对象名称。包含“/”会
返回 ZX_ERR_INVALID_ARGS
。
dst
必须是已解析对象名称。包含“/”会
返回 ZX_ERR_INVALID_ARGS
。
使用此方法需要以下权限:OpenFlags.RIGHT_WRITABLE
和
OpenFlags.RIGHT_READABLE
,否则返回 ZX_ERR_BAD_HANDLE
。
如果同时重命名或解除关联来源,这将会是原子性的,例如如果 有两个执行者同时操作,其中一个执行者执行了重命名操作,这会影响 另一个是此目录下的来源,而另一个则添加了链接, 以原子方式按未指定的顺序执行操作。
请求
名称 | 类型 |
---|---|
src |
string[255]
|
dst_parent_token |
handle<handle>
|
dst |
string[255]
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
OnOpen
FIDL 服务器根据 OpenFlags.DESCRIBE
请求即时生成的事件。
指示打开操作成功或失败,并且可以选择性地描述
对象。如果状态为 ZX_OK
,则 info
包含对象的描述性信息
(与 Describe
将返回的内容相同)。
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
info |
NodeInfoDeprecated?
|
打开
打开相对于此目录对象的新对象。
“path
”可以包含多个以“/”分隔的细分字符,且不得
empty;即 ""路径无效。结尾的斜杠表示 OpenFlags.DIRECTORY。组件
不得为空(即“foo//bar”无效)。“..”路径的任何位置都不允许使用。“.”
只有在路径为“.”时才允许,否则不允许使用。以“/”开头允许(并且
与不存在时的处理方式相同,即“/foo/bar”和“foo/bar”相同)。
如果发送的标志未知值,则连接应关闭。
flags
中提供的 OpenFlags.RIGHT_*
个标记将限制
object
频道,它将与打开的实体相关联。
权限从未增加。在目录中打开嵌套实体时,您可能只有
请求的权限与目录连接已拥有的权限相同,或仅请求部分权限。
用户超出这些权限后,系统会在
OnOpen
事件(如果适用),并且 object
连接已关闭。
系统会忽略 mode
。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
mode |
ModeType
|
path |
string[4095]
|
object |
server_end<Node>
|
QueryFilesystem
查询文件系统以获取特定于文件系统的信息。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
info |
FilesystemInfo?
|
ReadDirents
将大小可变的 dirent 集合读取到缓冲区中。
目录中的 dirent 数可能非常庞大:
对一个文件多次调用 read,目录会有一个跳转
偏移量,在对 ReadDirents 的后续调用中会更新。
每次调用 ReadDirents 都只会返回整个目录结构,
它们不会在 ReadDirent 调用之间拆分跳转时
偏移到末尾,dirents
将为空。
这些 dirent 的形式如下:
struct dirent {
// Describes the inode of the entry.
uint64 ino;
// Describes the length of the dirent name in bytes.
uint8 size;
// Describes the type of the entry. Aligned with the
// POSIX d_type values. Use `DirentType` constants.
uint8 type;
// Unterminated name of entry.
char name[0];
}
此方法不需要任何权限,因为用户始终可以探测 从而避免在文件创建过程中触发名称冲突
请求
名称 | 类型 |
---|---|
max_bytes |
uint64
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
dirents |
vector<uint8>[8192]
|
快退
重置目录跳转偏移量。
与 ReadDirents 类似,此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
SetAttr
更新有关节点的信息。
如果不支持 flags 指定的任何属性,则返回 ZX_ERR_NOT_SUPPORTED
。
此方法需要以下权限:OpenFlags.RIGHT_WRITABLE
,否则返回
ZX_ERR_BAD_HANDLE
。
请求
名称 | 类型 |
---|---|
flags |
NodeAttributeFlags
|
attributes |
NodeAttributes
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
SetFlags
更改用于访问文件的 Directory.Open
标志。
可开启 / 关闭的受支持标志:
OpenFlags.APPEND
此方法不需要任何权限。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
观看
监视目录,在 Watcher 请求渠道。
选项必须为零;资源。
与 ReadDirents 类似,此方法不需要任何权限。
请求
名称 | 类型 |
---|---|
mask |
WatchMask
|
options |
uint32
|
watcher |
server_end<DirectoryWatcher>
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
Directory2
在 fuchsia.io/directory2.fidl 中定义
能够包含其他节点的 Node2。
AdvisoryLock
获取底层文件的咨询锁。
锁定状态将持续到此连接关闭或 此方法是通过 |AdvisoryLockType.UNLOCK| 调用的解锁 。
建议锁定只是建议性锁定。它们不会阻止实际读取或 对文件执行的写入操作,无论是通过 还是通过其他连接进行连接。
此方法需要以下权限:
- Rights.READ_BYTES(如果
request.type
为 AdvisoryLockType.READ)。 - Rights.WRITE_BYTES(如果
request.type
为) AdvisoryLockType.WRITE。
错误
ZX_ERR_BAD_STATE
无法获取指定的锁定类型。对于 例如,另一个连接持有的锁类型可能存在冲突。ZX_ERR_NOT_SUPPORTED
此文件不支持建议锁定。ZX_ERR_ACCESS_DENIED
此连接权限不足 来获取指定类型的锁。
请求
名称 | 类型 |
---|---|
request |
AdvisoryLockRequest
|
响应
名称 | 类型 |
---|---|
payload |
AdvisoryLocking_AdvisoryLock_Result
|
关闭
终止连接。
调用 Close
后,客户端不得发送任何其他请求。
服务器在发送状态响应后,应关闭连接 无论状态如何,都不会发送摘要。
关闭通道的客户端应该在语义上等效
调用 Close
,但不知道关闭何时完成或其
状态。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
fuchsia.unknown/Closeable_Close_Result
|
CreateSymlink
创建一个符号链接。
name
是要为所创建的符号链接指定的名称。
target
是符号链接的目标,它在服务器上没有意义。服务器
除了服务器选择的最大长度之外,不会对 target
执行任何验证。
connection
是通道的可选服务器端,它将使用 Symlink 协议
成功创建的节点上。
-
如果
name
已存在,则会发生ZX_ERR_ALREADY_EXISTS
错误。 -
如果
target
超过符号链接的服务器长度限制,则会发生ZX_ERR_BAD_PATH
错误。 -
如果
name
不是有效的名称,则会显示错误ZX_ERR_INVALID_ARGS
。 -
如果服务器不支持创建符号链接,则会发生
ZX_ERR_NOT_SUPPORTED
错误。
请求
名称 | 类型 |
---|---|
name |
Name
|
target |
SymlinkTarget
|
connection |
server_end<Symlink>?
|
响应
名称 | 类型 |
---|---|
payload |
Directory2_CreateSymlink_Result
|
GetAttributes
获取节点相关信息。
节点的属性应该是稳定的, 访问它所使用的特定协议。
如果某个属性不适用或不受支持, 文件系统应保留相应的字段。
query
:用于指定要提取的属性的位掩码。服务器 不应返回超出必要数量的值。
attributes
:返回的属性。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
query |
NodeAttributesQuery
|
响应
名称 | 类型 |
---|---|
payload |
Node2_GetAttributes_Result
|
GetConnectionInfo
获取关于连接的信息。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
ConnectionInfo
|
GetExtendedAttribute
获取与此节点的指定属性 name
相关联的值。
属性名称的长度上限为 MAX_ATTRIBUTE_NAME。否 特定的结构。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
响应
名称 | 类型 |
---|---|
payload |
Node2_GetExtendedAttribute_Result
|
ListExtendedAttributes
针对关联的所有扩展属性名称创建迭代器 具有此节点。如果出现错误,则会在 迭代器请求渠道,然后该渠道就会关闭。
GetExtendedAttributes 可与上述任意名称搭配使用,以检索 关联的值。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
iterator |
server_end<ExtendedAttributeIterator>
|
OnRepresentation
服务器根据以下请求立即生成的事件: NodeFlags.GET_REPRESENTATION。此活动将是第一条消息 并且只发送一次。
有效变体对应于以下某个受支持的协议: 该节点表示连接时间 协商。提供辅助句柄(如果适用)。
如果客户端在更新期间在 protocols
中指定了多个协议,
Directory.Open 时,Representation 还包含
通过其标记确认连接时间协商的结果。
这些元素与 NodeProtocolKinds 的支持。
这是 fuchsia.unknown/Queryable.Query +
Describe
方法。它以
以避免出现额外的往返行程
响应
名称 | 类型 |
---|---|
payload |
Representation
|
Open2
打开或创建与此目录节点相关的新节点。
此方法需要对当前连接具备以下权限:
错误会以标注在 object_request
通道上呈现。
- 如果请求的权限超出允许的权限,则会发生
ZX_ERR_ACCESS_DENIED
错误。 - 如果
path
无效,则会发生ZX_ERR_BAD_PATH
错误。
请求
名称 | 类型 |
---|---|
path |
Path
|
protocols |
ConnectionProtocols
|
object_request |
handle<channel>
|
Open3
打开(或创建)相对于此目录的节点。系统会通过
墓碑已发送至 object
频道。
错误:
- 如果
path
无效,则为ZX_ERR_BAD_PATH
- 请参阅标志了解可能会根据
flags
传达的其他错误
请求
名称 | 类型 |
---|---|
path |
Path
|
flags |
Flags
|
options |
Options
|
object |
handle<channel>
|
查询
请求
<空>
响应
名称 | 类型 |
---|---|
protocol |
vector<uint8>
|
RemoveExtendedAttribute
移除指定的扩展属性。
如果该属性不存在,则返回 ZX_ERR_NOT_FOUND。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
响应
名称 | 类型 |
---|---|
payload |
Node2_RemoveExtendedAttribute_Result
|
重命名
将名为 src
的节点重命名为名称 dst
(位于表示的目录中)
上传者:dst_parent_token
。
src
和 dst
必须是有效的节点名称。
如需了解有效名称的构成要素,请参阅名称。
此方法需要对当前连接和该连接都具备以下权限
由 dst_parent_token
标识:
为避免权利升级,必须满足以下要求。
如果源目录和目标目录不同,则源目录还必须具有 文件支持的最大功能集,通常是 Rights.READ_BYTES、Rights.WRITE_BYTES、Rights.GET_ATTRIBUTES 和 Rights.UPDATE_ATTRIBUTES。某些文件系统可能也支持 Rights.EXECUTE 。
如果 src
引用的是目录,并且与目标目录不同,则源目录
目录还必须具有 Rights.CONNECT 和 Rights.TRAVERSE 权限。
- 如果
src
或dst
无效,则会发生ZX_ERR_INVALID_ARGS
错误。 - 错误
ZX_ERR_ACCESS_DENIED
,表示权限不足。
请求
名称 | 类型 |
---|---|
src |
Name
|
dst_parent_token |
Token
|
dst |
Name
|
响应
名称 | 类型 |
---|---|
payload |
Directory2_Rename_Result
|
重新打开
创建与同一节点的另一个连接。
请求
名称 | 类型 |
---|---|
rights_request |
RightsRequest
|
object_request |
server_end<Node>
|
SetExtendedAttribute
将此节点的给定属性 name
的值设置为 value
。
属性名称可能已存在,在这种情况下会更新属性。 如果属性不存在,系统会创建一个。名称不应 null 字节。如果包含,则返回 ZX_ERR_INVALID_ARGS。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
value |
ExtendedAttributeValue
|
mode |
SetExtendedAttributeMode
|
响应
名称 | 类型 |
---|---|
payload |
Node2_SetExtendedAttribute_Result
|
同步
将节点更新同步到底层媒体(如果存在)。
当文件系统服务器刷新
相关更新,但不保证
这类信息并非由底层媒体留存下来,而任何信息
都致力于硬件客户端可以使用 Sync
来确保排序
操作之间。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
Node2_Sync_Result
|
解除关联
从该目录的条目列表中移除子节点。
注意:这无法保证底层对象会被销毁。 尽管该链接会从包含目录的目录中删除, 具有多个引用的对象(例如仍处于打开状态的文件) 直到所有引用都关闭后才会销毁。
- 如果连接未成功,则会发生
ZX_ERR_ACCESS_DENIED
错误 Rights.WRITE_BYTES。 - 如果底层文件系统不执行上述操作,则会发生
ZX_ERR_NOT_SUPPORTED
错误 支持写作。 - 如果
name
无效,则会发生ZX_ERR_BAD_PATH
错误。 - 如果
name
引用非空目录,则会发生ZX_ERR_NOT_EMPTY
错误。 - 如果
name
引用了装载点,则会发生ZX_ERR_UNAVAILABLE
错误; 包含远程频道 - 错误
ZX_ERR_NOT_DIR
如果选项请求目录,但 发现了除目录以外的内容。
由于特定于文件系统的原因,也可能会返回其他错误。
此方法需要以下权限:
请求
名称 | 类型 |
---|---|
name |
Name
|
options |
UnlinkOptions
|
响应
名称 | 类型 |
---|---|
payload |
Directory2_Unlink_Result
|
UpdateAttributes
更新有关节点的信息。
attributes
;如果attributes
中存在表格字段,则表示 intent 来更新相应属性。
如果该节点不支持任何指定属性,则返回 ZX_ERR_NOT_SUPPORTED
。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
payload |
MutableNodeAttributes
|
响应
名称 | 类型 |
---|---|
payload |
Node2_UpdateAttributes_Result
|
DirectoryWatcher
在 fuchsia.io/directory.fidl 中定义
DirectoryWatcher 从文件系统服务器传输消息
文件系统中发生的事件。客户端可以注册
新观察者使用 Directory.Watch
方法,通过该方法
过滤他们希望接收哪些事件的通知。
DirectoryWatcher 会发送以下形式的消息:
struct {
uint8 event;
uint8 len;
char name[];
};
其中,名称不是以 null 结尾。该名称是
事件所引用条目的路径。如果存在以下情况,则此处为空
该事件未引用特定条目(例如,对于
IDLE
事件)。
ExtendedAttributeIterator
在 fuchsia.io/node2.fidl 中定义
GetNext
获取扩展属性名称的下一个文本块。如果这是最后一次 最后将是 true,并且该频道在经过 调用。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
ExtendedAttributeIterator_GetNext_Result
|
文件
在 fuchsia.io/file2.fidl 中定义
包含一系列确定长度的字节的 Node。
注意:克隆的连接不与其来源共享其跳转偏移量 连接。
AdvisoryLock
获取底层文件的咨询锁。
锁定状态将持续到此连接关闭或 此方法是通过 |AdvisoryLockType.UNLOCK| 调用的解锁 。
建议锁定只是建议性锁定。它们不会阻止实际读取或 对文件执行的写入操作,无论是通过 还是通过其他连接进行连接。
此方法需要以下权限:
- Rights.READ_BYTES(如果
request.type
为 AdvisoryLockType.READ)。 - Rights.WRITE_BYTES(如果
request.type
为) AdvisoryLockType.WRITE。
错误
ZX_ERR_BAD_STATE
无法获取指定的锁定类型。对于 例如,另一个连接持有的锁类型可能存在冲突。ZX_ERR_NOT_SUPPORTED
此文件不支持建议锁定。ZX_ERR_ACCESS_DENIED
此连接权限不足 来获取指定类型的锁。
请求
名称 | 类型 |
---|---|
request |
AdvisoryLockRequest
|
响应
名称 | 类型 |
---|---|
payload |
AdvisoryLocking_AdvisoryLock_Result
|
分配
为此文件预先分配磁盘空间。
请求
名称 | 类型 |
---|---|
offset |
uint64
|
length |
uint64
|
mode |
AllocateMode
|
响应
名称 | 类型 |
---|---|
payload |
File_Allocate_Result
|
克隆
创建与同一远程对象的另一个连接。
flags
可以是以下任何一项:
OpenFlags.RIGHT_*
OpenFlags.APPEND
OpenFlags.DESCRIBE
OpenFlags.CLONE_SAME_RIGHTS
所有其他标记均会被忽略。
flags
中的 OpenFlags.RIGHT_*
位会请求对所得结果的相应权限
克隆对象。
克隆对象拥有的权限必须不高于原始对象,否则
返回 ZX_ERR_ACCESS_DENIED
。
或者,您也可以传递 OpenFlags.CLONE_SAME_RIGHTS
以继承来源连接的权限。
将任何 OpenFlags.RIGHT_*
标志与
OpenFlags.CLONE_SAME_RIGHTS
。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
object |
server_end<Node>
|
关闭
终止连接。
调用 Close
后,客户端不得发送任何其他请求。
服务器在发送状态响应后,应关闭连接 无论状态如何,都不会发送摘要。
关闭通道的客户端应该在语义上等效
调用 Close
,但不知道关闭何时完成或其
状态。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
fuchsia.unknown/Closeable_Close_Result
|
描述
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
FileInfo
|
EnableVerity
(永久)启用对文件的验证,这涉及为 文件。在构建 Merkle 树之前强制刷新,以确保缓存的数据 已捕获。系统将根据计算的 Merkle 树验证未来的读取操作,并将 已被拒绝。此方法可能需要一段时间才能完成,具体取决于文件的大小。 可以通过关闭发出此方法的连接来取消此方法。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
如果文件系统不支持 verity,则返回 ZX_ERR_NOT_SUPPORTED
。
如果文件已启用 fsverity,则返回 ZX_ERR_ALREADY_EXISTS
。
它会返回任何可能因读取文件或刷新文件而导致的错误,
例如 ZX_ERR_IO
。
请求
名称 | 类型 |
---|---|
options |
VerificationOptions
|
响应
名称 | 类型 |
---|---|
payload |
File_EnableVerity_Result
|
GetAttr
获取节点相关信息。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
attributes |
NodeAttributes
|
GetAttributes
获取节点相关信息。
节点的属性应该是稳定的, 访问它所使用的特定协议。
如果某个属性不适用或不受支持, 文件系统应保留相应的字段。
query
:用于指定要提取的属性的位掩码。服务器 不应返回超出必要数量的值。
attributes
:返回的属性。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
query |
NodeAttributesQuery
|
响应
名称 | 类型 |
---|---|
payload |
Node2_GetAttributes_Result
|
GetBackingMemory
获取表示此文件的 zx.Handle:VMO(如果有), 访问您请求的访问权限
实现由 VMO 支持的文件不需要实现,因此 此请求可能会失败。此外,实现可能仅支持 标志的特定子集。客户端应做好后备准备 行为
如果客户端既未指定 PRIVATE_CLONE
,也未指定 SHARED_BUFFER
,则
实现可以自由选择返回的 VMO 的语义。
- 向
flags
请求 VmoFlags,以指示所需的访问模式。
- 响应
vmo
请求的 zx.Handle:VMO。
- error a zx.Status 值,该值表示失败。
此方法需要以下权限:
- Rights.READ_BYTES(如果
flags
包含 VmoFlags.READ)。 - Rights.WRITE_BYTES(如果
flags
包含 VmoFlags.WRITE)。 - Rights.EXECUTE(如果
flags
包含 VmoFlags.EXECUTE)。
请求
名称 | 类型 |
---|---|
flags |
VmoFlags
|
响应
名称 | 类型 |
---|---|
payload |
File_GetBackingMemory_Result
|
GetConnectionInfo
获取关于连接的信息。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
ConnectionInfo
|
GetExtendedAttribute
获取与此节点的指定属性 name
相关联的值。
属性名称的长度上限为 MAX_ATTRIBUTE_NAME。否 特定的结构。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
响应
名称 | 类型 |
---|---|
payload |
Node2_GetExtendedAttribute_Result
|
GetFlags
获取 Directory.Open
权限和用于访问此文件的标志。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
flags |
OpenFlags
|
LinkInto
在由 表示的目录中创建指向此对象的链接,其名称为 dst
dst_parent_token
。
dst
必须是已解析对象名称。包含“/”会返回
ZX_ERR_INVALID_ARGS
。
对于该对象,此方法需要文件系统支持的最大权限集。
对于文件,通常为 Rights.READ_BYTES、Rights.WRITE_BYTES,
Rights.GET_ATTRIBUTES 和 Rights.UPDATE_ATTRIBUTES。有些文件系统可能
支持 Rights.EXECUTE 权限。权限不足会导致
ZX_ERR_ACCESS_DENIED
。
如果此对象没有链接,它将失败并显示 ZX_ERR_NOT_FOUND
。
此方法与 Directory::Link
方法不具有相同的原子性,
这意味着,依次调用 Open
和 LinkInto
并不等同于 Directory::Link
因为 LinkInto
不会阻止来源被重命名或解除关联。
请求
名称 | 类型 |
---|---|
dst_parent_token |
Token
|
dst |
Name
|
响应
名称 | 类型 |
---|---|
payload |
Linkable_LinkInto_Result
|
ListExtendedAttributes
针对关联的所有扩展属性名称创建迭代器 具有此节点。如果出现错误,则会在 迭代器请求渠道,然后该渠道就会关闭。
GetExtendedAttributes 可与上述任意名称搭配使用,以检索 关联的值。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
iterator |
server_end<ExtendedAttributeIterator>
|
OnOpen
FIDL 服务器根据 OpenFlags.DESCRIBE
请求即时生成的事件。
指示打开操作成功或失败,并且可以选择性地描述
对象。如果状态为 ZX_OK
,则 info
包含对象的描述性信息
(与 Describe
将返回的内容相同)。
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
info |
NodeInfoDeprecated?
|
OnRepresentation
服务器根据以下请求立即生成的事件: NodeFlags.GET_REPRESENTATION。此活动将是第一条消息 并且只发送一次。
有效变体对应于以下某个受支持的协议: 该节点表示连接时间 协商。提供辅助句柄(如果适用)。
如果客户端在更新期间在 protocols
中指定了多个协议,
Directory.Open 时,Representation 还包含
通过其标记确认连接时间协商的结果。
这些元素与 NodeProtocolKinds 的支持。
这是 fuchsia.unknown/Queryable.Query +
Describe
方法。它以
以避免出现额外的往返行程
响应
名称 | 类型 |
---|---|
payload |
Representation
|
查询
请求
<空>
响应
名称 | 类型 |
---|---|
protocol |
vector<uint8>
|
QueryFilesystem
查询文件系统以获取特定于文件系统的信息。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
info |
FilesystemInfo?
|
已读
读取到“count”寻道偏移量处的字节。 寻道偏移量向前移动读取的字节数。
不变量
- 返回的
data.length
绝不会大于count
。 - 如果
data.length
小于count
,则表示跳转偏移量 到达文件末尾。 - 如果
data.length
为零,count
不为零,则表示 跳转偏移量已到达或超出文件末尾,且任何数据都不能 以供读取。 - 如果
count
为零,服务器应执行所有检查,以确保 读取权限,而不实际读取任何内容,并将data
矢量。
此方法需要 Rights.READ_BYTES 权限。
如果 count
大于 MAX_TRANSFER_SIZE
,则返回 ZX_ERR_OUT_OF_RANGE
。
请求
名称 | 类型 |
---|---|
count |
uint64
|
响应
名称 | 类型 |
---|---|
payload |
Readable_Read_Result
|
ReadAt
读取到“count”指定偏移量处的字节。 不影响跳转偏移量。
不变量
- 返回的
data.length
绝不会大于count
。 - 如果
data.length
小于count
,则表示ReadAt
已达 文件末尾。 - 如果
data.length
为零而count
不为零,则表示offset
位于或超过文件末尾,且无法读取任何数据。 - 如果
count
为零,服务器应执行所有检查,以确保 在不实际读取任何内容的情况下进行读取访问,data
矢量。
此方法需要 Rights.READ_BYTES 权限。
如果 count
大于 MAX_TRANSFER_SIZE
,则返回 ZX_ERR_OUT_OF_RANGE
。
请求
名称 | 类型 |
---|---|
count |
uint64
|
offset |
uint64
|
响应
名称 | 类型 |
---|---|
payload |
File_ReadAt_Result
|
RemoveExtendedAttribute
移除指定的扩展属性。
如果该属性不存在,则返回 ZX_ERR_NOT_FOUND。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
响应
名称 | 类型 |
---|---|
payload |
Node2_RemoveExtendedAttribute_Result
|
重新打开
创建与同一节点的另一个连接。
请求
名称 | 类型 |
---|---|
rights_request |
RightsRequest
|
object_request |
server_end<Node>
|
调整大小
将文件缩小或扩大到“length”字节。
如果此操作缩减了文件大小,额外的尾随数据 已舍弃。 如果此操作增大文件大小,扩展区域会显示 就像设为 0 一样。
此方法需要 Rights.WRITE_BYTES 右方。
请求
名称 | 类型 |
---|---|
length |
uint64
|
响应
名称 | 类型 |
---|---|
payload |
File_Resize_Result
|
进度
移动下一次调用 Read 或 Write 时的偏移量 将发生什么。跳转偏移量特定于每个文件连接。
- 请求
origin
作为offset
所依据的参考点。 - 请求
offset
要定位的字节数。
- 响应
offset_from_start
调整后的跳转偏移量(从头开始) 文件副本。
此方法不需要任何权限。
请求
名称 | 类型 |
---|---|
origin |
SeekOrigin
|
offset |
int64
|
响应
名称 | 类型 |
---|---|
payload |
File_Seek_Result
|
SetAttr
更新有关节点的信息。
如果不支持 flags 指定的任何属性,则返回 ZX_ERR_NOT_SUPPORTED
。
此方法需要以下权限:OpenFlags.RIGHT_WRITABLE
,否则返回
ZX_ERR_BAD_HANDLE
。
请求
名称 | 类型 |
---|---|
flags |
NodeAttributeFlags
|
attributes |
NodeAttributes
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
SetExtendedAttribute
将此节点的给定属性 name
的值设置为 value
。
属性名称可能已存在,在这种情况下会更新属性。 如果属性不存在,系统会创建一个。名称不应 null 字节。如果包含,则返回 ZX_ERR_INVALID_ARGS。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
value |
ExtendedAttributeValue
|
mode |
SetExtendedAttributeMode
|
响应
名称 | 类型 |
---|---|
payload |
Node2_SetExtendedAttribute_Result
|
SetFlags
更改用于访问文件的 Directory.Open
标志。
可开启 / 关闭的受支持标志:
OpenFlags.APPEND
此方法不需要任何权限。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
同步
将节点更新同步到底层媒体(如果存在)。
当文件系统服务器刷新
相关更新,但不保证
这类信息并非由底层媒体留存下来,而任何信息
都致力于硬件客户端可以使用 Sync
来确保排序
操作之间。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
Node2_Sync_Result
|
UpdateAttributes
更新有关节点的信息。
attributes
;如果attributes
中存在表格字段,则表示 intent 来更新相应属性。
如果该节点不支持任何指定属性,则返回 ZX_ERR_NOT_SUPPORTED
。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
payload |
MutableNodeAttributes
|
响应
名称 | 类型 |
---|---|
payload |
Node2_UpdateAttributes_Result
|
写入
在跳转偏移量处写入数据。 寻道偏移量向前移动写入的字节数。 如果文件处于附加模式,则首先将跳转偏移量设置为末尾 然后执行写入操作,完成一个原子步骤。
如果定位偏移量加上 data.length
超出,则文件大小可能会增加
当前文件末尾。
- 请求
data
字节缓冲区以写入文件。
- 响应
actual_count
表示写入的字节数。
不变量
- 返回的
actual_count
绝不会大于data.length
。 - 如果服务器因某些原因而无法写入所有数据,不够
空格,
actual_count
可以小于data.length
。如果没有字节 则会返回错误。 - 如果
data.length
为零,则服务器应执行所有检查 确保在不更改文件的情况下拥有写入权限,并返回 零字节的成功写入。如果存在以下情况,定位偏移量仍会更新: 。
此方法需要 Rights.WRITE_BYTES 权限。
请求
名称 | 类型 |
---|---|
data |
Transfer
|
响应
名称 | 类型 |
---|---|
payload |
Writable_Write_Result
|
WriteAt
以指定的偏移量写入数据。 不影响跳转偏移量。
如果 offset
加上 data.length
超出
当前文件末尾。
- 请求
data
字节缓冲区以写入文件。 - 请求
offset
:从文件开头到开始写入的偏移量。
- 响应
actual_count
表示写入的字节数。
不变量
- 返回的
actual_count
绝不会大于data.length
。 - 如果服务器因某些原因而无法写入所有数据,不够
空格,
actual_count
可以小于data.length
。如果没有字节 则会返回错误。 - 如果
data.length
为零,则服务器应执行所有检查 确保在不更改文件的情况下写入权限,并将返回一个 零字节的成功写入。
此方法需要 Rights.WRITE_BYTES 右方。
请求
名称 | 类型 |
---|---|
data |
Transfer
|
offset |
uint64
|
响应
名称 | 类型 |
---|---|
payload |
File_WriteAt_Result
|
可关联
在 fuchsia.io/node2.fidl 中定义
LinkInto
在由 表示的目录中创建指向此对象的链接,其名称为 dst
dst_parent_token
。
dst
必须是已解析对象名称。包含“/”会返回
ZX_ERR_INVALID_ARGS
。
对于该对象,此方法需要文件系统支持的最大权限集。
对于文件,通常为 Rights.READ_BYTES、Rights.WRITE_BYTES,
Rights.GET_ATTRIBUTES 和 Rights.UPDATE_ATTRIBUTES。有些文件系统可能
支持 Rights.EXECUTE 权限。权限不足会导致
ZX_ERR_ACCESS_DENIED
。
如果此对象没有链接,它将失败并显示 ZX_ERR_NOT_FOUND
。
此方法与 Directory::Link
方法不具有相同的原子性,
这意味着,依次调用 Open
和 LinkInto
并不等同于 Directory::Link
因为 LinkInto
不会阻止来源被重命名或解除关联。
请求
名称 | 类型 |
---|---|
dst_parent_token |
Token
|
dst |
Name
|
响应
名称 | 类型 |
---|---|
payload |
Linkable_LinkInto_Result
|
节点
在 fuchsia.io/node.fidl 中定义
克隆
创建与同一远程对象的另一个连接。
flags
可以是以下任何一项:
OpenFlags.RIGHT_*
OpenFlags.APPEND
OpenFlags.DESCRIBE
OpenFlags.CLONE_SAME_RIGHTS
所有其他标记均会被忽略。
flags
中的 OpenFlags.RIGHT_*
位会请求对所得结果的相应权限
克隆对象。
克隆对象拥有的权限必须不高于原始对象,否则
返回 ZX_ERR_ACCESS_DENIED
。
或者,您也可以传递 OpenFlags.CLONE_SAME_RIGHTS
以继承来源连接的权限。
将任何 OpenFlags.RIGHT_*
标志与
OpenFlags.CLONE_SAME_RIGHTS
。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
object |
server_end<Node>
|
关闭
终止连接。
调用 Close
后,客户端不得发送任何其他请求。
服务器在发送状态响应后,应关闭连接 无论状态如何,都不会发送摘要。
关闭通道的客户端应该在语义上等效
调用 Close
,但不知道关闭何时完成或其
状态。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
fuchsia.unknown/Closeable_Close_Result
|
GetAttr
获取节点相关信息。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
attributes |
NodeAttributes
|
GetAttributes
获取节点相关信息。
节点的属性应该是稳定的, 访问它所使用的特定协议。
如果某个属性不适用或不受支持, 文件系统应保留相应的字段。
query
:用于指定要提取的属性的位掩码。服务器 不应返回超出必要数量的值。
attributes
:返回的属性。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
query |
NodeAttributesQuery
|
响应
名称 | 类型 |
---|---|
payload |
Node2_GetAttributes_Result
|
GetConnectionInfo
获取关于连接的信息。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
ConnectionInfo
|
GetExtendedAttribute
获取与此节点的指定属性 name
相关联的值。
属性名称的长度上限为 MAX_ATTRIBUTE_NAME。否 特定的结构。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
响应
名称 | 类型 |
---|---|
payload |
Node2_GetExtendedAttribute_Result
|
GetFlags
获取 Directory.Open
权限和用于访问此文件的标志。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
flags |
OpenFlags
|
ListExtendedAttributes
针对关联的所有扩展属性名称创建迭代器 具有此节点。如果出现错误,则会在 迭代器请求渠道,然后该渠道就会关闭。
GetExtendedAttributes 可与上述任意名称搭配使用,以检索 关联的值。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
iterator |
server_end<ExtendedAttributeIterator>
|
OnOpen
FIDL 服务器根据 OpenFlags.DESCRIBE
请求即时生成的事件。
指示打开操作成功或失败,并且可以选择性地描述
对象。如果状态为 ZX_OK
,则 info
包含对象的描述性信息
(与 Describe
将返回的内容相同)。
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
info |
NodeInfoDeprecated?
|
OnRepresentation
服务器根据以下请求立即生成的事件: NodeFlags.GET_REPRESENTATION。此活动将是第一条消息 并且只发送一次。
有效变体对应于以下某个受支持的协议: 该节点表示连接时间 协商。提供辅助句柄(如果适用)。
如果客户端在更新期间在 protocols
中指定了多个协议,
Directory.Open 时,Representation 还包含
通过其标记确认连接时间协商的结果。
这些元素与 NodeProtocolKinds 的支持。
这是 fuchsia.unknown/Queryable.Query +
Describe
方法。它以
以避免出现额外的往返行程
响应
名称 | 类型 |
---|---|
payload |
Representation
|
查询
请求
<空>
响应
名称 | 类型 |
---|---|
protocol |
vector<uint8>
|
QueryFilesystem
查询文件系统以获取特定于文件系统的信息。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
info |
FilesystemInfo?
|
RemoveExtendedAttribute
移除指定的扩展属性。
如果该属性不存在,则返回 ZX_ERR_NOT_FOUND。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
响应
名称 | 类型 |
---|---|
payload |
Node2_RemoveExtendedAttribute_Result
|
重新打开
创建与同一节点的另一个连接。
请求
名称 | 类型 |
---|---|
rights_request |
RightsRequest
|
object_request |
server_end<Node>
|
SetAttr
更新有关节点的信息。
如果不支持 flags 指定的任何属性,则返回 ZX_ERR_NOT_SUPPORTED
。
此方法需要以下权限:OpenFlags.RIGHT_WRITABLE
,否则返回
ZX_ERR_BAD_HANDLE
。
请求
名称 | 类型 |
---|---|
flags |
NodeAttributeFlags
|
attributes |
NodeAttributes
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
SetExtendedAttribute
将此节点的给定属性 name
的值设置为 value
。
属性名称可能已存在,在这种情况下会更新属性。 如果属性不存在,系统会创建一个。名称不应 null 字节。如果包含,则返回 ZX_ERR_INVALID_ARGS。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
value |
ExtendedAttributeValue
|
mode |
SetExtendedAttributeMode
|
响应
名称 | 类型 |
---|---|
payload |
Node2_SetExtendedAttribute_Result
|
SetFlags
更改用于访问文件的 Directory.Open
标志。
可开启 / 关闭的受支持标志:
OpenFlags.APPEND
此方法不需要任何权限。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
同步
将节点更新同步到底层媒体(如果存在)。
当文件系统服务器刷新
相关更新,但不保证
这类信息并非由底层媒体留存下来,而任何信息
都致力于硬件客户端可以使用 Sync
来确保排序
操作之间。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
Node2_Sync_Result
|
UpdateAttributes
更新有关节点的信息。
attributes
;如果attributes
中存在表格字段,则表示 intent 来更新相应属性。
如果该节点不支持任何指定属性,则返回 ZX_ERR_NOT_SUPPORTED
。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
payload |
MutableNodeAttributes
|
响应
名称 | 类型 |
---|---|
payload |
Node2_UpdateAttributes_Result
|
Node1
在 fuchsia.io/node.fidl 中定义
Node 定义了可在文件系统中访问的实体的最小接口。
克隆
创建与同一远程对象的另一个连接。
flags
可以是以下任何一项:
OpenFlags.RIGHT_*
OpenFlags.APPEND
OpenFlags.DESCRIBE
OpenFlags.CLONE_SAME_RIGHTS
所有其他标记均会被忽略。
flags
中的 OpenFlags.RIGHT_*
位会请求对所得结果的相应权限
克隆对象。
克隆对象拥有的权限必须不高于原始对象,否则
返回 ZX_ERR_ACCESS_DENIED
。
或者,您也可以传递 OpenFlags.CLONE_SAME_RIGHTS
以继承来源连接的权限。
将任何 OpenFlags.RIGHT_*
标志与
OpenFlags.CLONE_SAME_RIGHTS
。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
object |
server_end<Node>
|
GetAttr
获取节点相关信息。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
attributes |
NodeAttributes
|
GetFlags
获取 Directory.Open
权限和用于访问此文件的标志。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
flags |
OpenFlags
|
OnOpen
FIDL 服务器根据 OpenFlags.DESCRIBE
请求即时生成的事件。
指示打开操作成功或失败,并且可以选择性地描述
对象。如果状态为 ZX_OK
,则 info
包含对象的描述性信息
(与 Describe
将返回的内容相同)。
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
info |
NodeInfoDeprecated?
|
QueryFilesystem
查询文件系统以获取特定于文件系统的信息。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
info |
FilesystemInfo?
|
SetAttr
更新有关节点的信息。
如果不支持 flags 指定的任何属性,则返回 ZX_ERR_NOT_SUPPORTED
。
此方法需要以下权限:OpenFlags.RIGHT_WRITABLE
,否则返回
ZX_ERR_BAD_HANDLE
。
请求
名称 | 类型 |
---|---|
flags |
NodeAttributeFlags
|
attributes |
NodeAttributes
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
SetFlags
更改用于访问文件的 Directory.Open
标志。
可开启 / 关闭的受支持标志:
OpenFlags.APPEND
此方法不需要任何权限。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
Node2
在 fuchsia.io/node2.fidl 中定义
Node 定义了可访问的实体的最小协议 存储数据
关闭
终止连接。
调用 Close
后,客户端不得发送任何其他请求。
服务器在发送状态响应后,应关闭连接 无论状态如何,都不会发送摘要。
关闭通道的客户端应该在语义上等效
调用 Close
,但不知道关闭何时完成或其
状态。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
fuchsia.unknown/Closeable_Close_Result
|
GetAttributes
获取节点相关信息。
节点的属性应该是稳定的, 访问它所使用的特定协议。
如果某个属性不适用或不受支持, 文件系统应保留相应的字段。
query
:用于指定要提取的属性的位掩码。服务器 不应返回超出必要数量的值。
attributes
:返回的属性。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
query |
NodeAttributesQuery
|
响应
名称 | 类型 |
---|---|
payload |
Node2_GetAttributes_Result
|
GetConnectionInfo
获取关于连接的信息。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
ConnectionInfo
|
GetExtendedAttribute
获取与此节点的指定属性 name
相关联的值。
属性名称的长度上限为 MAX_ATTRIBUTE_NAME。否 特定的结构。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
响应
名称 | 类型 |
---|---|
payload |
Node2_GetExtendedAttribute_Result
|
ListExtendedAttributes
针对关联的所有扩展属性名称创建迭代器 具有此节点。如果出现错误,则会在 迭代器请求渠道,然后该渠道就会关闭。
GetExtendedAttributes 可与上述任意名称搭配使用,以检索 关联的值。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
iterator |
server_end<ExtendedAttributeIterator>
|
OnRepresentation
服务器根据以下请求立即生成的事件: NodeFlags.GET_REPRESENTATION。此活动将是第一条消息 并且只发送一次。
有效变体对应于以下某个受支持的协议: 该节点表示连接时间 协商。提供辅助句柄(如果适用)。
如果客户端在更新期间在 protocols
中指定了多个协议,
Directory.Open 时,Representation 还包含
通过其标记确认连接时间协商的结果。
这些元素与 NodeProtocolKinds 的支持。
这是 fuchsia.unknown/Queryable.Query +
Describe
方法。它以
以避免出现额外的往返行程
响应
名称 | 类型 |
---|---|
payload |
Representation
|
查询
请求
<空>
响应
名称 | 类型 |
---|---|
protocol |
vector<uint8>
|
RemoveExtendedAttribute
移除指定的扩展属性。
如果该属性不存在,则返回 ZX_ERR_NOT_FOUND。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
响应
名称 | 类型 |
---|---|
payload |
Node2_RemoveExtendedAttribute_Result
|
重新打开
创建与同一节点的另一个连接。
请求
名称 | 类型 |
---|---|
rights_request |
RightsRequest
|
object_request |
server_end<Node>
|
SetExtendedAttribute
将此节点的给定属性 name
的值设置为 value
。
属性名称可能已存在,在这种情况下会更新属性。 如果属性不存在,系统会创建一个。名称不应 null 字节。如果包含,则返回 ZX_ERR_INVALID_ARGS。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
value |
ExtendedAttributeValue
|
mode |
SetExtendedAttributeMode
|
响应
名称 | 类型 |
---|---|
payload |
Node2_SetExtendedAttribute_Result
|
同步
将节点更新同步到底层媒体(如果存在)。
当文件系统服务器刷新
相关更新,但不保证
这类信息并非由底层媒体留存下来,而任何信息
都致力于硬件客户端可以使用 Sync
来确保排序
操作之间。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
Node2_Sync_Result
|
UpdateAttributes
更新有关节点的信息。
attributes
;如果attributes
中存在表格字段,则表示 intent 来更新相应属性。
如果该节点不支持任何指定属性,则返回 ZX_ERR_NOT_SUPPORTED
。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
payload |
MutableNodeAttributes
|
响应
名称 | 类型 |
---|---|
payload |
Node2_UpdateAttributes_Result
|
可打开
在 fuchsia.io/directory.fidl 中定义
打开
打开相对于此目录对象的新对象。
“path
”可以包含多个以“/”分隔的细分字符,且不得
empty;即 ""路径无效。结尾的斜杠表示 OpenFlags.DIRECTORY。组件
不得为空(即“foo//bar”无效)。“..”路径的任何位置都不允许使用。“.”
只有在路径为“.”时才允许,否则不允许使用。以“/”开头允许(并且
与不存在时的处理方式相同,即“/foo/bar”和“foo/bar”相同)。
如果发送的标志未知值,则连接应关闭。
flags
中提供的 OpenFlags.RIGHT_*
个标记将限制
object
频道,它将与打开的实体相关联。
权限从未增加。在目录中打开嵌套实体时,您可能只有
请求的权限与目录连接已拥有的权限相同,或仅请求部分权限。
用户超出这些权限后,系统会在
OnOpen
事件(如果适用),并且 object
连接已关闭。
系统会忽略 mode
。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
mode |
ModeType
|
path |
string[4095]
|
object |
server_end<Node>
|
可读性
在 fuchsia.io/file2.fidl 中定义
已读
读取到“count”寻道偏移量处的字节。 寻道偏移量向前移动读取的字节数。
不变量
- 返回的
data.length
绝不会大于count
。 - 如果
data.length
小于count
,则表示跳转偏移量 到达文件末尾。 - 如果
data.length
为零,count
不为零,则表示 跳转偏移量已到达或超出文件末尾,且任何数据都不能 以供读取。 - 如果
count
为零,服务器应执行所有检查,以确保 读取权限,而不实际读取任何内容,并将data
矢量。
此方法需要 Rights.READ_BYTES 权限。
如果 count
大于 MAX_TRANSFER_SIZE
,则返回 ZX_ERR_OUT_OF_RANGE
。
请求
名称 | 类型 |
---|---|
count |
uint64
|
响应
名称 | 类型 |
---|---|
payload |
Readable_Read_Result
|
符号链接
在 fuchsia.io/symlink.fidl 中定义
包含符号链接的 ['Node']。
克隆
创建与同一远程对象的另一个连接。
flags
可以是以下任何一项:
OpenFlags.RIGHT_*
OpenFlags.APPEND
OpenFlags.DESCRIBE
OpenFlags.CLONE_SAME_RIGHTS
所有其他标记均会被忽略。
flags
中的 OpenFlags.RIGHT_*
位会请求对所得结果的相应权限
克隆对象。
克隆对象拥有的权限必须不高于原始对象,否则
返回 ZX_ERR_ACCESS_DENIED
。
或者,您也可以传递 OpenFlags.CLONE_SAME_RIGHTS
以继承来源连接的权限。
将任何 OpenFlags.RIGHT_*
标志与
OpenFlags.CLONE_SAME_RIGHTS
。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
object |
server_end<Node>
|
关闭
终止连接。
调用 Close
后,客户端不得发送任何其他请求。
服务器在发送状态响应后,应关闭连接 无论状态如何,都不会发送摘要。
关闭通道的客户端应该在语义上等效
调用 Close
,但不知道关闭何时完成或其
状态。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
fuchsia.unknown/Closeable_Close_Result
|
描述
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
Symlink_Describe_Result
|
GetAttr
获取节点相关信息。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
attributes |
NodeAttributes
|
GetAttributes
获取节点相关信息。
节点的属性应该是稳定的, 访问它所使用的特定协议。
如果某个属性不适用或不受支持, 文件系统应保留相应的字段。
query
:用于指定要提取的属性的位掩码。服务器 不应返回超出必要数量的值。
attributes
:返回的属性。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
query |
NodeAttributesQuery
|
响应
名称 | 类型 |
---|---|
payload |
Node2_GetAttributes_Result
|
GetConnectionInfo
获取关于连接的信息。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
ConnectionInfo
|
GetExtendedAttribute
获取与此节点的指定属性 name
相关联的值。
属性名称的长度上限为 MAX_ATTRIBUTE_NAME。否 特定的结构。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
响应
名称 | 类型 |
---|---|
payload |
Node2_GetExtendedAttribute_Result
|
GetFlags
获取 Directory.Open
权限和用于访问此文件的标志。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
flags |
OpenFlags
|
LinkInto
在由 表示的目录中创建指向此对象的链接,其名称为 dst
dst_parent_token
。
dst
必须是已解析对象名称。包含“/”会返回
ZX_ERR_INVALID_ARGS
。
对于该对象,此方法需要文件系统支持的最大权限集。
对于文件,通常为 Rights.READ_BYTES、Rights.WRITE_BYTES,
Rights.GET_ATTRIBUTES 和 Rights.UPDATE_ATTRIBUTES。有些文件系统可能
支持 Rights.EXECUTE 权限。权限不足会导致
ZX_ERR_ACCESS_DENIED
。
如果此对象没有链接,它将失败并显示 ZX_ERR_NOT_FOUND
。
此方法与 Directory::Link
方法不具有相同的原子性,
这意味着,依次调用 Open
和 LinkInto
并不等同于 Directory::Link
因为 LinkInto
不会阻止来源被重命名或解除关联。
请求
名称 | 类型 |
---|---|
dst_parent_token |
Token
|
dst |
Name
|
响应
名称 | 类型 |
---|---|
payload |
Linkable_LinkInto_Result
|
ListExtendedAttributes
针对关联的所有扩展属性名称创建迭代器 具有此节点。如果出现错误,则会在 迭代器请求渠道,然后该渠道就会关闭。
GetExtendedAttributes 可与上述任意名称搭配使用,以检索 关联的值。
此方法需要 Rights.GET_ATTRIBUTES 右边。
请求
名称 | 类型 |
---|---|
iterator |
server_end<ExtendedAttributeIterator>
|
OnOpen
FIDL 服务器根据 OpenFlags.DESCRIBE
请求即时生成的事件。
指示打开操作成功或失败,并且可以选择性地描述
对象。如果状态为 ZX_OK
,则 info
包含对象的描述性信息
(与 Describe
将返回的内容相同)。
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
info |
NodeInfoDeprecated?
|
OnRepresentation
服务器根据以下请求立即生成的事件: NodeFlags.GET_REPRESENTATION。此活动将是第一条消息 并且只发送一次。
有效变体对应于以下某个受支持的协议: 该节点表示连接时间 协商。提供辅助句柄(如果适用)。
如果客户端在更新期间在 protocols
中指定了多个协议,
Directory.Open 时,Representation 还包含
通过其标记确认连接时间协商的结果。
这些元素与 NodeProtocolKinds 的支持。
这是 fuchsia.unknown/Queryable.Query +
Describe
方法。它以
以避免出现额外的往返行程
响应
名称 | 类型 |
---|---|
payload |
Representation
|
查询
请求
<空>
响应
名称 | 类型 |
---|---|
protocol |
vector<uint8>
|
QueryFilesystem
查询文件系统以获取特定于文件系统的信息。
请求
<空>
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
info |
FilesystemInfo?
|
RemoveExtendedAttribute
移除指定的扩展属性。
如果该属性不存在,则返回 ZX_ERR_NOT_FOUND。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
响应
名称 | 类型 |
---|---|
payload |
Node2_RemoveExtendedAttribute_Result
|
重新打开
创建与同一节点的另一个连接。
请求
名称 | 类型 |
---|---|
rights_request |
RightsRequest
|
object_request |
server_end<Node>
|
SetAttr
更新有关节点的信息。
如果不支持 flags 指定的任何属性,则返回 ZX_ERR_NOT_SUPPORTED
。
此方法需要以下权限:OpenFlags.RIGHT_WRITABLE
,否则返回
ZX_ERR_BAD_HANDLE
。
请求
名称 | 类型 |
---|---|
flags |
NodeAttributeFlags
|
attributes |
NodeAttributes
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
SetExtendedAttribute
将此节点的给定属性 name
的值设置为 value
。
属性名称可能已存在,在这种情况下会更新属性。 如果属性不存在,系统会创建一个。名称不应 null 字节。如果包含,则返回 ZX_ERR_INVALID_ARGS。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
name |
ExtendedAttributeName
|
value |
ExtendedAttributeValue
|
mode |
SetExtendedAttributeMode
|
响应
名称 | 类型 |
---|---|
payload |
Node2_SetExtendedAttribute_Result
|
SetFlags
更改用于访问文件的 Directory.Open
标志。
可开启 / 关闭的受支持标志:
OpenFlags.APPEND
此方法不需要任何权限。
请求
名称 | 类型 |
---|---|
flags |
OpenFlags
|
响应
名称 | 类型 |
---|---|
s |
zx/Status
|
同步
将节点更新同步到底层媒体(如果存在)。
当文件系统服务器刷新
相关更新,但不保证
这类信息并非由底层媒体留存下来,而任何信息
都致力于硬件客户端可以使用 Sync
来确保排序
操作之间。
此方法不需要任何权限。
请求
<空>
响应
名称 | 类型 |
---|---|
payload |
Node2_Sync_Result
|
UpdateAttributes
更新有关节点的信息。
attributes
;如果attributes
中存在表格字段,则表示 intent 来更新相应属性。
如果该节点不支持任何指定属性,则返回 ZX_ERR_NOT_SUPPORTED
。
此方法需要 Rights.UPDATE_ATTRIBUTES 权限。
请求
名称 | 类型 |
---|---|
payload |
MutableNodeAttributes
|
响应
名称 | 类型 |
---|---|
payload |
Node2_UpdateAttributes_Result
|
可写入
在 fuchsia.io/file2.fidl 中定义
写入
在跳转偏移量处写入数据。 寻道偏移量向前移动写入的字节数。 如果文件处于附加模式,则首先将跳转偏移量设置为末尾 然后执行写入操作,完成一个原子步骤。
如果定位偏移量加上 data.length
超出,则文件大小可能会增加
当前文件末尾。
- 请求
data
字节缓冲区以写入文件。
- 响应
actual_count
表示写入的字节数。
不变量
- 返回的
actual_count
绝不会大于data.length
。 - 如果服务器因某些原因而无法写入所有数据,不够
空格,
actual_count
可以小于data.length
。如果没有字节 则会返回错误。 - 如果
data.length
为零,则服务器应执行所有检查 确保在不更改文件的情况下拥有写入权限,并返回 零字节的成功写入。如果存在以下情况,定位偏移量仍会更新: 。
此方法需要 Rights.WRITE_BYTES 权限。
请求
名称 | 类型 |
---|---|
data |
Transfer
|
响应
名称 | 类型 |
---|---|
payload |
Writable_Write_Result
|
结构体
AdvisoryLockRange
在 fuchsia.io/locking.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
origin |
SeekOrigin
|
无默认设置 | |
offset |
int64
|
字节范围的起点,表示为相对于 origin 的偏移量。 如果 origin 为 SeekOrigin.START,则不能为负数。 |
无默认设置 |
length |
int64
|
字节范围的长度(以字节为单位)。 如果长度为零,则字节范围将扩展至 无论文件有多大 如果长度为负数,则字节范围包括字节 |
无默认设置 |
AdvisoryLocking_AdvisoryLock_Response
在 fuchsia.io/locking.fidl 中定义
<空>
Directory2_CreateSymlink_Response
在 fuchsia.io/directory2.fidl 中定义
<空>
Directory2_Rename_Response
在 fuchsia.io/directory2.fidl 中定义
<空>
Directory2_Unlink_Response
在 fuchsia.io/directory2.fidl 中定义
<空>
DirectoryObject
在 fuchsia.io/node.fidl 中定义
<空>
ExtendedAttributeIterator_GetNext_Response
在 fuchsia.io/node2.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
attributes |
vector<vector<uint8>>[128]
|
无默认设置 | |
last |
bool
|
无默认设置 |
FileObject 资源
在 fuchsia.io/node.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
event |
handle<event>?
|
可选事件,可传输有关对象可读性的信息 或可写性。此事件中继底层对象的相关信息,而非 授予客户端的功能:此事件可能会被标记为“可读”在 没有读取能力的连接。 “ |
无默认设置 |
stream |
handle<stream>?
|
用于未来数据流支持的占位符。 目前,服务器不得在此字段中发送句柄。 |
无默认设置 |
File_Allocate_Response
在 fuchsia.io/file2.fidl 中定义
<空>
File_EnableVerity_Response
在 fuchsia.io/file2.fidl 中定义
<空>
File_GetBackingMemory_Response 资源
在 fuchsia.io/file2.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
vmo |
handle<vmo>
|
无默认设置 |
File_ReadAt_Response
在 fuchsia.io/file2.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
data |
Transfer
|
无默认设置 |
File_Resize_Response
在 fuchsia.io/file2.fidl 中定义
<空>
File_Seek_Response
在 fuchsia.io/file2.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
offset_from_start |
uint64
|
无默认设置 |
File_WriteAt_Response
在 fuchsia.io/file2.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
actual_count |
uint64
|
无默认设置 |
FilesystemInfo
在 fuchsia.io/node.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
total_bytes |
uint64
|
可以在文件系统中存储的数据字节数。不算在内 元数据或其他文件系统开销(例如块舍入)。 |
无默认设置 |
used_bytes |
uint64
|
文件系统正在使用的数据字节数。不算在内 元数据或其他文件系统开销(例如块舍入)。 |
无默认设置 |
total_nodes |
uint64
|
可以存储在文件系统中的节点数量。 |
无默认设置 |
used_nodes |
uint64
|
文件系统使用的节点数。 |
无默认设置 |
free_shared_pool_bytes |
uint64
|
可以从底层卷分配的额外空间量 。如果不受支持或文件系统没有空间来增大, 为零。 |
无默认设置 |
fs_id |
uint64
|
此文件系统实例的唯一标识符。将不会保留 重新启动。 实现人员应创建一个内核对象(通常是事件),并将其 koid 用于 文件系统 ID。此 koid 可保证系统的唯一性。 |
无默认设置 |
block_size |
uint32
|
单个文件系统块的大小(以字节为单位)。 |
无默认设置 |
max_filename_size |
uint32
|
文件系统名称的最大长度。 |
无默认设置 |
fs_type |
uint32
|
底层文件系统类型的唯一标识符。 |
无默认设置 |
padding |
uint32
|
无默认设置 | |
name |
int8[32]
|
无默认设置 |
Linkable_LinkInto_Response
在 fuchsia.io/node2.fidl 中定义
<空>
Node2_RemoveExtendedAttribute_Response
在 fuchsia.io/node2.fidl 中定义
<空>
Node2_SetExtendedAttribute_Response
在 fuchsia.io/node2.fidl 中定义
<空>
Node2_Sync_Response
在 fuchsia.io/node2.fidl 中定义
<空>
Node2_UpdateAttributes_Response
在 fuchsia.io/node2.fidl 中定义
<空>
NodeAttributes
在 fuchsia.io/node.fidl 中定义
NodeAttributes 定义了有关文件系统节点的一般信息。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
mode |
uint32
|
“模式”中说明了保护位和节点类型信息。 |
无默认设置 |
id |
uint64
|
文件系统唯一 ID。 |
无默认设置 |
content_size |
uint64
|
节点大小(以字节为单位)。 |
无默认设置 |
storage_size |
uint64
|
存储节点(可能大于大小)所需的空间(以字节为单位)。 |
无默认设置 |
link_count |
uint64
|
硬链接计数。 |
无默认设置 |
creation_time |
uint64
|
创建时间(可在创建后手动更新),从 Unix 纪元(世界协调时间)开始,以纳秒为单位。 |
无默认设置 |
modification_time |
uint64
|
自 Unix 纪元(世界协调时间)起的最后一次修改时间(以纳秒为单位)。 |
无默认设置 |
NodeAttributes2
在 fuchsia.io/node2.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
mutable_attributes |
MutableNodeAttributes
|
无默认设置 | |
immutable_attributes |
ImmutableNodeAttributes
|
无默认设置 |
Readable_Read_Response
在 fuchsia.io/file2.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
data |
Transfer
|
无默认设置 |
服务
在 fuchsia.io/node.fidl 中定义
<空>
SymlinkObject
在 fuchsia.io/node.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
target |
SymlinkTarget
|
无默认设置 |
Writable_Write_Response
在 fuchsia.io/file2.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
actual_count |
uint64
|
无默认设置 |
精英
AdvisoryLockType 严格
类型:uint32
在 fuchsia.io/locking.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
读取 |
1 |
零个或多个连接可以同时持有文件的读取锁。 |
写入 |
2 |
最多只能有一个连接同时持有文件的写锁。 当某个文件的写锁处于锁定状态时,无法持有其他类型的锁 该文件。 |
解锁 |
3 |
区域可指定要解锁的区域。 |
CreationMode 严格
类型:uint32
在 fuchsia.io/directory2.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
一律不 |
0 |
请仅打开现有对象,切勿创建新对象。 |
NEVER_DEPRECATED |
1 |
已弃用:19
|
ALLOW_EXISTING |
2 |
如果不存在对象,则创建新对象,否则打开现有对象。 |
始终 |
3 |
如果不存在对象,则创建新对象,否则请求将失败并显示
|
DirentType 柔性环境
类型:uint8
在 fuchsia.io/directory.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
未知 |
0 |
类型未知的 dirent。 |
目录 |
4 |
表示目录对象的 dirent。 |
BLOCK_DEVICE |
6 |
表示块设备对象的 dirent。 |
文件 |
8 |
表示文件对象的 dirent。 |
SYMLINK |
10 |
符号链接。 添加时间:18
|
服务 |
16 |
表示服务对象的 dirent。 |
HashAlgorithm 柔性
类型:uint8
在 fuchsia.io/file2.fidl 中定义
表示使用哪种哈希算法为以下集群构建 Merkle 树 启用了 fsverity 的文件
名称 | 值 | 说明 |
---|---|---|
SHA256 |
1 |
|
SHA512 |
2 |
SeekOrigin 严格
类型:uint32
在 fuchsia.io/file2.fidl 中定义
用于更新定位偏移量的参考点。请参阅 File.Seek。
此枚举与 zx_stream_seek_origin_t
枚举匹配。
名称 | 值 | 说明 |
---|---|---|
开始 |
0 |
从文件开头开始跳转。
跳转偏移量将设置为 |
当前 |
1 |
从文件中的当前位置跳转。
寻道偏移量将是当前寻道偏移量加上 |
结束 |
2 |
从文件末尾跳转。
跳转偏移量为文件大小加上 |
SetExtendedAttributeMode 严格
类型:uint32
在 fuchsia.io/node2.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
SET |
1 |
无论扩展属性的值是 已存在。 |
创建 |
2 |
创建新的扩展属性。如果已存在,则会失败。 |
替换 |
3 |
替换现有扩展属性的值。如果失败,则为失败 不存在。 |
WatchEvent 严格
类型:uint8
在 fuchsia.io/directory.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
DELETED |
0 |
表示正在监控的目录已被删除。为此事件返回的名称
将为 |
已添加 |
1 |
表示已在目录中创建(新建或移动)节点。 |
已移除 |
2 |
用于标识已从目录中移除(已删除或移动)的节点。 |
现有 |
3 |
识别监控开始时目录中已经存在的节点。 |
空闲 |
4 |
指明不会再发送任何 |
表
AdvisoryLockRequest
在 fuchsia.io/locking.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
type |
AdvisoryLockType
|
要获取的锁类型。 如果此字段不存在,AdvisoryLock 方法将会失败 。 |
2 |
range |
AdvisoryLockRange
|
文件中要锁定的字节范围。 该范围可以超出文件末尾,但不能超出文件末尾 文件开头。 如果没有此字段,则范围默认为整个文件。 |
3 |
wait |
bool
|
文件是否应等待对 AdvisoryLock 作出响应 方法,直到可以获取所请求的锁。 如果此字段不存在,文件将不会等待。 |
ConnectionInfo 资源
在 fuchsia.io/node2.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
rights |
Rights
|
当前关联用户拥有的权利。注意: |
ConnectorInfo
在 fuchsia.io/node2.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
attributes |
NodeAttributes2
|
请求的对象属性。仅在收到请求时填充此字段。 添加时间:18
|
DirectoryInfo
在 fuchsia.io/directory2.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
attributes |
NodeAttributes2
|
为目录请求的属性。仅在收到请求时填充此字段。 添加时间:18
|
DirectoryProtocolOptions
在 fuchsia.io/directory2.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
optional_rights |
Rights
|
可选权利(可协商)。 如果存在,则表示调用方请求获得 该值的交集与请求连接的权利。这个 作为高水位标志,由于此请求被代理处理,可防止权利升级 多个跃点;每个代理的值都必须与 在代理之前请求连接。 此字段是表达 POSIX 语义所必需的,其中目录的 |
FileInfo 资源
在 fuchsia.io/file2.fidl 中定义
用于表示节点的辅助数据。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
is_append |
bool
|
如果文件在附加模式下打开,则为 true。 在附加模式下,在每 以原子方式执行的两个步骤。 |
2 |
observer |
handle<event>
|
可选事件,可传输有关对象 可读性或可写性。此事件会中继有关 底层对象,而不是授予客户端的功能:此事件 可能会带有“可读”信号连接网络 读取功能 如果满足以下条件,系统就会显示此事件:
此事件可能会观察到 FileSignal 值。 |
3 |
stream |
handle<stream>
|
可选的流对象,可用于从 文件。 使用流对象读取和写入文件最高可达到 20 倍 比使用读写模式更快的读写模式 File 协议中的操作。 |
4 |
attributes |
NodeAttributes2
|
请求的文件属性。仅在收到请求时填充此字段。 添加时间:18
|
ImmutableNodeAttributes
在 fuchsia.io/node2.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
protocols |
NodeProtocolKinds
|
描述节点支持的表示法类型。
注意:这不是连接时间协商的结果,
通过 |
2 |
abilities |
Abilities
|
描述节点支持的操作类型。 注意:这与连接时使用的权限不同。 |
3 |
content_size |
uint64
|
节点大小(以字节为单位)。 |
4 |
storage_size |
uint64
|
存储节点所需的空间(可能大于大小),以字节为单位。 |
5 |
link_count |
uint64
|
指向节点的硬链接数。必须至少为 1。 |
6 |
id |
Id
|
节点的 ID。请参阅 Id。
此 |
7 |
change_time |
uint64
|
元数据的上次更改时间(自 Unix 纪元 UTC 起算,以纳秒为单位)。 添加时间:HEAD
|
8 |
options |
VerificationOptions
|
包含已启用 verity 的文件的验证选项。 添加时间:HEAD
|
9 |
root_hash |
vector<uint8>[64]
|
文件的根哈希。并非所有文件系统在所有文件中都支持此功能。 添加时间:HEAD
|
10 |
verity_enabled |
bool
|
如果此文件已启用 verity,则为 True。 添加时间:HEAD
|
MutableNodeAttributes
在 fuchsia.io/node2.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
creation_time |
uint64
|
创建时间(自 Unix 纪元 UTC 开始算起,以纳秒为单位)。 |
2 |
modification_time |
uint64
|
上次修改时间(自 Unix 纪元 UTC 起算,以纳秒为单位)。 |
3 |
mode |
uint32
|
POSIX 兼容性属性。大多数文件系统都不支持 这些。那些必须简单地存储和检索它们(例如, 扩展属性),并且不要试图解释它们(例如,通过执行 权限检查或处理设备打开的情况)。 添加时间:18
|
4 |
uid |
uint32
|
添加时间:18
|
5 |
gid |
uint32
|
添加时间:18
|
6 |
rdev |
uint64
|
添加时间:18
|
7 |
access_time |
uint64
|
上次访问时间(自 Unix 纪元 UTC 起算,以纳秒为单位)。请注意,服务器可能无法 如果这是唯一需要更新的属性,则始终会更新该属性。 添加时间:18
|
8 |
casefold |
bool
|
Casefold(不区分大小写的文件名)支持 此属性只能在空目录中更改,并且会由任何 后续创建的子目录的名称。 在写入数据时,唯一支持此功能的文件系统是 Fxfs。 添加时间:HEAD
|
NodeOptions
在 fuchsia.io/directory2.fidl 中定义
打开节点时使用的选项。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
flags |
NodeFlags
|
|
2 |
protocols |
NodeProtocols
|
调用方可以通过设置与 预期类型:
如果存在多个协议,则生成的协议可能会变为其中任一协议。 调用方应指定 NodeFlags.GET_REPRESENTATION 以接收 Node.OnRepresentation 事件,以便确定协议。 |
3 |
mode |
CreationMode
|
指定目标对象的创建方式。如果要创建某个对象,它的类型
必须由 如果类型不明确(例如同时设置了 添加时间:19
|
4 |
rights |
Rights
|
针对新连接请求的权限。如果任何权利超过了当前的权利
object_request 将关闭,并显示 授予连接的权限将缩小为目标操作 支持的节点类型。例如,如果目标节点是一个文件, 请求 Rights.WRITE_BYTES 和 Rights.MODIFY_DIRECTORY 时,会生成 只能授予 Rights.WRITE_BYTES。 如果没有“Rights”字段,则等同于“Rights”未出现。 |
5 |
attributes |
NodeAttributesQuery
|
如果设置了 NodeFlags.GET_REPRESENTATION 标志,则在 Node.OnRepresentation.这需要对父级拥有 Rights.GET_ATTRIBUTES 属性 而不是产生的连接。 添加时间:18
|
6 |
create_attributes |
MutableNodeAttributes
|
如果要创建对象,则此参数会指定应该随
创建对象。这需要父级上的 Rights.UPDATE_ATTRIBUTES
而不是产生的连接。请求将失败并显示 添加时间:18
|
NodeProtocols
在 fuchsia.io/directory2.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
directory |
DirectoryProtocolOptions
|
|
2 |
file |
FileProtocolFlags
|
|
3 |
symlink |
SymlinkProtocolFlags
|
添加时间:18
|
4 |
node |
NodeProtocolFlags
|
要求提供节点协议。唯一支持的右侧是 Rights.GET_ATTRIBUTES。
对生成的连接调用 添加时间:18
|
选项
在 fuchsia.io/directory2.fidl 中定义
可与 Open3 搭配使用的选项。与标志不同,这些选项专用于特定的 用例(例如,在请求属性时缩短往返延迟时间)。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
attributes |
NodeAttributesQuery
|
请求要与 OnRepresentation 响应一起发送的一组属性。无影响
如果未设置 |
2 |
create_attributes |
MutableNodeAttributes
|
请求在创建新对象时要以原子方式设置的一组属性。无影响
如果 |
RightsRequest
在 fuchsia.io/node2.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
rights |
Rights
|
针对新连接请求的权限。 如果 rights 超过了请求连接的权限
那么object_request将关闭
如果缺失,则会从请求的连接继承权限。 |
SymlinkInfo
在 fuchsia.io/symlink.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
target |
SymlinkTarget
|
符号链接在服务器上没有意义;客户端可随意解读 目标。 |
2 |
attributes |
NodeAttributes2
|
所请求的符号链接的属性。仅在收到请求时填充此字段。 |
UnlinkOptions
在 fuchsia.io/directory2.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
flags |
UnlinkFlags
|
VerificationOptions
在 fuchsia.io/file2.fidl 中定义
用于对文件启用 verity 的一组选项。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
hash_algorithm |
HashAlgorithm
|
|
2 |
salt |
vector<uint8>[32]
|
|
联合体
AdvisoryLocking_AdvisoryLock_Result 严格
在 fuchsia.io/locking.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
AdvisoryLocking_AdvisoryLock_Response
|
|
2 |
err |
zx/Status
|
ConnectionProtocols 柔性
在 fuchsia.io/directory2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
connector |
ConnectorFlags
|
请求在连接上传送节点的底层协议。 |
2 |
node |
NodeOptions
|
请求在连接上传送底层 Node 协议。 |
Directory2_CreateSymlink_Result strict
在 fuchsia.io/directory2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Directory2_CreateSymlink_Response
|
|
2 |
err |
zx/Status
|
Directory2_Retrieve_Result strict
在 fuchsia.io/directory2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Directory2_Rename_Response
|
|
2 |
err |
zx/Status
|
Directory2_Unlink_Result 严格
在 fuchsia.io/directory2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Directory2_Unlink_Response
|
|
2 |
err |
zx/Status
|
ExtendedAttributeIterator_GetNext_Result 严格
在 fuchsia.io/node2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
ExtendedAttributeIterator_GetNext_Response
|
|
2 |
err |
zx/Status
|
ExtendedAttributeValue 柔性 资源
在 fuchsia.io/node2.fidl 中定义
扩展属性的值类型。如果值小于 32768 那么它将以内嵌方式包含在内。大于此大小的值会写入 提取到视频缓冲区中
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
bytes |
vector<uint8>[32768]
|
|
2 |
buffer |
handle<vmo>
|
File_Allocate_Result 严格
在 fuchsia.io/file2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
File_Allocate_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
File_EnableVerity_Result 严格
在 fuchsia.io/file2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
File_EnableVerity_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
File_GetBackingMemory_Result 严格的 资源
在 fuchsia.io/file2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
File_GetBackingMemory_Response
|
|
2 |
err |
zx/Status
|
File_ReadAt_Result 严格
在 fuchsia.io/file2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
File_ReadAt_Response
|
|
2 |
err |
zx/Status
|
File_Resize_Result 严格
在 fuchsia.io/file2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
File_Resize_Response
|
|
2 |
err |
zx/Status
|
File_Seek_Result 严格
在 fuchsia.io/file2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
File_Seek_Response
|
|
2 |
err |
zx/Status
|
File_WriteAt_Result
在 fuchsia.io/file2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
File_WriteAt_Response
|
|
2 |
err |
zx/Status
|
Linkable_LinkInto_Result 严格
在 fuchsia.io/node2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Linkable_LinkInto_Response
|
|
2 |
err |
zx/Status
|
Node2_GetAttributes_Result 严格
在 fuchsia.io/node2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
NodeAttributes2
|
|
2 |
err |
zx/Status
|
Node2_GetExtendedAttribute_Result 严格的 资源
在 fuchsia.io/node2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
ExtendedAttributeValue
|
|
2 |
err |
zx/Status
|
Node2_RemoveExtendedAttribute_Result 严格
在 fuchsia.io/node2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Node2_RemoveExtendedAttribute_Response
|
|
2 |
err |
zx/Status
|
Node2_SetExtendedAttribute_Result 严格
在 fuchsia.io/node2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Node2_SetExtendedAttribute_Response
|
|
2 |
err |
zx/Status
|
Node2_Sync_Result 严格
在 fuchsia.io/node2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Node2_Sync_Response
|
|
2 |
err |
zx/Status
|
Node2_UpdateAttributes_Result strict
在 fuchsia.io/node2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Node2_UpdateAttributes_Response
|
|
2 |
err |
zx/Status
|
NodeInfo 已弃用严格的 资源
在 fuchsia.io/node.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
service |
Service
|
连接未提供任何协议信息。 |
2 |
file |
FileObject
|
连接组成 File。 |
3 |
directory |
DirectoryObject
|
连接组成目录。 |
4 |
symlink |
SymlinkObject
|
连接组成 ['Symlink']。 添加时间:18
|
Readable_Read_Result 严格
在 fuchsia.io/file2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Readable_Read_Response
|
|
2 |
err |
zx/Status
|
有代表性的灵活 资源
在 fuchsia.io/node2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
connector |
ConnectorInfo
|
节点的连接器表示形式的辅助数据,使用 进行协议发现和连接 它支持连接到由 位于某个路径下的文件系统服务器,包括不用于编写 Node2。 |
2 |
directory |
DirectoryInfo
|
|
3 |
file |
FileInfo
|
|
4 |
symlink |
SymlinkInfo
|
用于节点符号链接表示的辅助数据。通过 在表示法中选择该变体意味着 表示符号链接协议。 请参阅 NodeProtocolKinds.SYMLINK。 添加时间:18
|
Symlink_Describe_Result(严格)
在 fuchsia.io/symlink.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
SymlinkInfo
|
|
3 |
framework_err |
internal
|
Writable_Write_Result 严格
在 fuchsia.io/file2.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Writable_Write_Response
|
|
2 |
err |
zx/Status
|
位
AllocateMode 灵活
类型:uint32
在 fuchsia.io/file2.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
KEEP_SIZE |
1 | |
UNSHARE_RANGE |
2 | |
PUNCH_HOLE |
4 | |
COLLAPSE_RANGE |
8 | |
ZERO_RANGE |
16 | |
INSERT_RANGE |
32 |
ConnectorFlags 柔性
类型:uint64
在 fuchsia.io/directory2.fidl 中定义
名称 | 值 | 说明 |
---|
FileProtocolFlags 柔性
类型:uint64
在 fuchsia.io/directory2.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
附加 |
1 | 以附加模式打开文件,即连接应寻找至 文件。 如果该文件不支持附加操作,则应生成 |
TRUNCATE |
2 | 将对象的长度设为 0,以便在使用之前将其截断。需要使用 Rights.WRITE_BYTES。 如果文件不支持截断操作,
|
FileSignal 严格
类型:uint32
在 fuchsia.io/file2.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
可读 |
16777216 | 表示文件已可供读取。 |
可写 |
33554432 | 表示文件可以写入了。 |
标志灵活
类型:uint64
在 fuchsia.io/directory2.fidl 中定义
用于指定应如何打开节点的标志。请注意,位范围预留 例如:
- 位 1-16:权限标志
PERM_
(例如 Flags.PERMREAD)。 - 位 17-32:POSIX 兼容
O
标记(例如 Flags.FILE_TRUNCATE 或O_TRUNC
)。 - 位 33-64:特定于 Fuchsia 的标记。
名称 | 值 | 说明 |
---|---|---|
PERM_CONNECT |
1 | 允许使用 PROTOCOL_SERVICE 打开子节点。 |
PERM_READ |
2 | 读取文件的字节内容。 |
PERM_WRITE |
4 | 将字节内容写入文件。 |
PERM_EXECUTE |
8 | 执行文件的字节内容。 |
PERM_GET_ATTRIBUTES |
16 | 获取/查询节点的属性。 |
PERM_SET_ATTRIBUTES |
32 | 设置/更新节点的属性。 |
PERM_ENUMERATE |
64 | 枚举(列出)目录条目。 |
PERM_TRAVERSE |
128 | 允许使用节点协议打开子节点。必须使用 PERM_ENUMERATE 指定
否则请求会失败并显示 |
PERM_MODIFY |
256 | 修改目录条目(创建/重命名/关联/解除关联)。必须使用 PERM_ENUMERATE 指定
否则请求会失败并显示 |
PERM_INHERIT_WRITE |
8192 | 继承写入权限(如果可用)(PERM_WRITE、PERM_SET_ATTRIBUTES、PERM_MODIFY、 PERM_ENUMERATE)。如果父级连接缺失,服务器必须确保移除此标志 部分权利。如需了解INHERITED_WRITE_PERMISSIONS 所有资源 |
PERM_INHERIT_EXECUTE |
16384 | 继承可用的执行权限 (PERM_EXECUTE)。 如果父级连接缺少 PERM_EXECUTE,服务器必须确保移除此标志。 |
PROTOCOL_SERVICE |
4294967296 | 如果这是服务节点,请连接到底层协议。调用方必须确定
使用正确的协议(例如基于路径)。除非与 PROTOCOL_NODE 配合使用,否则指定
则带有请求的其他标志将会失败并显示 |
PROTOCOL_NODE |
4194304 | 连接到底层节点。优先级高于其他协议。如果是其他 |
PROTOCOL_DIRECTORY |
524288 | 调用方接受 fuchsia.io/Directory 协议。等同于 POSIX |
PROTOCOL_FILE |
8589934592 | 调用方接受 fuchsia.io/File 协议。 |
PROTOCOL_SYMLINK |
17179869184 | 调用方接受 fuchsia.io/Symlink 协议。 |
FLAG_SEND_REPRESENTATION |
1099511627776 | 调用成功后,调用者会请求 fuchsia.io/Node.OnRepresentation 事件。 |
FLAG_MAYBE_CREATE |
65536 | 如果不存在对象,则创建新对象,否则打开现有对象。如果已设置,
必须设置单个 |
FLAG_MUST_CREATE |
131072 | 如果不存在对象,则创建新对象,否则使用
|
FILE_APPEND |
1048576 | 以附加模式打开文件。定位指针将移至文件末尾 (EOF)
。等同于 POSIX |
FILE_TRUNCATE |
262144 | 打开文件时将其截断,长度为零。等同于 POSIX |
模式类型严格
类型:uint32
在 fuchsia.io/directory.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
DO_NOT_USE |
2147483648 |
NodeAttributeFlags 严格
类型:uint32
在 fuchsia.io/node.fidl 中定义
“属性”字段用于更新节点的节点 由“flags”标记参数。
名称 | 值 | 说明 |
---|---|---|
CREATION_TIME |
1 | |
MODIFICATION_TIME |
2 |
NodeAttributesQuery 柔性
类型:uint64
在 fuchsia.io/node2.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
PROTOCOLS |
1 | |
能力 |
2 | |
CONTENT_SIZE |
4 | |
STORAGE_SIZE |
8 | |
LINK_COUNT |
16 | |
ID |
32 | |
CREATION_TIME |
64 | |
MODIFICATION_TIME |
128 | |
模式 |
256 | Posix 属性。 添加时间:18
|
UID |
512 | 添加时间:18
|
GID |
1024 | 添加时间:18
|
RDEV |
2048 | 添加时间:18
|
ACCESS_TIME |
4096 | 添加时间:18
|
CHANGE_TIME |
8192 | 添加时间:18
|
选项 |
16384 | Verity 属性。 添加时间:HEAD
|
ROOT_HASH |
32768 | 添加时间:HEAD
|
VERITY_ENABLED |
65536 | 添加时间:HEAD
|
CASEFOLD |
131072 | 支持 Casefold(不区分大小写)的文件名。 如果为 true,文件查询将不区分大小写,但将保留大小写。即“Foo”会 可逐字存储,但能以“foo”、“fOO”等形式打开。 符合 Unicode 12 NFD 标准化和大小写折叠标准。 添加时间:HEAD
|
NodeFlags 柔性
类型:uint64
在 fuchsia.io/directory2.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
GET_REPRESENTATION |
1 | 请求将 Node.OnRepresentation 事件作为第一条消息在 协议请求。 这是 fuchsia.unknown/Queryable.Query + 固有 |
NodeProtocolFlags 柔性
类型:uint64
在 fuchsia.io/directory2.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
MUST_BE_DIRECTORY |
1 | 仅当底层对象是目录时,才允许连接。试图
打开除目录之外的其他内容将生成 |
NodeProtocolKinds 柔性环境
类型:uint64
在 fuchsia.io/node-protocols.fidl 中定义
打开一个节点时,可能会有多种受支持的表示法,即使 它可能具有固定的基本身份。
目前,我们通过 File 协议访问文件,并向该文件发送
Representation.FileInfo(使用 GET_REPRESENTATION
打开时)。不过,
将来,我们可能会引入更复杂的 FileV2
协议,或者
由专用内核对象支持的更高效的 SuperFastFile
。新
客户可以请求更高级的表示法,方法是指定
NodeProtocolKinds 中的相应位,而现有客户端
继续通过旧表示法与节点通信。
NodeProtocolKinds 通过一种协议实现向前兼容性 协商。
这些元素与 表示法。
名称 | 值 | 说明 |
---|---|---|
连接器 |
1 | 节点的连接器表示形式。 连接将采用 Node 或目标协议。 具体取决于打开过程中使用的 flag。 |
目录 |
2 | 节点的目录表示形式。 该连接将使用目录协议。 |
文件 |
4 | 节点的文件表示形式。 该连接会使用文件协议。 |
SYMLINK |
8 | 节点的符号链接表示法。 该连接将使用符号链接协议。 添加时间:HEAD
|
OpenFlags 严格
类型:uint32
在 fuchsia.io/directory.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
RIGHT_READABLE |
1 | 可以从目标对象读取。 |
RIGHT_WRITABLE |
2 | 可以写入目标对象。 |
RIGHT_EXECUTABLE |
8 | 连接可以映射目标对象可执行文件。 |
创建 |
65536 | 如果该对象不存在,请创建一个。 |
CREATE_IF_ABSENT |
131072 | (使用“创建”)如果对象已存在,则失败。 |
TRUNCATE |
262144 | 在使用之前截断对象。 |
目录 |
524288 | 断言要打开的对象是一个目录。 如果目标对象不是目录,则返回错误。 |
附加 |
1048576 | 在所有写入之前跳转至对象末尾。 |
NODE_REFERENCE |
4194304 | 打开对对象(而非对象本身)的引用。
只有在将以下标志与
|
DESCRIBE |
8388608 | 向“OnOpen”事件发送到接口请求。 如果打开/克隆成功,该事件将包含一个非 null |
POSIX_WRITABLE |
134217728 | 指定此标志可请求与写入权限处理有关的 POSIX 兼容性。 目前,它仅影响 Open 期间的权限处理:
如果省略此标志,则打开操作始终会使用请求的权限,这会导致操作失败: 如果请求的权限超出了当前连接附加的权限,则会发生“access denied”错误。 如果请求连接是只读的,并且请求的权限是只读的,则标记 可能会被服务器忽略,不会转发至下游。这是实现细节 跨装载点强制执行分层权限所必需的,应该不会造成任何影响 客户预期行为 |
POSIX_EXECUTABLE |
268435456 | 指定此标志可请求与执行权限处理相关的 POSIX 兼容性。 目前,它仅影响 Open 期间的权限处理:
如果省略此标志,则打开操作始终会使用请求的权限,这会导致操作失败: 如果请求的权限超出了当前连接附加的权限,则会发生“access denied”错误。 如果请求连接是只读的,并且请求的权限是只读的,则标记 可能会被服务器忽略,不会转发至下游。这是实现细节 跨装载点强制执行分层权限所必需的,应该不会造成任何影响 客户预期行为 |
NOT_DIRECTORY |
33554432 | 断言要打开的对象不是目录。 如果目标对象是目录,则返回错误。 |
CLONE_SAME_RIGHTS |
67108864 | 如果在克隆期间使用新连接,新连接会继承来源连接的权限,
无论是文件还是目录否则,克隆会尝试使用请求的权限。
将任何 |
BLOCK_DEVICE |
16777216 | 打开目标对象作为块存储设备。 |
操作严格
类型:uint64
在 fuchsia.io/rights-abilities.fidl 中定义
权利和能力背后的常见成员定义。可能需要执行部分操作 仅适用于特定节点类型(例如,Operations.MODIFY_DIRECTORY 仅适用于目录)。
名称 | 值 | 说明 |
---|---|---|
连接 |
1 | 连接到目录中的服务。 |
READ_BYTES |
2 | 读取节点或其子节点的字节内容。 |
WRITE_BYTES |
4 | 写入节点或其子节点的字节内容。 |
执行 |
8 | 执行节点或其子级的字节内容。 |
GET_ATTRIBUTES |
16 | 读取节点和/或其子节点的属性。 |
UPDATE_ATTRIBUTES |
32 | 更新节点和/或其子节点的属性。 |
商人 |
64 | 读取目录中的节点列表。 |
跑步 |
128 | 从目录中打开节点。必须使用 Rights.ENUMERATE 指定,作为目录 可以通过打开子文件进行探测。 |
MODIFY_DIRECTORY |
256 | 修改目录中的节点列表,例如创建、重命名、关联/解除关联等... 必须使用 Rights.ENUMERATE 指定,因为可通过名称探测目录内容 出现冲突。 |
SymlinkProtocolFlags 柔性
类型:uint64
在 fuchsia.io/directory2.fidl 中定义
名称 | 值 | 说明 |
---|
取消关联 Flags柔性环境
类型:uint64
在 fuchsia.io/directory2.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
MUST_BE_DIRECTORY |
1 | 设置后,如果 对象不是目录。 |
VmoFlag 严格
类型:uint32
在 fuchsia.io/file2.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
读取 |
1 | 请求 VMO 可读。 |
写入 |
2 | 请求 VMO 可写入。 |
执行 |
4 | 请求该 VMO 可执行。 |
PRIVATE_CLONE |
65536 | 需要底层 VMO 的写入时复制克隆。请求
如果无法克隆 VMO,则应该失败。可能无法提供
尽在 私有克隆至少使用
在某些情况下,客户端需要
文件可以使用 |
SHARED_BUFFER |
131072 | 需要一个能够直接访问
底层 VMO 文件如果存在此类 VMO,请求应失败
。不会随 即使启用了 |
WatchMask 严格
类型:uint32
在 fuchsia.io/directory.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
DELETED |
1 | 由 |
已添加 |
2 | 由 |
已移除 |
4 | 由 |
现有 |
8 | 由 |
空闲 |
16 | 由 |
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
DIRECTORY_PROTOCOL_NAME | fuchsia.io/Directory |
String |
|
FILE_PROTOCOL_NAME | fuchsia.io/File |
String |
|
INHERITED_WRITE_PERMISSIONS | 如果满足以下条件,则 Flags.PERM_INHERIT_WRITE 将从父连接继承的一组权限: 。请注意,如果连接中缺少这些权限, 权限。 |
||
INO_UNKNOWN |
18446744073709551615
|
uint64 |
没有值的节点应返回此值 (从 Readdir 和 GetAttr 中获取)。 |
MASK_KNOWN_PERMISSIONS | |||
MASK_KNOWN_PROTOCOLS | |||
MASK_PERMISSION_FLAGS |
65535
|
uint64 |
|
MASK_POSIX_FLAGS |
4294967295
|
uint64 |
|
MAX_ATTRIBUTE_NAME |
255
|
uint64 |
扩展属性名称的大小上限。 添加时间:18
|
MAX_BUF |
8192
|
uint64 |
可为已缓冲操作传输的最大缓冲区空间。 此容量目前设置为任意设置。 |
MAX_FILENAME |
255
|
uint64 |
单个文件系统组件的最大长度(以字节为单位)。 |
MAX_FS_NAME_BUFFER |
32
|
uint64 |
|
MAX_INLINE_ATTRIBUTE_VALUE |
32768
|
uint64 |
要内嵌的扩展属性值的大小上限。 大于此大小的值会在 vmo 中传递。 添加时间:18
|
MAX_LIST_ATTRIBUTES_CHUNK |
128
|
uint64 |
ListExtendedAttributes 迭代器中分块的大小上限。 添加时间:18
|
MAX_NAME_LENGTH |
255
|
uint64 |
单个文件系统组件的最大长度(以字节为单位)。 |
MAX_PATH_LENGTH |
4095
|
uint64 |
文件系统路径的长度上限(以字节为单位)。 |
MAX_TRANSFER_SIZE |
8192
|
uint64 |
使用 字节矢量。 |
MODE_PROTECTION_MASK |
4095
|
uint32 |
为 POSIX 保护保留的位。原生紫红色文件系统
无需设置 |
MODE_TYPE_BLOCK_DEVICE |
24576
|
uint32 |
|
MODE_TYPE_DIRECTORY |
16384
|
uint32 |
|
MODE_TYPE_FILE |
32768
|
uint32 |
|
MODE_TYPE_MASK |
1044480
|
uint32 |
表示节点类型的位。规范化检查机制
“模式”是采用“模式”,按位 AND 使用
|
MODE_TYPE_SERVICE |
65536
|
uint32 |
|
MODE_TYPE_SYMLINK |
40960
|
uint32 |
添加时间:HEAD
|
NODE_PROTOCOL_NAME | fuchsia.io/Node |
String |
|
OPEN_FLAGS_ALLOWED_WITH_NODE_REFERENCE | 打开节点引用时使用的标志必须位于此掩码范围内。 |
||
OPEN_RIGHTS | 所有已知权利。 |
||
RW_STAR_DIR | 目录权限别名 rw* 的别名 |
||
RX_STAR_DIR | 目录权限别名 rx* 的别名 |
||
R_STAR_DIR | 目录权限别名 r* 的别名 |
||
SYMLINK_PROTOCOL_NAME | fuchsia.io/Symlink |
String |
添加时间:18
|
W_STAR_DIR | 目录权限别名 w* 的别名 |
||
X_STAR_DIR | 目录权限别名 x* 的别名 |
ALIASES
名称 | 值 | 说明 |
---|---|---|
能力 |
fuchsia.io/Operations |
功能是节点的固有属性。它们指定它支持的操作。 在不支持操作的节点上调用操作会导致 |
ExtendedAttributeName |
vector [MAX_ATTRIBUTE_NAME ] |
扩展属性的名称。它不能包含任何 null 字节。其他 超过该大小和最大尺寸时,不会对 名称。 添加时间:18
|
ID |
uint64 |
用于标识节点的类型(如果实现支持 唯一节点 ID。 唯一性保证客户端通常会呈现一个目录树
将多个后备实现实例组合在一起。ID
只有在相应的实例中才是唯一的。
它们的边界在紫红紫色上非常隐含,这是由于
可透明地转发目录代理。这对客户来说可能很常见
在遍历目录树时观察相同的 fuchsia.fs/FilesystemInfo.fs_id 字段可用于消除歧义 来自不同后备实例的 ID。 |
名称 |
string [MAX_NAME_LENGTH ] |
节点名称的类型,即单个路径组成部分。
例如: 不变量有效的节点名称必须满足以下条件:
|
路径 |
string [MAX_PATH_LENGTH ] |
路径是包含一个或多个组成部分的字符串,以“/”分隔。
例如: 不变量有效路径必须满足以下条件:
路径应在客户端转换为其规范形式。
例如,客户端应将 |
权利 |
fuchsia.io/Operations |
权限是特定于连接的属性。它们用于限制对 包括可被授予新连接的那些连接。 在没有相应正确权限的情况下调用操作会导致 |
SymlinkTarget |
vector [MAX_PATH_LENGTH ] |
|
令牌 |
zx/Handle |
用于标识到节点的连接的类型。 它表示一项功能:对具有关联权限的节点的引用。 |
转移 |
vector [MAX_TRANSFER_SIZE ] |
用于读取/写入操作的字节矢量类型。 |