Skip to content

Handle door_return errors #25

Description

@robertdfrench

According to DOOR_RETURN(3C), door_return can actually fail and return to the calling process in certain situations:

   Upon successful completion, door_return() does not return to the calling
   process. Otherwise, door_return() returns -1 to the calling process and
   sets errno to indicate the error.

   ...

   The door_return() function fails and returns to the calling process if:

   E2BIG
             Arguments were too big for client.


   EFAULT
             The address of data_ptr or desc_ptr is invalid.


   EINVAL
             Invalid door_return() arguments were passed or a thread is
             bound to a door that no longer exists.


   EMFILE
             The client has too many open descriptors.

So! It would be neat to be able to turn this into a function that produces a Result type

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions