/* begincopyright Copyright (c) 1988 Xerox Corporation. All rights reserved. Use and copying of this software and preparation of derivative works based upon this software are permitted. Any distribution of this software or derivative works must comply with all applicable United States export control laws. This software is made available AS IS, and Xerox Corporation makes no warranty about the software, its performance or its conformity to any specification. Any person obtaining a copy of this software is requested to send their name and post office or electronic mail address to: PCR Coordinator Xerox PARC 3333 Coyote Hill Rd. Palo Alto, CA 94304 endcopyright */ /* * CirioNubMarshall.h * * Demers, November 2, 1989 10:11:43 am PST * * Marshalling primitives for CirioNub procs on slave IOP. */ #ifndef ←CIRIO←NUB←MARSHALL← #define ←CIRIO←NUB←MARSHALL← #include <cirio/Threads.h> #include <cirio/CirioNubProtocol.h> /* A CirioNubProc Foo is declared like CirioNubRetCode Foo(int argc, unsigned *args); See the type declaration in CirioNubInstall.h. Foo is invoked as a result of a message from the other side. The calling procedure and Foo must agree on the number and types of arguments. Foo returns results by calling the marshalling procedures (below) and returning the appropriate CirioNubRetCode value. */ /* * Marshalling procs. * If one of these returns a value other than cnrc←ok, * the invoking CirioNubProc should return that same value. */ extern CirioNubRetCode CirioNubPutCard32(/* unsigned n */); extern CirioNubRetCode CirioNubPutInt32(/* int n */); extern CirioNubRetCode CirioNubPutString(/* char *s */); extern CirioNubRetCode CirioNubPutBlock8(/* char *b, int nBytes */); extern CirioNubRetCode CirioNubPutBlock16(/* short *b, int nBytes */); extern CirioNubRetCode CirioNubPutBlock32(/* long *b, int nBytes */); #endif /* ←CIRIO←NUB←MARSHALL← */