Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 uid=1(daemon) gid=1(daemon) grupos=1(daemon) Safe-mode: OFF (not secure) /opt/lampp/share/doc/freetds-0.91/reference/ drwxr-xr-x | |
| Viewing file: Select action/file-type: /home/jklowden/releases/freetds-0.91/include/tdsbytes.h00001 /* FreeTDS - Library of routines accessing Sybase and Microsoft databases 00002 * Copyright (C) 2005-2008 Frediano Ziglio 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Library General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Library General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Library General Public 00015 * License along with this library; if not, write to the 00016 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00017 * Boston, MA 02111-1307, USA. 00018 */ 00019 00020 #ifndef _tdsbytes_h_ 00021 #define _tdsbytes_h_ 00022 00023 /* $Id: tdsbytes.h,v 1.5 2010/07/17 20:05:52 freddy77 Exp $ */ 00024 00025 #ifndef _tds_h_ 00026 #error tds.h must be included before tdsbytes.h 00027 #endif 00028 00029 /* 00030 * read a word of n bytes aligned, architecture dependent endian 00031 * TDS_GET_An 00032 * read a word of n bytes aligned, little endian 00033 * TDS_GET_AnLE 00034 * read a word of n bytes aligned, big endian 00035 * TDS_GET_AnBE 00036 * read a word of n bytes unaligned, architecture dependent endian 00037 * TDS_GET_UAn 00038 * read a word of n bytes unaligned, little endian 00039 * TDS_GET_UAnLE 00040 * read a word of n bytes unaligned, big endian 00041 * TDS_GET_UAnBE 00042 */ 00043 00044 /* TODO optimize (use swap, unaligned platforms) */ 00045 00046 /* one byte, easy... */ 00047 #define TDS_GET_A1LE(ptr) (((TDS_UCHAR*)(ptr))[0]) 00048 #define TDS_GET_A1BE(ptr) TDS_GET_A1LE(ptr) 00049 #define TDS_GET_UA1LE(ptr) TDS_GET_A1LE(ptr) 00050 #define TDS_GET_UA1BE(ptr) TDS_GET_A1LE(ptr) 00051 00052 #define TDS_PUT_A1LE(ptr,val) do { ((TDS_UCHAR*)(ptr))[0] = (val); } while(0) 00053 #define TDS_PUT_A1BE(ptr,val) TDS_PUT_A1LE(ptr,val) 00054 #define TDS_PUT_UA1LE(ptr,val) TDS_PUT_A1LE(ptr,val) 00055 #define TDS_PUT_UA1BE(ptr,val) TDS_PUT_A1LE(ptr,val) 00056 00057 /* two bytes */ 00058 #define TDS_GET_UA2LE(ptr) (((TDS_UCHAR*)(ptr))[1] * 0x100u + ((TDS_UCHAR*)(ptr))[0]) 00059 #define TDS_GET_UA2BE(ptr) (((TDS_UCHAR*)(ptr))[0] * 0x100u + ((TDS_UCHAR*)(ptr))[1]) 00060 #define TDS_GET_A2LE(ptr) TDS_GET_UA2LE(ptr) 00061 #define TDS_GET_A2BE(ptr) TDS_GET_UA2BE(ptr) 00062 00063 #define TDS_PUT_UA2LE(ptr,val) do {\ 00064 ((TDS_UCHAR*)(ptr))[1] = (TDS_UCHAR)((val)>>8); ((TDS_UCHAR*)(ptr))[0] = (TDS_UCHAR)(val); } while(0) 00065 #define TDS_PUT_UA2BE(ptr,val) do {\ 00066 ((TDS_UCHAR*)(ptr))[0] = (TDS_UCHAR)((val)>>8); ((TDS_UCHAR*)(ptr))[1] = (TDS_UCHAR)(val); } while(0) 00067 #define TDS_PUT_A2LE(ptr,val) TDS_PUT_UA2LE(ptr,val) 00068 #define TDS_PUT_A2BE(ptr,val) TDS_PUT_UA2BE(ptr,val) 00069 00070 /* four bytes */ 00071 #define TDS_GET_UA4LE(ptr) \ 00072 (((TDS_UCHAR*)(ptr))[3] * 0x1000000u + ((TDS_UCHAR*)(ptr))[2] * 0x10000u +\ 00073 ((TDS_UCHAR*)(ptr))[1] * 0x100u + ((TDS_UCHAR*)(ptr))[0]) 00074 #define TDS_GET_UA4BE(ptr) \ 00075 (((TDS_UCHAR*)(ptr))[0] * 0x1000000u + ((TDS_UCHAR*)(ptr))[1] * 0x10000u +\ 00076 ((TDS_UCHAR*)(ptr))[2] * 0x100u + ((TDS_UCHAR*)(ptr))[3]) 00077 #define TDS_GET_A4LE(ptr) TDS_GET_UA4LE(ptr) 00078 #define TDS_GET_A4BE(ptr) TDS_GET_UA4BE(ptr) 00079 00080 #define TDS_PUT_UA4LE(ptr,val) do {\ 00081 ((TDS_UCHAR*)(ptr))[3] = (TDS_UCHAR)((val)>>24); ((TDS_UCHAR*)(ptr))[2] = (TDS_UCHAR)((val)>>16);\ 00082 ((TDS_UCHAR*)(ptr))[1] = (TDS_UCHAR)((val)>>8); ((TDS_UCHAR*)(ptr))[0] = (TDS_UCHAR)(val); } while(0) 00083 #define TDS_PUT_UA4BE(ptr,val) do {\ 00084 ((TDS_UCHAR*)(ptr))[0] = (TDS_UCHAR)((val)>>24); ((TDS_UCHAR*)(ptr))[1] = (TDS_UCHAR)((val)>>16);\ 00085 ((TDS_UCHAR*)(ptr))[2] = (TDS_UCHAR)((val)>>8); ((TDS_UCHAR*)(ptr))[3] = (TDS_UCHAR)(val); } while(0) 00086 #define TDS_PUT_A4LE(ptr,val) TDS_PUT_UA4LE(ptr,val) 00087 #define TDS_PUT_A4BE(ptr,val) TDS_PUT_UA4BE(ptr,val) 00088 00089 /* architecture dependent */ 00090 #ifdef WORDS_BIGENDIAN 00091 # define TDS_GET_A1(ptr) TDS_GET_A1BE(ptr) 00092 # define TDS_GET_UA1(ptr) TDS_GET_UA1BE(ptr) 00093 # define TDS_GET_A2(ptr) TDS_GET_A2BE(ptr) 00094 # define TDS_GET_UA2(ptr) TDS_GET_UA2BE(ptr) 00095 # define TDS_GET_A4(ptr) TDS_GET_A4BE(ptr) 00096 # define TDS_GET_UA4(ptr) TDS_GET_UA4BE(ptr) 00097 # undef TDS_GET_A2BE 00098 # undef TDS_GET_A4BE 00099 # define TDS_GET_A2BE(ptr) (*((TDS_USMALLINT*)(ptr))) 00100 # define TDS_GET_A4BE(ptr) (*((TDS_UINT*)(ptr))) 00101 00102 # define TDS_PUT_A1(ptr,val) TDS_PUT_A1BE(ptr,val) 00103 # define TDS_PUT_UA1(ptr,val) TDS_PUT_UA1BE(ptr,val) 00104 # define TDS_PUT_A2(ptr,val) TDS_PUT_A2BE(ptr,val) 00105 # define TDS_PUT_UA2(ptr,val) TDS_PUT_UA2BE(ptr,val) 00106 # define TDS_PUT_A4(ptr,val) TDS_PUT_A4BE(ptr,val) 00107 # define TDS_PUT_UA4(ptr,val) TDS_PUT_UA4BE(ptr,val) 00108 # undef TDS_PUT_A2BE 00109 # undef TDS_PUT_A4BE 00110 # define TDS_PUT_A2BE(ptr,val) (*((TDS_USMALLINT*)(ptr)) = (val)) 00111 # define TDS_PUT_A4BE(ptr,val) (*((TDS_UINT*)(ptr)) = (val)) 00112 # define TDS_HOST2LE(val) TDS_BYTE_SWAP16(val) 00113 # define TDS_HOST4LE(val) TDS_BYTE_SWAP32(val) 00114 # define TDS_HOST2BE(val) (val) 00115 # define TDS_HOST4BE(val) (val) 00116 #else 00117 # define TDS_GET_A1(ptr) TDS_GET_A1LE(ptr) 00118 # define TDS_GET_UA1(ptr) TDS_GET_UA1LE(ptr) 00119 # define TDS_GET_A2(ptr) TDS_GET_A2LE(ptr) 00120 # define TDS_GET_UA2(ptr) TDS_GET_UA2LE(ptr) 00121 # define TDS_GET_A4(ptr) TDS_GET_A4LE(ptr) 00122 # define TDS_GET_UA4(ptr) TDS_GET_UA4LE(ptr) 00123 # undef TDS_GET_A2LE 00124 # undef TDS_GET_A4LE 00125 # define TDS_GET_A2LE(ptr) (*((TDS_USMALLINT*)(ptr))) 00126 # define TDS_GET_A4LE(ptr) (*((TDS_UINT*)(ptr))) 00127 00128 # define TDS_PUT_A1(ptr,val) TDS_PUT_A1LE(ptr,val) 00129 # define TDS_PUT_UA1(ptr,val) TDS_PUT_UA1LE(ptr,val) 00130 # define TDS_PUT_A2(ptr,val) TDS_PUT_A2LE(ptr,val) 00131 # define TDS_PUT_UA2(ptr,val) TDS_PUT_UA2LE(ptr,val) 00132 # define TDS_PUT_A4(ptr,val) TDS_PUT_A4LE(ptr,val) 00133 # define TDS_PUT_UA4(ptr,val) TDS_PUT_UA4LE(ptr,val) 00134 # undef TDS_PUT_A2LE 00135 # undef TDS_PUT_A4LE 00136 # define TDS_PUT_A2LE(ptr,val) (*((TDS_USMALLINT*)(ptr)) = (val)) 00137 # define TDS_PUT_A4LE(ptr,val) (*((TDS_UINT*)(ptr)) = (val)) 00138 # define TDS_HOST2LE(val) (val) 00139 # define TDS_HOST4LE(val) (val) 00140 # define TDS_HOST2BE(val) TDS_BYTE_SWAP16(val) 00141 # define TDS_HOST4BE(val) TDS_BYTE_SWAP32(val) 00142 #endif 00143 00144 /* these platform support unaligned fetch/store */ 00145 #if defined(__i386__) || defined(__amd64__) || defined(__CRIS__) ||\ 00146 defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__) ||\ 00147 defined(__s390__) || defined(__s390x__) || defined(__m68k__) 00148 # ifdef WORDS_BIGENDIAN 00149 # undef TDS_GET_UA2BE 00150 # undef TDS_GET_UA4BE 00151 # define TDS_GET_UA2BE(ptr) TDS_GET_A2BE(ptr) 00152 # define TDS_GET_UA4BE(ptr) TDS_GET_A4BE(ptr) 00153 00154 # undef TDS_PUT_UA2BE 00155 # undef TDS_PUT_UA4BE 00156 # define TDS_PUT_UA2BE(ptr,val) TDS_PUT_A2BE(ptr,val) 00157 # define TDS_PUT_UA4BE(ptr,val) TDS_PUT_A4BE(ptr,val) 00158 # else 00159 # undef TDS_GET_UA2LE 00160 # undef TDS_GET_UA4LE 00161 # define TDS_GET_UA2LE(ptr) TDS_GET_A2LE(ptr) 00162 # define TDS_GET_UA4LE(ptr) TDS_GET_A4LE(ptr) 00163 00164 # undef TDS_PUT_UA2LE 00165 # undef TDS_PUT_UA4LE 00166 # define TDS_PUT_UA2LE(ptr,val) TDS_PUT_A2LE(ptr,val) 00167 # define TDS_PUT_UA4LE(ptr,val) TDS_PUT_A4LE(ptr,val) 00168 # endif 00169 #endif 00170 00171 #if defined(__linux__) && defined(__GNUC__) && defined(__i386__) 00172 # include <byteswap.h> 00173 # undef TDS_GET_UA2BE 00174 # undef TDS_GET_UA4BE 00175 # define TDS_GET_UA2BE(ptr) ({ TDS_USMALLINT _tds_si = TDS_GET_UA2LE(ptr); bswap_16(_tds_si); }) 00176 # define TDS_GET_UA4BE(ptr) ({ TDS_UINT _tds_i = TDS_GET_UA4LE(ptr); bswap_32(_tds_i); }) 00177 00178 # undef TDS_PUT_UA2BE 00179 # undef TDS_PUT_UA4BE 00180 # define TDS_PUT_UA2BE(ptr,val) do {\ 00181 TDS_USMALLINT _tds_si = bswap_16(val); TDS_PUT_UA2LE(ptr,_tds_si); } while(0) 00182 # define TDS_PUT_UA4BE(ptr,val) do {\ 00183 TDS_UINT _tds_i = bswap_32(val); TDS_PUT_UA4LE(ptr,_tds_i); } while(0) 00184 #endif 00185 00186 #endif Generated on Wed Aug 17 22:22:30 2011 for FreeTDS API by 1.6.3
|
:: Command execute :: | |
--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.9589 ]-- |
