Domain/OS PROT Trait

Domain/OS PROT Trait

This trait is undocumented. It is described below, click here for a replacement header file.

The entry point vector:

typedef struct prot_$epv
{
    void 
    (*set_rights)   /* set read/write/execute/search/owner/set-id rights */
    (
        void *&handle,                          /* the object handle */
        prot_$rights_vec_t rights_vector,       /* the rights for person, project, organization, world. */
        prot_$user_class_set_t &valid_entries,  /* set only *these* rights */
        status_$t *status
    );

    void
    (*inq_rights)
    (
        void *&handle,
        prot_$rights_vec_t rights_vector,       /* store rights here */
        prot_$user_class_set_t *valid_entries,  /* only *these* rights are significant */
        status_$t *status
    );

    void
    (*set_user_class_ids)   /* set owner/project/organization IDs */
    (
        void *&handle,
        prot_$user_class_set_t &valid_entries,  /* set only *these* IDs */
        prot_$user_class_id_vec_t uids,         /* the IDs */
        status_$t *status
    );

    void
    (*inq_user_class_ids)
    (
        void *&handle,
        prot_$user_class_set_t *valid_entries,  /* only *these* IDs are recognized */
        prot_$user_class_id_vec_t uids,         /* store IDs here */
        status_$t *status
    );
} prot_$epv;

The prot_trait structure

A source file is here.
trait_$t prot_$trait =
{
    4,                          /* four calls */
    { 3108BE90.60007123 },      /* prot trait UID */
    { { 3108BE90.70007123 }, unimp_prot_trait_$4_args },    /* set_rights */
    { { 3108BE90.80007123 }, unimp_prot_trait_$4_args },    /* inq_rights */
    { { 3108BE90.90007123 }, unimp_prot_trait_$4_args },    /* set_user_class_ids */
    { { 3108BE90.A0007123 }, unimp_prot_trait_$4_args },    /* inq_user_class_ids */
};