diff options
Diffstat (limited to 'pidl/lib/Parse/Pidl/NDR.pm')
-rw-r--r-- | pidl/lib/Parse/Pidl/NDR.pm | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/pidl/lib/Parse/Pidl/NDR.pm b/pidl/lib/Parse/Pidl/NDR.pm index 8440f0183d..a36f638092 100644 --- a/pidl/lib/Parse/Pidl/NDR.pm +++ b/pidl/lib/Parse/Pidl/NDR.pm @@ -928,7 +928,7 @@ my %property_list = ( "bitmap64bit" => ["BITMAP"], # array - "range" => ["ELEMENT"], + "range" => ["ELEMENT", "PIPE"], "size_is" => ["ELEMENT"], "string" => ["ELEMENT"], "noheader" => ["ELEMENT"], @@ -1120,6 +1120,18 @@ sub ValidUnion($) } ##################################################################### +# validate a pipe +sub ValidPipe($) +{ + my ($pipe) = @_; + my $data = $pipe->{DATA}; + + ValidProperties($pipe, "PIPE"); + + fatal($pipe, $pipe->{NAME} . ": 'pipe' is not yet supported by pidl"); +} + +##################################################################### # parse a typedef sub ValidTypedef($) { @@ -1164,7 +1176,8 @@ sub ValidType($) STRUCT => \&ValidStruct, UNION => \&ValidUnion, ENUM => \&ValidEnum, - BITMAP => \&ValidBitmap + BITMAP => \&ValidBitmap, + PIPE => \&ValidPipe }->{$t->{TYPE}}->($t); } @@ -1206,7 +1219,8 @@ sub ValidInterface($) $d->{TYPE} eq "STRUCT" or $d->{TYPE} eq "UNION" or $d->{TYPE} eq "ENUM" or - $d->{TYPE} eq "BITMAP") && ValidType($d); + $d->{TYPE} eq "BITMAP" or + $d->{TYPE} eq "PIPE") && ValidType($d); } } |