1 # Copyright (c) 2022 Intel and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
6 # http://www.apache.org/licenses/LICENSE-2.0
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
14 import ExpressionConverter
17 class ProtocolHeaderField:
18 def __init__(self, Size, Value, Mask, Field):
24 def UpdateValue(self, expression, auto):
25 if self.Field.IsReadonly and not auto:
28 if expression != None:
29 ret, _ = ExpressionConverter.Verify(self.Field.Format, expression)
33 self.Value = expression
36 def UpdateMask(self, expression):
37 if expression != None:
38 ret, _ = ExpressionConverter.Verify(self.Field.Format, expression)
42 self.Mask = expression
48 self.Size = self.Field.Size