Showing changes from revision #0 to #1:
Added | Removed | Changed
Entry | |
---|---|
R0 | Write flags |
R1 | Type number |
R2 | Pointer to object name, 0 terminated |
R3 | Length of object descriptor |
R4 | Pointer to object descriptor, or 0 for none or when flags bit 0 is set |
R5 | Object authentication value if flags bit 1 is set, otherwise undefined |
Exit | |
---|---|
- | - |
Bit | Meaning when set |
---|---|
0 | Remove object (otherwise add) |
1 | Object is authenticated |
2 – 31 | Reserved (must be zero) |
The purpose of this call is to add or remove a locally held object of a given type.
If the object is unauthenticated then other computers are notified immediately, otherwise notification is withheld until a remote computer requests it. An error is returned if the type number is not known (i.e. if Freeway_Register has not been called with this type number), or if an object is added and a remote object of the given name and type already exists, or if an object is removed and no local object of the given name and type is currently held, or if no memory exists to store information about the object.
If flags bit 0 is set and the object named is already held as a local object, the object’s descriptor and authentication value are updated if they differ from those passed to the SWI.
Controlling applications should be prepared to receive UpCall_Freeway, reason code object deleted, referring to any object previously added successfully. This is to cover the possibility of Freeway deciding that the information held about an object is unreliable and so deciding to remove it unilaterally, e.g. if a remote object is created with the same name as a local object.