Showing changes from revision #0 to #1:
Added | Removed | Changed
Entry | |
---|---|
R0 | Enumerate flags |
R1 | Type number |
R2 | Length of buffer for object name, or 0 |
R3 | Pointer to buffer for object name, or 0 |
R4 | Length of buffer for object descriptor |
R5 | Pointer to object descriptor, or 0 for none |
R6 | 0 or undefined |
R7 | Enumeration reference (or 0 to start) |
R8 | Object authentication value if flags bit 0 is set |
Exit | |
---|---|
R2 | Length of held object name, including 0 terminator |
R4 | Length of held object descriptor |
R6 | IP address of computer which holds the object |
R7 | Next enumeration reference, or -1 to indicate end reached |
- | All other registers preserved |
Bit | Value | Meaning |
---|---|---|
0 | 0 | Enumerate unauthenticated objects only |
1 | Enumerate authenticated objects only | |
1 – 31 | 0 | Reserved (must be zero) |
The purpose of this call is to allow a controlling application to enumerate currently held authenticated or unauthenticated objects of a given type, obtaining their names, location IP addresses, and descriptors if present.
If an authentication value is provided then only those objects whose actual authentication value matches the supplied value are enumerated. If no authentication value is supplied then only unauthenticated objects are enumerated. The length of the held object name or descriptor may be read without filling in buffers by setting R3=0 or R5=0 respectively, on entry. However in this case there is no guarantee that the object attributes will not have changed, or that the object will still exist, if the SWI is called again some time later with the same enumeration reference.
If R7 is returned -1 then there were no further known objects of that type – the object name buffer will not have been filled in, and R6 is undefined.
An error is returned if the type number is unknown, or if a supplied name or descriptor buffer is too short. In the latter cases the actual name and descriptor lengths are returned in R2 and R4.