+/**
+ @brief Access control check for binding UNIX domain socket
+ @param cred Subject credential
+ @param dvp Directory vnode
+ @param dlabel Policy label for dvp
+ @param cnp Component name for dvp
+ @param vap vnode attributes for vap
+
+ Determine whether the subject identified by the credential can perform a
+ bind operation on a UNIX domain socket with the passed parent directory,
+ passed name information, and passed attribute information.
+
+ @return Return 0 if access is granted, otherwise an appropriate value for
+ errno should be returned. Suggested failure: EACCES for label mismatch or
+ EPERM for lack of privilege.
+*/
+typedef int mpo_vnode_check_uipc_bind_t(
+ kauth_cred_t cred,
+ struct vnode *dvp,
+ struct label *dlabel,
+ struct componentname *cnp,
+ struct vnode_attr *vap
+);
+/**
+ @brief Access control check for connecting UNIX domain socket
+ @param cred Subject credential
+ @param vp Object vnode
+ @param label Policy label associated with vp
+
+ Determine whether the subject identified by the credential can perform a
+ connect operation on the passed UNIX domain socket vnode.
+
+ @return Return 0 if access is granted, otherwise an appropriate value for
+ errno should be returned. Suggested failure: EACCES for label mismatch or
+ EPERM for lack of privilege.
+*/
+typedef int mpo_vnode_check_uipc_connect_t(
+ kauth_cred_t cred,
+ struct vnode *vp,
+ struct label *label
+);