| 1 | BEGIN { | 
|---|
| 2 | inheader=0; | 
|---|
| 3 | #  use_ldap_define = 0; | 
|---|
| 4 | current_file=""; | 
|---|
| 5 | if (headername=="") { | 
|---|
| 6 | headername="_PROTO_H_"; | 
|---|
| 7 | } | 
|---|
| 8 |  | 
|---|
| 9 | print "#ifndef",headername | 
|---|
| 10 | print "#define",headername | 
|---|
| 11 | print "" | 
|---|
| 12 | print "/* This file is automatically generated with \"make proto\". DO NOT EDIT */" | 
|---|
| 13 | print "" | 
|---|
| 14 | } | 
|---|
| 15 |  | 
|---|
| 16 | END { | 
|---|
| 17 | print "" | 
|---|
| 18 | print "#endif /* ",headername," */" | 
|---|
| 19 | } | 
|---|
| 20 |  | 
|---|
| 21 | { | 
|---|
| 22 | if (FILENAME!=current_file) { | 
|---|
| 23 | #    if (use_ldap_define) | 
|---|
| 24 | #    { | 
|---|
| 25 | #      print "#endif /* USE_LDAP */" | 
|---|
| 26 | #      use_ldap_define = 0; | 
|---|
| 27 | #    } | 
|---|
| 28 | print "" | 
|---|
| 29 | print "/* The following definitions come from",FILENAME," */" | 
|---|
| 30 | print "" | 
|---|
| 31 | current_file=FILENAME | 
|---|
| 32 | } | 
|---|
| 33 | if (inheader) { | 
|---|
| 34 | if (match($0,"[)][ \t]*$")) { | 
|---|
| 35 | inheader = 0; | 
|---|
| 36 | printf "%s;\n",$0; | 
|---|
| 37 | } else { | 
|---|
| 38 | printf "%s\n",$0; | 
|---|
| 39 | } | 
|---|
| 40 | next; | 
|---|
| 41 | } | 
|---|
| 42 | } | 
|---|
| 43 |  | 
|---|
| 44 | # we handle the loadparm.c fns separately | 
|---|
| 45 |  | 
|---|
| 46 | /^FN_LOCAL_BOOL/ { | 
|---|
| 47 | split($0,a,"[,()]") | 
|---|
| 48 | printf "bool %s(int );\n", a[2] | 
|---|
| 49 | } | 
|---|
| 50 |  | 
|---|
| 51 | /^FN_LOCAL_PARM_BOOL/ { | 
|---|
| 52 | split($0,a,"[,()]") | 
|---|
| 53 | printf "bool %s(const struct share_params *p );\n", a[2] | 
|---|
| 54 | } | 
|---|
| 55 |  | 
|---|
| 56 | /^FN_LOCAL_PARM_INTEGER/ { | 
|---|
| 57 | split($0,a,"[,()]") | 
|---|
| 58 | printf "int %s(const struct share_params *p );\n", a[2] | 
|---|
| 59 | } | 
|---|
| 60 |  | 
|---|
| 61 | /^FN_LOCAL_LIST/ { | 
|---|
| 62 | split($0,a,"[,()]") | 
|---|
| 63 | printf "const char **%s(int );\n", a[2] | 
|---|
| 64 | } | 
|---|
| 65 |  | 
|---|
| 66 | /^FN_LOCAL_STRING/ { | 
|---|
| 67 | split($0,a,"[,()]") | 
|---|
| 68 | printf "char *%s(int );\n", a[2] | 
|---|
| 69 | } | 
|---|
| 70 |  | 
|---|
| 71 | /^FN_LOCAL_PARM_STRING/ { | 
|---|
| 72 | split($0,a,"[,()]") | 
|---|
| 73 | printf "char *%s(const struct share_params *p );\n", a[2] | 
|---|
| 74 | } | 
|---|
| 75 |  | 
|---|
| 76 | /^FN_LOCAL_CONST_STRING/ { | 
|---|
| 77 | split($0,a,"[,()]") | 
|---|
| 78 | printf "const char *%s(int );\n", a[2] | 
|---|
| 79 | } | 
|---|
| 80 |  | 
|---|
| 81 | /^FN_LOCAL_INT/ { | 
|---|
| 82 | split($0,a,"[,()]") | 
|---|
| 83 | printf "int %s(int );\n", a[2] | 
|---|
| 84 | } | 
|---|
| 85 |  | 
|---|
| 86 | /^FN_LOCAL_CHAR/ { | 
|---|
| 87 | split($0,a,"[,()]") | 
|---|
| 88 | printf "char %s(const struct share_params *p );\n", a[2] | 
|---|
| 89 | } | 
|---|
| 90 |  | 
|---|
| 91 | /^FN_GLOBAL_BOOL/ { | 
|---|
| 92 | split($0,a,"[,()]") | 
|---|
| 93 | printf "bool %s(void);\n", a[2] | 
|---|
| 94 | } | 
|---|
| 95 |  | 
|---|
| 96 | /^FN_GLOBAL_LIST/ { | 
|---|
| 97 | split($0,a,"[,()]") | 
|---|
| 98 | printf "const char **%s(void);\n", a[2] | 
|---|
| 99 | } | 
|---|
| 100 |  | 
|---|
| 101 | /^FN_GLOBAL_STRING/ { | 
|---|
| 102 | split($0,a,"[,()]") | 
|---|
| 103 | printf "char *%s(void);\n", a[2] | 
|---|
| 104 | } | 
|---|
| 105 |  | 
|---|
| 106 | /^FN_GLOBAL_CONST_STRING/ { | 
|---|
| 107 | split($0,a,"[,()]") | 
|---|
| 108 | printf "const char *%s(void);\n", a[2] | 
|---|
| 109 | } | 
|---|
| 110 |  | 
|---|
| 111 | /^FN_GLOBAL_INT/ { | 
|---|
| 112 | split($0,a,"[,()]") | 
|---|
| 113 | printf "int %s(void);\n", a[2] | 
|---|
| 114 | } | 
|---|
| 115 |  | 
|---|
| 116 | /^static|^extern/ || !/^[a-zA-Z\_]/ || /[;]/ { | 
|---|
| 117 | next; | 
|---|
| 118 | } | 
|---|
| 119 |  | 
|---|
| 120 | # | 
|---|
| 121 | # We have to split up the start | 
|---|
| 122 | # matching as we now have so many start | 
|---|
| 123 | # types that it can cause some versions | 
|---|
| 124 | # of nawk/awk to choke and fail on | 
|---|
| 125 | # the full match. JRA. | 
|---|
| 126 | # | 
|---|
| 127 |  | 
|---|
| 128 | { | 
|---|
| 129 | gotstart = 0; | 
|---|
| 130 | if( $0 ~ /^const|^connection_struct|^pipes_struct|^smb_np_struct|^file_fd_struct|^files_struct|^connection_struct|^uid_t|^gid_t|^unsigned|^mode_t|^DIR|^user|^int|^pid_t|^ino_t|^off_t|^double/ ) { | 
|---|
| 131 | gotstart = 1; | 
|---|
| 132 | } | 
|---|
| 133 |  | 
|---|
| 134 | if( $0 ~ /^vuser_key|^UNISTR2|^LOCAL_GRP|^DOMAIN_GRP|^SMB_STRUCT_DIRENT|^SEC_ACL|^SEC_DESC|^SEC_DESC_BUF|^DOM_SID|^RPC_HND_NODE|^BYTE/ ) { | 
|---|
| 135 | gotstart = 1; | 
|---|
| 136 | } | 
|---|
| 137 |  | 
|---|
| 138 | if( $0 ~ /^ADS_STRUCT|^ADS_STATUS|^DATA_BLOB|^ASN1_DATA|^TDB_CONTEXT|^TDB_DATA|^smb_ucs2_t|^TALLOC_CTX|^hash_element|^NT_DEVICEMODE|^enum.*\(|^NT_USER_TOKEN|^SAM_ACCOUNT|^NTTIME/ ) { | 
|---|
| 139 | gotstart = 1; | 
|---|
| 140 | } | 
|---|
| 141 |  | 
|---|
| 142 | if( $0 ~ /^smb_iconv_t|^long|^char|^uint|^NTSTATUS|^WERROR|^CLI_POLICY_HND|^struct|^bool|^void|^time|^smb_shm_offset_t|^shm_offset_t|^FILE|^XFILE|^SMB_OFF_T|^size_t|^ssize_t|^SMB_BIG_UINT|^SMB_BIG_INT/ ) { | 
|---|
| 143 | gotstart = 1; | 
|---|
| 144 | } | 
|---|
| 145 |  | 
|---|
| 146 | if( $0 ~ /^SAM_ACCT_INFO_NODE|^SMB_ACL_T|^ADS_MODLIST|^PyObject|^SORTED_TREE|^REGISTRY_HOOK|^REGISTRY_OPS|^REGISTRY_VALUE|^REGVAL_CTR|^DEVICEMODE|^PAC_DATA|^NET_USER_INFO_3|^smb_event_id_t/ ) { | 
|---|
| 147 | gotstart = 1; | 
|---|
| 148 | } | 
|---|
| 149 |  | 
|---|
| 150 | if( $0 ~ /^WINBINDD_PW|^WINBINDD_GR|^NT_PRINTER_INFO_LEVEL_2|^LOGIN_CACHE|^krb5_error_code|^LDAP|^u32|^LUID_ATTR|^NSS_STATUS/ ) { | 
|---|
| 151 | gotstart = 1; | 
|---|
| 152 | } | 
|---|
| 153 |  | 
|---|
| 154 | if( $0 ~ /^NODE_STATUS_STRUCT|^SMB_STRUCT_DIR|^ELOG_TDB|^codepoint_t|^_PUBLIC_|^wbcErr/ ) { | 
|---|
| 155 | gotstart = 1; | 
|---|
| 156 | } | 
|---|
| 157 |  | 
|---|
| 158 | if(!gotstart) { | 
|---|
| 159 | next; | 
|---|
| 160 | } | 
|---|
| 161 | } | 
|---|
| 162 |  | 
|---|
| 163 |  | 
|---|
| 164 | /[(].*[)][ \t]*$/ { | 
|---|
| 165 | printf "%s;\n",$0; | 
|---|
| 166 | next; | 
|---|
| 167 | } | 
|---|
| 168 |  | 
|---|
| 169 | /[(]/ { | 
|---|
| 170 | inheader=1; | 
|---|
| 171 | printf "%s\n",$0; | 
|---|
| 172 | next; | 
|---|
| 173 | } | 
|---|
| 174 |  | 
|---|