Nucleus Plus
One already clearly more extensive, but also bigger, however, real time operating system is NUCLEUS PLUS of Accelerated Technology Inc. It is Royality-Free but not FREE , only a small function overview (white-paper) can be returned here.
One of the possible expansion modules is NUCLEUS FILE through which a MS-DOS can be based 4.0 compatible File-System on most different storage media.
Kernelservices of the NUCLEUS PLUS (abbreviation)
This here presented function overview only serves as short overview. For detailed information, the "Reference manual" only is responsible.
Task-Control: | |
NU_Change_Preemption | Preemption of the current Tasks change |
NU_Change_Priority | Priority of a Tasks change |
NU_Change_Time_Slice | Time-Slice of a Tasks change |
NU_Check_Stack | Tests the Stack of the current Tasks |
NU_Create_Task | Creating of a Task |
NU_Current_Task_Pointer | Gives a pointer on TCB of the current Tasks |
NU_Delete_Task | Deletes TCB of a Tasks from the list |
NU_Established_Tasks | Returns number of Tasks |
NU_Relinquish | Allow other Tasks to run with same priority until time-slice |
NU_Reset_Task | Restart of a finished or terminierten Task |
NU_Resume_Task | Reawake of a suspended Tasks |
NU_Sleep | Put current Task for certain time sleeps |
NU_Suspend_Task | Suspends a Task |
NU_Task_Information | Returns information about a Tasks |
NU_Task_Pointers | Returns a list of active Tasks with TCB's |
NU_Terminate_Task | Terminating a Task |
Dynamic-Memory: | |
NU_Allocate_Memory | Allocating of storage |
NU_Create_Memory_Pool | Generates of the storage pool |
NU_Deallocate_Memory | Release allocated storage |
NU_Delete_Memory_Pool | Erasure of a generated storage pool |
NU_Established_Memory_Pools | Gives number of the generated storage pools |
NU_Memory_Pool_Information | Gives information about a storage pool |
NU_Memory_Pool_Pointers | Gives list of busy storage blocks |
Partition-Memory: | |
NU_Allocate_Partition | Allocation of a storagepartition |
NU_Create_Parition_Pool | Generates a partitionspool |
NU_Deallocate_Partition | Release an allocated storagepartition |
NU_Delete_Partition_Pool | Erase a generated partitionspool |
NU_Established_Partition_Pools | Gives number of generated partitionspools |
NU_Partition_Pool_Information | Gives information about a partitionspool |
NU_Partition_Pool_Pointers | Gives list of busy partitionsblocks |
Mailboxes: | |
NU_Broadcast_To_Mailbox | Send data to all recipients of this Mailbox |
NU_Create_Mailbox | Generates a Mailbox |
NU_Delete_Mailbox | Delete a generated Mailbox |
NU_Established_Mailboxes | Gives number of generated Mailboxes |
NU_Mailbox_Information | Gives information about a Mailbox |
NU_Mailbox_Pointers | Gives a list of known Mailboxes |
NU_Receive_From_Mailbox | Wait for data from a Mailbox |
NU_Reset_Mailbox | Puts back the MCB |
NU_Send_To_Mailbox | Send data to first/higher priority recipients of this Mailbox |
Queues: | |
NU_Broadcast_To_Queue | Send data to all recipients of this Queue |
NU_Create_Queue | Generates a Queue |
NU_Delete_Queue | Delete a generated Queue |
NU_Established_Queues | Gives number of generated Queues |
NU_Queue_Information | Gives information about a Queue |
NU_Queue_Pointers | Gives list of known Queues |
NU_Receive_From_Queue | Wait for data from a Queue |
NU_Reset_Queue | Puts back the QCB |
NU_Send_To_Front_Of_Queue | Send data to the beginning of a Queue |
NU_Send_To_Queue | Send data into a Queue |
Pipes: | |
NU_Broadcast_To_Pipe | Send data to all recipients of this Pipe |
NU_Create_Pipe | Generates a Pipe |
NU_Delete_Pipe | Delete a generated Pipe |
NU_Established_Pipes | Gives number of generated Pipes |
NU_Pipe_Information | Gives information about a Pipe |
NU_Pipe_Pointers | Gives list of known Pipes |
NU_Receive_From_Pipe | Wait for data from a Pipe |
NU_Reset_Pipe | Puts back the PCB |
NU_Send_To_Front_Of_Pipe | Send data to the beginning of a Pipe |
NU_Send_To_Pipe | Send data into a Pipe |
Semaphores: | |
NU_Create_Semaphore | Generate a Semaphore |
NU_Delete_Semaphore | Delete a generated Semaphore |
NU_Established_Semaphores | Gives number of generated Semaphores |
NU_Obtain_Semaphore | Cover one Semaphore |
NU_Release_Semaphore | Decontrol of a busy Semaphore |
NU_Reset_Semaphore | Puts back the SCB |
NU_Semaphore_Information | Gives information about a Semaphore |
NU_Semaphore_Pointers | Gives list of known Semaphores |
Event-Groups: | |
NU_Create_Event_Group | Generate a Eventgroup |
NU_Delete_Event_Group | Delete a generated Eventgroup |
NU_Established_Event_Groups | Gives number of generated Eventgroups |
NU_Event_Group_Information | Gives information about an Eventgroup |
NU_Event_Group_Pointers | Gives list of known Eventgroups |
NU_Retrieve_Events | Wait for arriving an or several Events of an Eventgroup |
NU_Set_Events | Place an/several Events of an Eventgroup |
Signals: | |
NU_Control_Signals | Masking of Signals |
NU_Receive_Signals | Retrieval of the Signals and erasure |
NU_Register_Signal_Handler | Generates a Signal-Handler its start as soon as the corresponding signal was sent |
NU_Send_Signals | Sends Signal at a Task |
Timers: | |
NU_Control_Timer | Enable/disable of a Timer |
NU_Create_Timer | Generates a Timer |
NU_Delete_Timer | Delete a generated Timer |
NU_Established_Timers | Gives number of generated Timers |
NU_Reset_Timer | Puts back the Timer-CB |
NU_Retrieve_Clock | System-Timer interrogate |
NU_Set_Clock | System-Timer placed |
NU_Timer_Information | Gives information about a Timer |
NU_Timer_Pointers | Gives list of known Timer |
Interrupts: | |
NU_Activiate_HISR | Starts a generated HISR (after end LISR) |
NU_Control_Interrupts | Enable/disable(/Level) interrupts |
NU_Create_HISR | Generate a HISR |
NU_Current_HISR_Pointer | Gives a pointer on TCB of the current HISR |
NU_Delete_HISR | Delete a generated HISR |
NU_Established_HISRs | Gives number of generated HISR's |
NU_HISR_Information | Gives information about a HISR |
NU_HISR_Pointers | Gives list of known HISR's |
NU_Local_Control_Interrupts | Eanble/disable(/Level) interrupts however only as far as to the next Context-Switch |
NU_Register_LISR | Generate a LISR through entry in Vectortable |
NU_Setup_Vector | Enrollment of an unmanaged-ISR (Assembler-ISR) |
System-Diagnostics: | |
NU_Disable_History_Saving | Disable History-writing |
NU_Enable_History_Saving | Enable History-writing |
NU_Licence_Information | Gives License-Information |
NU_Make_History_Entry | Write entry in History |
NU_Release_Information | Gives Release-Information |
NU_Retrieve_History_Entry | Gives first Histor-Entry and delete this in the table |
I/O-Drivers: | |
NU_Create_Driver | Generates an I/O-Driver |
NU_Delete_Driver | Delete a generated I/O-Driver |
NU_Driver_Pointers | Gives list of known I/O-Drivers |
NU_Established_Drivers | Gives number of generated I/O-Drivers |
NU_Protect | Protection of sharing against a Protector |
NU_Request_Driver | Send the request-structur to an I/O-Driver |
NU_Resume_Driver | If wakes a Task again that is suspended through "Suspend_Driver" |
NU_Suspend_Driver | If suspends the Task that uses the I/O-Driver |
NU_Unprotect | Protection against a Protector lifts |
Error-Codes:
Name | Decimal_Value | Hex_Value |
NU_END_OF_LOG | -1 | FFFFFFFF |
NU_GROUP_DELETED | -2 | FFFFFFFE |
NU_INVALID_DELETE | -3 | FFFFFFFD |
NU_INVALID_DRIVER | -4 | FFFFFFFC |
NU_INVALID_ENABLE | -5 | FFFFFFFB |
NU_INVALID_ENTRY | -6 | FFFFFFFA |
NU_INVALID_FUNCTION | -7 | FFFFFFF9 |
NU_INVALID_GROUP | -8 | FFFFFFF8 |
NU_INVALID_HISR | -9 | FFFFFFF7 |
NU_INVALID_MAILBOX | -10 | FFFFFFF6 |
NU_INVALID_MEMORY | -11 | FFFFFFF5 |
NU_INVALID_MESSAGE | -12 | FFFFFFF4 |
NU_INVALID_OPERATION | -13 | FFFFFFF3 |
NU_INVALID_PIPE | -14 | FFFFFFF2 |
NU_INVALID_POINTER | -15 | FFFFFFF1 |
NU_INVALID_POOL | -16 | FFFFFFF0 |
NU_INVALID_PREEMPT | -17 | FFFFFFEF |
NU_INVALID_PRIORITY | -18 | FFFFFFEE |
NU_INVALID_QUEUE | -19 | FFFFFFED |
NU_INVALID_RESUME | -20 | FFFFFFEC |
NU_INVALID_SEMAPHORE | -21 | FFFFFFEB |
NU_INVALID_SIZE | -22 | FFFFFFEA |
NU_INVALID_START | -23 | FFFFFFE9 |
NU_INVALID_SUSPEND | -24 | FFFFFFE8 |
NU_INVALID_TASK | -25 | FFFFFFE7 |
NU_INVALID_TIMER | -26 | FFFFFFE6 |
NU_INVALID_VECTOR | -27 | FFFFFFE5 |
NU_MAILBOX_DELETED | -28 | FFFFFFE4 |
NU_MAILBOX_EMPTY | -29 | FFFFFFE3 |
NU_MAILBOX_FULL | -30 | FFFFFFE2 |
NU_MAILBOX_RESET | -31 | FFFFFFE1 |
NU_NO_MEMORY | -32 | FFFFFFE0 |
NU_NO_MORE_LISRS | -33 | FFFFFFDF |
NU_NO_PARTITION | -34 | FFFFFFDE |
NU_NOT_DISABLED | -35 | FFFFFFDD |
NU_NOT_PRESENT | -36 | FFFFFFDC |
NU_NOT_REGISTERED | -37 | FFFFFFDB |
NU_NOT_TERMINATED | -38 | FFFFFFDA |
NU_PIPE_DELETED | -39 | FFFFFFD9 |
NU_PIPE_EMPTY | -40 | FFFFFFD8 |
NU_PIPE_FULL | -41 | FFFFFFD7 |
NU_PIPE_RESET | -42 | FFFFFFD6 |
NU_POOL_DELETED | -43 | FFFFFFD5 |
NU_QUEUE_DELETED | -44 | FFFFFFD4 |
NU_QUEUE_EMPTY | -45 | FFFFFFD3 |
NU_QUEUE_FULL | -46 | FFFFFFD2 |
NU_QUEUE_RESET | -47 | FFFFFFD1 |
NU_SEMAPHORE_DELETED | -48 | FFFFFFD0 |
NU_SEMAPHORE_RESET | -49 | FFFFFFCF |
NU_TIMEOUT | -50 | FFFFFFCE |
NU_UNAVAILABLE | -51 | FFFFFFCD |
Tip to ASM-ISR's:
* To integrate manually in the Nucleus about Assembler-ISR's, so-called "unmanaged-ISRs", following start code must be implemented with in jump into the ISR: (Example x86)
and at the end of the ISR:
* In order to call a HISR (High-Interrupt-Service-Routine) from Assembler-ISR's, installs, following call must be implemented into the ISR: (Example x86)
Stand: 03/2001