/***********************************************************************/ /* */ /* Applied Type System */ /* */ /***********************************************************************/ /* (* ** ATS/Postiats - Unleashing the Potential of Types! ** Copyright (C) 2010-2015 Hongwei Xi, ATS Trustful Software, Inc. ** All rights reserved ** ** ATS is free software; you can redistribute it and/or modify it under ** the terms of the GNU GENERAL PUBLIC LICENSE (GPL) as published by the ** Free Software Foundation; either version 3, or (at your option) any ** later version. ** ** ATS is distributed in the hope that it will be useful, but WITHOUT ANY ** WARRANTY; without even the implied warranty of MERCHANTABILITY or ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ** for more details. ** ** You should have received a copy of the GNU General Public License ** along with ATS; see the file COPYING. If not, please write to the ** Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ** 02110-1301, USA. *) */ /* ****** ****** */ /* (* Author: Hongwei Xi *) (* Authoremail: gmhwxiATgmailDOTcom *) (* Start time: November, 2014 *) */ /* ****** ****** */ #ifndef \ ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET #define \ ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET /* ****** ****** */ // #include #include // /* ****** ****** */ // /* // // socket address family // typedef unsigned short int sa_family_t; */ // // socket protocol family // typedef unsigned short int sp_family_t; // /* ****** ****** */ #define \ atslib_libats_libc_socket_AF_type socket_AF_type #define \ atslib_libats_libc_socket_PF_type socket_PF_type /* ****** ****** */ // #define \ atslib_libats_libc_bind_err(fd, sa, len) \ bind(fd, (const struct sockaddr*)sa, len) // extern void atslib_libats_libc_bind_exn ( int sockfd, atstype_ptr sa, socklen_t salen ); // end of [atslib_libats_libc_bind_exn] // /* ****** ****** */ // #define \ atslib_libats_libc_listen_err(fd, qsz) listen(fd, qsz) // extern void atslib_libats_libc_listen_exn(int sockfd, int listenqsz); // /* ****** ****** */ // #define \ atslib_libats_libc_connect_err(fd, sa, len) \ connect(fd, (const struct sockaddr*)sa, len) // extern void atslib_libats_libc_connect_exn ( int sockfd, atstype_ptr sa, socklen_t salen ); // end of [atslib_libats_libc_connect_exn] // /* ****** ****** */ // #define \ atslib_libats_libc_accept_err(fd, sa, len) \ accept(fd, (struct sockaddr*)sa, (socklen_t*)len) // #define \ atslib_libats_libc_accept_null_err(fd) atslib_libats_libc_accept_err(fd, 0, 0) // /* ****** ****** */ #define atslib_libats_libc_socket_close(fd) close(fd) /* ****** ****** */ #define atslib_libats_libc_shutdown(fd, how) shutdown(fd, how) /* ****** ****** */ #define \ atslib_libats_libc_socket_read(fd, bufp, bsz) read(fd, (char*)bufp, bsz) #define \ atslib_libats_libc_socket_write(fd, bufp, bsz) write(fd, (const char*)bufp, bsz) /* ****** ****** */ #endif // ifndef ATSLIB_LIBATS_LIBC_CATS_SYS_SOCKET /* ****** ****** */ /* end of [socket.cats] */