At 9:00 -0700 7/2/03, David Blanton wrote: In the entry: subsystem random 500; In a .def file for MIGGING what is the 500 parameter? And, is there a generic subsystem? [I'm sure Jim will correct me if I'm wrong, but here goes...] MIG generates code to pack the function parameters you supply into a parameter block and send that parameter block in a message to the destination port. On the server side, the MIG code takes that parameter block, unpacks it, and calls the relevant function. The MIG server decides which message is which by examining a message type selector. These message type values are determined by the subsystem value. So, if you have a .defs file that looks like this: ------------------------------------------------------------- subsystem MySubsystem 10000; routine MyRoutine1(...); routine MyRoutine2(...); routine MyRouinee3(...); ------------------------------------------------------------- then the MyRoutine1 is assigned 10000 as its selector, MyRoutine2 uses 10001, MyRouinee3 uses 10002, and so on. The actual values that you use are irrelevant except that: o if you have multiple services listening on the same Mach port, each service must have a distinct range, and o if you want to maintain release-to-release binary compatibility, you have to make sure that the numbers are stable. S+E -- Quinn "The Eskimo!" <http://www.apple.com/developer/> Apple Developer Technical Support * Networking, Communications, Hardware _______________________________________________ darwin-kernel mailing list | darwin-kernel@lists.apple.com Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/darwin-kernel Do not post admin requests to the list. They will be ignored.