r14851: Make BOOL, False and True simple aliases to the POSIX-defined
[jra/samba/.git] / source4 / include / core.h
index 08fc2c48bad403f6b2f21f2cc517588cd0e6d802..f334c3df42f39090707e220944dbae699db95076 100644 (file)
@@ -3,11 +3,8 @@
    Core Samba data types
 
    Copyright (C) Andrew Tridgell              1992-2000
-   Copyright (C) John H Terpstra              1996-2002
-   Copyright (C) Luke Kenneth Casson Leighton 1996-2000
-   Copyright (C) Paul Ashton                  1998-2000
-   Copyright (C) Simo Sorce                   2001-2002
-   Copyright (C) Martin Pool                 2002
+   Copyright (C) Stefan Metzmacher                       2004
+   Copyright (C) Jelmer Vernooij                         2005
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #ifndef _SAMBA_CORE_H
 #define _SAMBA_CORE_H
 
-/*
- * Define VOLATILE if needed.
- */
+#include "libcli/util/nt_status.h"
 
-#define False (0)
-#define True (1)
-#define Auto (2)
+typedef bool BOOL;
 
-typedef int BOOL;
+#define False false
+#define True true
 
 /* used to hold an arbitrary blob of data */
 typedef struct datablob {
@@ -55,6 +49,52 @@ struct data_blob_list_item {
 /* 64 bit time (100 nanosec) 1601 - cifs6.txt, section 3.5, page 30, 4 byte aligned */
 typedef uint64_t NTTIME;
 
+/*
+  we use struct ipv4_addr to avoid having to include all the
+  system networking headers everywhere
+*/
+struct ipv4_addr {
+       uint32_t addr;
+};
+
 typedef NTSTATUS (*init_module_fn) (void);
 
-#endif /* _SMB_H */
+/* 
+   use the same structure for dom_sid2 as dom_sid. A dom_sid2 is really
+   just a dom sid, but with the sub_auths represented as a conformant
+   array. As with all in-structure conformant arrays, the array length
+   is placed before the start of the structure. That's what gives rise
+   to the extra num_auths elemenent. We don't want the Samba code to
+   have to bother with such esoteric NDR details, so its easier to just
+   define it as a dom_sid and use pidl magic to make it all work. It
+   just means you need to mark a sid as a "dom_sid2" in the IDL when you
+   know it is of the conformant array variety
+*/
+#define dom_sid2 dom_sid
+
+/* same struct as dom_sid but inside a 28 bytes fixed buffer in NDR */
+#define dom_sid28 dom_sid
+
+/* protocol types. It assumes that higher protocols include lower protocols
+   as subsets. FIXME: Move to one of the smb-specific headers */
+enum protocol_types {
+       PROTOCOL_NONE,
+       PROTOCOL_CORE,
+       PROTOCOL_COREPLUS,
+       PROTOCOL_LANMAN1,
+       PROTOCOL_LANMAN2,
+       PROTOCOL_NT1,
+       PROTOCOL_SMB2
+};
+
+/* passed to br lock code. FIXME: Move to one of the smb-specific headers */
+enum brl_type {
+       READ_LOCK,
+       WRITE_LOCK,
+       PENDING_READ_LOCK,
+       PENDING_WRITE_LOCK
+};
+
+
+
+#endif /* _SAMBA_CORE_H */