BeginIO() This function takes an IORequest and passes it directly to the BEGINIO vector of the proper device. This works exactly like SendIO(), but does not clear the io_Flags field first. This function does not wait for the I/O to complete. CreateExtIO() and DeleteExtIO() CreateExtIO() allocates memory for and initializes a new I/O request block of a program-specified number of bytes. The number of bytes must be the size of a legal IORequest (or extended request) or very nasty things will happen. DeleteExtIO() frees up an I/O request as allocated by CreateExtIO(). The mn_Length field determines how much memory to deallocate. CreatePort() and DeletePort() CreatePort() allocates and initializes a new message port. The message list of the new port will be prepared for use via NewList(). The port will be set to signal your task when a message arrives (PA_SIGNAL). DeletePort() deletes the port created by CreatePort(). All messages that may have been attached to that port must already have been replied to. CreateStdIO() and DeleteStdIO() CreateStdIO() allocates memory for and initializes a new IOStdReq structure. DeleteStdIO() frees up an IOStdReq allocated by CreateStdIO(). CreateTask() and DeleteTask() These functions simplify creation and deletion of subtasks by dynamically allocating and initializing the required structures and stack space. They also add the task to Exec's task list with the given name and priority. A tc_MemEntry list is provided so that all stack and structure memory allocated by CreateTask() is automatically deallocated when the task is removed. Before deleting a task with DeleteTask(), you must first make sure that the task is not currently executing any system code which might try to signal the task after it is gone. NewList() Prepares a List structure for use; the list will be empty and ready to use.