… | |
… | |
615 | } |
615 | } |
616 | |
616 | |
617 | ///////////////////////////////////////////////////////////////////////////// |
617 | ///////////////////////////////////////////////////////////////////////////// |
618 | // C API |
618 | // C API |
619 | |
619 | |
|
|
620 | #ifndef NO_C_API |
|
|
621 | |
620 | #define DEFINE_METHOD(retval, name, args1, args2) \ |
622 | #define DEFINE_METHOD(retval, name, args1, args2) \ |
621 | extern "C" retval ptytty_ ## name args1 \ |
623 | extern "C" retval ptytty_ ## name args1 \ |
622 | { return ((struct ptytty *)ptytty)->name args2; } |
624 | { return ((struct ptytty *)ptytty)->name args2; } |
623 | |
625 | |
624 | DEFINE_METHOD(int,pty,(void *ptytty),) |
626 | DEFINE_METHOD(int,pty,(void *ptytty),) |
… | |
… | |
632 | |
634 | |
633 | #define DEFINE_STATIC(retval, name, args) \ |
635 | #define DEFINE_STATIC(retval, name, args) \ |
634 | extern "C" retval ptytty_ ## name args \ |
636 | extern "C" retval ptytty_ ## name args \ |
635 | { return ptytty::name args; } |
637 | { return ptytty::name args; } |
636 | |
638 | |
|
|
639 | DEFINE_STATIC(void,drop_privileges,()) |
|
|
640 | DEFINE_STATIC(void,use_helper,()) |
|
|
641 | |
637 | DEFINE_STATIC(void,init,()) |
642 | DEFINE_STATIC(void,init,()) |
638 | DEFINE_STATIC(void *,create,()) |
643 | DEFINE_STATIC(void *,create,()) |
639 | |
644 | |
640 | void ptytty_delete (void *ptytty) |
645 | void ptytty_delete (void *ptytty) |
641 | { |
646 | { |
642 | delete (struct ptytty *)ptytty; |
647 | delete (struct ptytty *)ptytty; |
643 | } |
648 | } |
644 | |
649 | |
645 | DEFINE_STATIC(void,drop_privileges,()) |
650 | // send_fd, recv_fd not exposed |
646 | DEFINE_STATIC(void,use_helper,()) |
|
|
647 | |
651 | |
|
|
652 | #endif |