root/source4/lib/tdr/tdr.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* 
   2    Unix SMB/CIFS implementation.
   3    TDR definitions
   4    Copyright (C) Jelmer Vernooij 2005
   5    
   6    This program is free software; you can redistribute it and/or modify
   7    it under the terms of the GNU General Public License as published by
   8    the Free Software Foundation; either version 3 of the License, or
   9    (at your option) any later version.
  10    
  11    This program is distributed in the hope that it will be useful,
  12    but WITHOUT ANY WARRANTY; without even the implied warranty of
  13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14    GNU General Public License for more details.
  15    
  16    You should have received a copy of the GNU General Public License
  17    along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18 */
  19 
  20 #ifndef __TDR_H__
  21 #define __TDR_H__
  22 
  23 #include <talloc.h>
  24 #include "../lib/util/charset/charset.h"
  25 
  26 #define TDR_BIG_ENDIAN                  0x01
  27 #define TDR_ALIGN2                      0x02
  28 #define TDR_ALIGN4                      0x04
  29 #define TDR_ALIGN8                      0x08
  30 #define TDR_REMAINING                   0x10
  31 
  32 struct tdr_pull {
  33         DATA_BLOB data;
  34         uint32_t offset;
  35         int flags;
  36         struct smb_iconv_convenience *iconv_convenience;
  37 };
  38 
  39 struct tdr_push {
  40         DATA_BLOB data;
  41         int flags;
  42         struct smb_iconv_convenience *iconv_convenience;
  43 };
  44 
  45 struct tdr_print {
  46         int level;
  47         void (*print)(struct tdr_print *, const char *, ...);
  48         int flags;
  49 };
  50 
  51 #define TDR_CHECK(call) do { NTSTATUS _status; \
  52                              _status = call; \
  53                              if (!NT_STATUS_IS_OK(_status)) \
  54                                 return _status; \
  55                         } while (0)
  56 
  57 #define TDR_ALLOC(ctx, s, n) do { \
  58                                (s) = talloc_array_size(ctx, sizeof(*(s)), n); \
  59                            if ((n) && !(s)) return NT_STATUS_NO_MEMORY; \
  60                            } while (0)
  61 
  62 typedef NTSTATUS (*tdr_push_fn_t) (struct tdr_push *, const void *);
  63 typedef NTSTATUS (*tdr_pull_fn_t) (struct tdr_pull *, TALLOC_CTX *, void *);
  64 
  65 #include "lib/tdr/tdr_proto.h"
  66 
  67 #endif /* __TDR_H__ */

/* [<][>][^][v][top][bottom][index][help] */