| ... | @@ -482,91 +482,98 @@ pub const NOTE_MACH_CONTINUOUS_TIME = 0x00000080; | ... | @@ -482,91 +482,98 @@ pub const NOTE_MACH_CONTINUOUS_TIME = 0x00000080; |
| 482 | /// data is mach absolute time units | 482 | /// data is mach absolute time units |
| 483 | pub const NOTE_MACHTIME = 0x00000100; | 483 | pub const NOTE_MACHTIME = 0x00000100; |
| 484 | | 484 | |
| 485 | pub const AF_UNSPEC: c_int = 0; | 485 | pub const AF_UNSPEC = 0; |
| 486 | pub const AF_LOCAL: c_int = 1; | 486 | pub const AF_LOCAL = 1; |
| 487 | pub const AF_UNIX: c_int = AF_LOCAL; | 487 | pub const AF_UNIX = AF_LOCAL; |
| 488 | pub const AF_INET: c_int = 2; | 488 | pub const AF_INET = 2; |
| 489 | pub const AF_SYS_CONTROL: c_int = 2; | 489 | pub const AF_SYS_CONTROL = 2; |
| 490 | pub const AF_IMPLINK: c_int = 3; | 490 | pub const AF_IMPLINK = 3; |
| 491 | pub const AF_PUP: c_int = 4; | 491 | pub const AF_PUP = 4; |
| 492 | pub const AF_CHAOS: c_int = 5; | 492 | pub const AF_CHAOS = 5; |
| 493 | pub const AF_NS: c_int = 6; | 493 | pub const AF_NS = 6; |
| 494 | pub const AF_ISO: c_int = 7; | 494 | pub const AF_ISO = 7; |
| 495 | pub const AF_OSI: c_int = AF_ISO; | 495 | pub const AF_OSI = AF_ISO; |
| 496 | pub const AF_ECMA: c_int = 8; | 496 | pub const AF_ECMA = 8; |
| 497 | pub const AF_DATAKIT: c_int = 9; | 497 | pub const AF_DATAKIT = 9; |
| 498 | pub const AF_CCITT: c_int = 10; | 498 | pub const AF_CCITT = 10; |
| 499 | pub const AF_SNA: c_int = 11; | 499 | pub const AF_SNA = 11; |
| 500 | pub const AF_DECnet: c_int = 12; | 500 | pub const AF_DECnet = 12; |
| 501 | pub const AF_DLI: c_int = 13; | 501 | pub const AF_DLI = 13; |
| 502 | pub const AF_LAT: c_int = 14; | 502 | pub const AF_LAT = 14; |
| 503 | pub const AF_HYLINK: c_int = 15; | 503 | pub const AF_HYLINK = 15; |
| 504 | pub const AF_APPLETALK: c_int = 16; | 504 | pub const AF_APPLETALK = 16; |
| 505 | pub const AF_ROUTE: c_int = 17; | 505 | pub const AF_ROUTE = 17; |
| 506 | pub const AF_LINK: c_int = 18; | 506 | pub const AF_LINK = 18; |
| 507 | pub const AF_XTP: c_int = 19; | 507 | pub const AF_XTP = 19; |
| 508 | pub const AF_COIP: c_int = 20; | 508 | pub const AF_COIP = 20; |
| 509 | pub const AF_CNT: c_int = 21; | 509 | pub const AF_CNT = 21; |
| 510 | pub const AF_RTIP: c_int = 22; | 510 | pub const AF_RTIP = 22; |
| 511 | pub const AF_IPX: c_int = 23; | 511 | pub const AF_IPX = 23; |
| 512 | pub const AF_SIP: c_int = 24; | 512 | pub const AF_SIP = 24; |
| 513 | pub const AF_PIP: c_int = 25; | 513 | pub const AF_PIP = 25; |
| 514 | pub const AF_ISDN: c_int = 28; | 514 | pub const AF_ISDN = 28; |
| 515 | pub const AF_E164: c_int = AF_ISDN; | 515 | pub const AF_E164 = AF_ISDN; |
| 516 | pub const AF_KEY: c_int = 29; | 516 | pub const AF_KEY = 29; |
| 517 | pub const AF_INET6: c_int = 30; | 517 | pub const AF_INET6 = 30; |
| 518 | pub const AF_NATM: c_int = 31; | 518 | pub const AF_NATM = 31; |
| 519 | pub const AF_SYSTEM: c_int = 32; | 519 | pub const AF_SYSTEM = 32; |
| 520 | pub const AF_NETBIOS: c_int = 33; | 520 | pub const AF_NETBIOS = 33; |
| 521 | pub const AF_PPP: c_int = 34; | 521 | pub const AF_PPP = 34; |
| 522 | pub const AF_MAX: c_int = 40; | 522 | pub const AF_MAX = 40; |
| 523 | | 523 | |
| 524 | pub const PF_UNSPEC: c_int = AF_UNSPEC; | 524 | pub const PF_UNSPEC = AF_UNSPEC; |
| 525 | pub const PF_LOCAL: c_int = AF_LOCAL; | 525 | pub const PF_LOCAL = AF_LOCAL; |
| 526 | pub const PF_UNIX: c_int = PF_LOCAL; | 526 | pub const PF_UNIX = PF_LOCAL; |
| 527 | pub const PF_INET: c_int = AF_INET; | 527 | pub const PF_INET = AF_INET; |
| 528 | pub const PF_IMPLINK: c_int = AF_IMPLINK; | 528 | pub const PF_IMPLINK = AF_IMPLINK; |
| 529 | pub const PF_PUP: c_int = AF_PUP; | 529 | pub const PF_PUP = AF_PUP; |
| 530 | pub const PF_CHAOS: c_int = AF_CHAOS; | 530 | pub const PF_CHAOS = AF_CHAOS; |
| 531 | pub const PF_NS: c_int = AF_NS; | 531 | pub const PF_NS = AF_NS; |
| 532 | pub const PF_ISO: c_int = AF_ISO; | 532 | pub const PF_ISO = AF_ISO; |
| 533 | pub const PF_OSI: c_int = AF_ISO; | 533 | pub const PF_OSI = AF_ISO; |
| 534 | pub const PF_ECMA: c_int = AF_ECMA; | 534 | pub const PF_ECMA = AF_ECMA; |
| 535 | pub const PF_DATAKIT: c_int = AF_DATAKIT; | 535 | pub const PF_DATAKIT = AF_DATAKIT; |
| 536 | pub const PF_CCITT: c_int = AF_CCITT; | 536 | pub const PF_CCITT = AF_CCITT; |
| 537 | pub const PF_SNA: c_int = AF_SNA; | 537 | pub const PF_SNA = AF_SNA; |
| 538 | pub const PF_DECnet: c_int = AF_DECnet; | 538 | pub const PF_DECnet = AF_DECnet; |
| 539 | pub const PF_DLI: c_int = AF_DLI; | 539 | pub const PF_DLI = AF_DLI; |
| 540 | pub const PF_LAT: c_int = AF_LAT; | 540 | pub const PF_LAT = AF_LAT; |
| 541 | pub const PF_HYLINK: c_int = AF_HYLINK; | 541 | pub const PF_HYLINK = AF_HYLINK; |
| 542 | pub const PF_APPLETALK: c_int = AF_APPLETALK; | 542 | pub const PF_APPLETALK = AF_APPLETALK; |
| 543 | pub const PF_ROUTE: c_int = AF_ROUTE; | 543 | pub const PF_ROUTE = AF_ROUTE; |
| 544 | pub const PF_LINK: c_int = AF_LINK; | 544 | pub const PF_LINK = AF_LINK; |
| 545 | pub const PF_XTP: c_int = AF_XTP; | 545 | pub const PF_XTP = AF_XTP; |
| 546 | pub const PF_COIP: c_int = AF_COIP; | 546 | pub const PF_COIP = AF_COIP; |
| 547 | pub const PF_CNT: c_int = AF_CNT; | 547 | pub const PF_CNT = AF_CNT; |
| 548 | pub const PF_SIP: c_int = AF_SIP; | 548 | pub const PF_SIP = AF_SIP; |
| 549 | pub const PF_IPX: c_int = AF_IPX; | 549 | pub const PF_IPX = AF_IPX; |
| 550 | pub const PF_RTIP: c_int = AF_RTIP; | 550 | pub const PF_RTIP = AF_RTIP; |
| 551 | pub const PF_PIP: c_int = AF_PIP; | 551 | pub const PF_PIP = AF_PIP; |
| 552 | pub const PF_ISDN: c_int = AF_ISDN; | 552 | pub const PF_ISDN = AF_ISDN; |
| 553 | pub const PF_KEY: c_int = AF_KEY; | 553 | pub const PF_KEY = AF_KEY; |
| 554 | pub const PF_INET6: c_int = AF_INET6; | 554 | pub const PF_INET6 = AF_INET6; |
| 555 | pub const PF_NATM: c_int = AF_NATM; | 555 | pub const PF_NATM = AF_NATM; |
| 556 | pub const PF_SYSTEM: c_int = AF_SYSTEM; | 556 | pub const PF_SYSTEM = AF_SYSTEM; |
| 557 | pub const PF_NETBIOS: c_int = AF_NETBIOS; | 557 | pub const PF_NETBIOS = AF_NETBIOS; |
| 558 | pub const PF_PPP: c_int = AF_PPP; | 558 | pub const PF_PPP = AF_PPP; |
| 559 | pub const PF_MAX: c_int = AF_MAX; | 559 | pub const PF_MAX = AF_MAX; |
| 560 | | 560 | |
| 561 | pub const SYSPROTO_EVENT: c_int = 1; | 561 | pub const SYSPROTO_EVENT = 1; |
| 562 | pub const SYSPROTO_CONTROL: c_int = 2; | 562 | pub const SYSPROTO_CONTROL = 2; |
| 563 | | 563 | |
| 564 | pub const SOCK_STREAM: c_int = 1; | 564 | pub const SOCK_STREAM = 1; |
| 565 | pub const SOCK_DGRAM: c_int = 2; | 565 | pub const SOCK_DGRAM = 2; |
| 566 | pub const SOCK_RAW: c_int = 3; | 566 | pub const SOCK_RAW = 3; |
| 567 | pub const SOCK_RDM: c_int = 4; | 567 | pub const SOCK_RDM = 4; |
| 568 | pub const SOCK_SEQPACKET: c_int = 5; | 568 | pub const SOCK_SEQPACKET = 5; |
| 569 | pub const SOCK_MAXADDRLEN: c_int = 255; | 569 | pub const SOCK_MAXADDRLEN = 255; |
| | 570 | |
| | 571 | pub const IPPROTO_ICMP = 1; |
| | 572 | pub const IPPROTO_ICMPV6 = 58; |
| | 573 | pub const IPPROTO_TCP = 6; |
| | 574 | pub const IPPROTO_UDP = 17; |
| | 575 | pub const IPPROTO_IP = 0; |
| | 576 | pub const IPPROTO_IPV6 = 41; |
| 570 | | 577 | |
| 571 | fn wstatus(x: i32) i32 { | 578 | fn wstatus(x: i32) i32 { |
| 572 | return x & 0o177; | 579 | return x & 0o177; |
| ... | @@ -605,6 +612,11 @@ pub fn abort() noreturn { | ... | @@ -605,6 +612,11 @@ pub fn abort() noreturn { |
| 605 | c.abort(); | 612 | c.abort(); |
| 606 | } | 613 | } |
| 607 | | 614 | |
| | 615 | // bind(int socket, const struct sockaddr *address, socklen_t address_len) |
| | 616 | pub fn bind(fd: i32, addr: *const sockaddr, len: socklen_t) usize { |
| | 617 | return errnoWrap(c.bind(@bitCast(c_int, fd), addr, len)); |
| | 618 | } |
| | 619 | |
| 608 | pub fn exit(code: i32) noreturn { | 620 | pub fn exit(code: i32) noreturn { |
| 609 | c.exit(code); | 621 | c.exit(code); |
| 610 | } | 622 | } |
| ... | @@ -805,6 +817,20 @@ pub fn sigaction(sig: u5, noalias act: *const Sigaction, noalias oact: ?*Sigacti | ... | @@ -805,6 +817,20 @@ pub fn sigaction(sig: u5, noalias act: *const Sigaction, noalias oact: ?*Sigacti |
| 805 | return result; | 817 | return result; |
| 806 | } | 818 | } |
| 807 | | 819 | |
| | 820 | pub fn socket(domain: u32, socket_type: u32, protocol: u32) usize { |
| | 821 | return errnoWrap(c.socket(@bitCast(c_int, domain), @bitCast(c_int, socket_type), @bitCast(c_int, protocol))); |
| | 822 | } |
| | 823 | |
| | 824 | pub const iovec = extern struct { |
| | 825 | iov_base: [*]u8, |
| | 826 | iov_len: usize, |
| | 827 | }; |
| | 828 | |
| | 829 | pub const iovec_const = extern struct { |
| | 830 | iov_base: [*]const u8, |
| | 831 | iov_len: usize, |
| | 832 | }; |
| | 833 | |
| 808 | pub const sigset_t = c.sigset_t; | 834 | pub const sigset_t = c.sigset_t; |
| 809 | pub const empty_sigset = sigset_t(0); | 835 | pub const empty_sigset = sigset_t(0); |
| 810 | | 836 | |
| ... | @@ -812,8 +838,13 @@ pub const timespec = c.timespec; | ... | @@ -812,8 +838,13 @@ pub const timespec = c.timespec; |
| 812 | pub const Stat = c.Stat; | 838 | pub const Stat = c.Stat; |
| 813 | pub const dirent = c.dirent; | 839 | pub const dirent = c.dirent; |
| 814 | | 840 | |
| | 841 | pub const in_port_t = c.in_port_t; |
| 815 | pub const sa_family_t = c.sa_family_t; | 842 | pub const sa_family_t = c.sa_family_t; |
| | 843 | pub const socklen_t = c.socklen_t; |
| | 844 | |
| 816 | pub const sockaddr = c.sockaddr; | 845 | pub const sockaddr = c.sockaddr; |
| | 846 | pub const sockaddr_in = c.sockaddr_in; |
| | 847 | pub const sockaddr_in6 = c.sockaddr_in6; |
| 817 | | 848 | |
| 818 | /// Renamed from `kevent` to `Kevent` to avoid conflict with the syscall. | 849 | /// Renamed from `kevent` to `Kevent` to avoid conflict with the syscall. |
| 819 | pub const Kevent = c.Kevent; | 850 | pub const Kevent = c.Kevent; |