diff options
author | Tim Potter <tpot@samba.org> | 2005-08-02 17:02:25 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2005-08-02 17:02:25 +0000 |
commit | 7bdcb485dd9793e052d2e7bafb27997ffe91c670 (patch) | |
tree | 337233d5234516f6723b37b9967e94742021ffc4 /source/script | |
parent | 5d2cdd319a66720c6ea35769a814550e0d18a70b (diff) | |
download | samba-7bdcb485dd9793e052d2e7bafb27997ffe91c670.tar.gz samba-7bdcb485dd9793e052d2e7bafb27997ffe91c670.tar.xz samba-7bdcb485dd9793e052d2e7bafb27997ffe91c670.zip |
r8925: Start generating header and implementation files for smb_interfaces.h
Diffstat (limited to 'source/script')
-rwxr-xr-x | source/script/build_smb_interfaces.pl | 54 |
1 files changed, 49 insertions, 5 deletions
diff --git a/source/script/build_smb_interfaces.pl b/source/script/build_smb_interfaces.pl index 31309220c15..cc3a3529872 100755 --- a/source/script/build_smb_interfaces.pl +++ b/source/script/build_smb_interfaces.pl @@ -1,10 +1,54 @@ #!/usr/bin/perl +# +# Create ejs interfaces for structures in a C header file +# -my $idl_file = shift; +use File::Basename; +my $file = shift; +my $basename = basename($file, ".h"); require smb_interfaces; -my $idl_parser = new smb_interfaces; -$parse = $idl_parser->parse($idl_file); +my $parser = new smb_interfaces; +$header = $parser->parse($file); -use Data::Dumper; -print Dumper($parse); +#use Data::Dumper; +#print Dumper($header); + +# Create header + +open(FILE, ">ejs_${basename}.h"); + +print FILE "/* header auto-generated by build_smb_interfaces.pl */\n\n"; + +print FILE "#ifndef _ejs_${basename}_h\n"; +print FILE "#define _ejs_${basename}_h\n\n"; + +foreach my $x (@{$header}) { + print FILE "NTSTATUS ejs_push_$x->{NAME}(struct ejs_rpc *, struct MprVar *, const char *, const uint32_t *);\n"; + print FILE "NTSTATUS ejs_pull_$x->{NAME}(struct ejs_rpc *, struct MprVar *, const char *, const uint32_t *);\n"; +} + +print FILE "#endif\n"; + +close(FILE); + +# Create file + +open(FILE, ">ejs_${basename}.c"); + +print FILE "/* EJS wrapper functions auto-generated by build_smb_interfaces.pl */\n\n"; + +# Top level functions + +foreach my $x (@{$header}) { + print FILE "NTSTATUS ejs_push_$x->{NAME}(struct ejs_rpc *, struct MprVar *, const char *, const uint32_t *)\n"; + print FILEq "{\n"; + print FILE "\treturn NT_STATUS_OK;\n"; + print FILE "}\n\n"; + print FILE "NTSTATUS ejs_pull_$x->{NAME}(struct ejs_rpc *, struct MprVar *, const char *, const uint32_t *)\n"; + print FILE "{\n"; + print FILE "\treturn NT_STATUS_OK;\n"; + print FILE "}\n\n"; +} + +close(FILE); |