573954a9 | 22-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: Remove program_stat_to_errno() call sites
Refactor: Translating an on-the-wire value to a local host errno is architecturally a job for the proc function, not the XDR decoder.
Signed-off-by
xdrgen: Remove program_stat_to_errno() call sites
Refactor: Translating an on-the-wire value to a local host errno is architecturally a job for the proc function, not the XDR decoder.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
show more ...
|
903a7d37 | 22-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: Update the files included in client-side source code
In particular, client-side source code needs the definition of "struct rpc_procinfo" and does not want header files that pull in "struct
xdrgen: Update the files included in client-side source code
In particular, client-side source code needs the definition of "struct rpc_procinfo" and does not want header files that pull in "struct svc_rqst". Otherwise, the source does not compile.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
show more ...
|
82c2a361 | 22-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: Remove check for "nfs_ok" in C templates
Obviously, "nfs_ok" is defined only for NFS protocols. Other XDR protocols won't know "nfs_ok" from Adam.
Signed-off-by: Chuck Lever <chuck.lever@or
xdrgen: Remove check for "nfs_ok" in C templates
Obviously, "nfs_ok" is defined only for NFS protocols. Other XDR protocols won't know "nfs_ok" from Adam.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
show more ...
|
07decac0 | 22-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: Remove tracepoint call site
This tracepoint was a "note to self" and is not operational. It is added only to client-side code, which so far we haven't needed. It will cause immediate breakag
xdrgen: Remove tracepoint call site
This tracepoint was a "note to self" and is not operational. It is added only to client-side code, which so far we haven't needed. It will cause immediate breakage once we start generating client code, though, so remove it now.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
show more ...
|
ac159338 | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: emit maxsize macros
Add "definitions" subcommand logic to emit maxsize macros in generated code.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> |
e9e1e7e7 | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: Add generator code for XDR width macros
Introduce logic in the code generators to emit maxsize (XDR width) definitions. In C, these are pre-processor macros.
Signed-off-by: Chuck Lever <chu
xdrgen: Add generator code for XDR width macros
Introduce logic in the code generators to emit maxsize (XDR width) definitions. In C, these are pre-processor macros.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
show more ...
|
ce5a75d9 | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: XDR width for union types
Not yet complete.
The tool doesn't do any math yet. Thus, even though the maximum XDR width of a union is the width of the union enumerator plus the width of its l
xdrgen: XDR width for union types
Not yet complete.
The tool doesn't do any math yet. Thus, even though the maximum XDR width of a union is the width of the union enumerator plus the width of its largest arm, we're using the sum of all the elements of the union for the moment.
This means that buffer size requirements are overestimated, and that the generated maxsize macro cannot yet be used for determining data element alignment in the XDR buffer.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
show more ...
|
447dc1ef | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: XDR width for pointer types
The XDR width of a pointer type is the sum of the widths of each of the struct's fields, except for the last field. The width of the implicit boolean "value follo
xdrgen: XDR width for pointer types
The XDR width of a pointer type is the sum of the widths of each of the struct's fields, except for the last field. The width of the implicit boolean "value follows" field is added as well.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
show more ...
|
f4bc1e99 | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: XDR width for struct types
The XDR width of a struct type is the sum of the widths of each of the struct's fields.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> |
2852c92b | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: XDR width for typedef
The XDR width of a typedef is the same as the width of the base type.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> |
dc6fa83b | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: XDR width for optional_data type
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> |
2db8940e | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: XDR width for variable-length array
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> |
59b01b96 | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: XDR width for fixed-length array
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> |
da298d01 | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: XDR width for a string
A string works like a variable-length opaque. See Section 4.11 of RFC 4506.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> |
b0b85ef7 | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: XDR width for variable-length opaque
The byte size of a variable-length opaque is conveyed in an unsigned integer. If there is a specified maximum size, that is included in the type's widths
xdrgen: XDR width for variable-length opaque
The byte size of a variable-length opaque is conveyed in an unsigned integer. If there is a specified maximum size, that is included in the type's widths list.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
show more ...
|
16c98ce0 | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: XDR width for fixed-length opaque
The XDR width for a fixed-length opaque is the byte size of the opaque rounded up to the next XDR_UNIT, divided by XDR_UNIT.
Signed-off-by: Chuck Lever <ch
xdrgen: XDR width for fixed-length opaque
The XDR width for a fixed-length opaque is the byte size of the opaque rounded up to the next XDR_UNIT, divided by XDR_UNIT.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
show more ...
|
3f890755 | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: XDR widths for enum types
RFC 4506 says that an XDR enum is represented as a signed integer on the wire; thus its width is 1 XDR_UNIT.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> |
631c2925 | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: Keep track of on-the-wire data type widths
The generic parts of the RPC layer need to know the widths (in XDR_UNIT increments) of the XDR data types defined for each protocol.
As a first st
xdrgen: Keep track of on-the-wire data type widths
The generic parts of the RPC layer need to know the widths (in XDR_UNIT increments) of the XDR data types defined for each protocol.
As a first step, add dictionaries to keep track of the symbolic and actual maximum XDR width of XDR types.
This makes it straightforward to look up the width of a type by its name. The built-in dictionaries are pre-loaded with the widths of the built-in XDR types as defined in RFC 4506.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
show more ...
|
189f55d9 | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: Track constant values
In order to compute the numeric on-the-wire width of XDR types, xdrgen needs to keep track of the numeric value of constants that are defined in the input specification
xdrgen: Track constant values
In order to compute the numeric on-the-wire width of XDR types, xdrgen needs to keep track of the numeric value of constants that are defined in the input specification so it can perform calculations with those values.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
show more ...
|
1acd13cb | 03-Oct-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: Refactor transformer arms
Clean up: Add a __post_init__ function to the data classes that need to update the "structs" and "pass_by_reference" sets.
Signed-off-by: Chuck Lever <chuck.lever@
xdrgen: Refactor transformer arms
Clean up: Add a __post_init__ function to the data classes that need to update the "structs" and "pass_by_reference" sets.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
show more ...
|
b376d519 | 30-Sep-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: Implement big-endian enums
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> |
6e853dcd | 30-Sep-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: Rename "enum yada" types as just "yada"
This simplifies the generated C code and makes way for supporting big-endian XDR enums.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> |
c060f816 | 30-Sep-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: Rename enum's declaration Jinja2 template
"close.j2" is a confusing name.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> |
041962d5 | 30-Sep-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: Rename "variable-length strings"
I misread RFC 4506. The built-in data type is called simply "string", as there is no fixed-length variety.
Signed-off-by: Chuck Lever <chuck.lever@oracle.co
xdrgen: Rename "variable-length strings"
I misread RFC 4506. The built-in data type is called simply "string", as there is no fixed-length variety.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
show more ...
|
5383ccd0 | 30-Sep-2024 |
Chuck Lever <chuck.lever@oracle.com> |
xdrgen: Clean up type_specifier
Clean up: Make both arms of the type_specifier AST transformer match. No behavior change is expected.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> |