INT8U OSMemNameGet (OS_MEM *pmem, INT8U *pname, INT8U *perr) { INT8U len; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr = 0; #endif #if OS_ARG_CHK_EN > 0 if (perr == (INT8U *)0) { /* Validate 'perr' */ return (0); } if (pmem == (OS_MEM *)0) { /* Is 'pmem' a NULL pointer? */ *perr = OS_ERR_MEM_INVALID_PMEM; return (0); } if (pname == (INT8U *)0) { /* Is 'pname' a NULL pointer? */ *perr = OS_ERR_PNAME_NULL; return (0); } #endif if (OSIntNesting > 0) { /* See if trying to call from an ISR */ *perr = OS_ERR_NAME_GET_ISR; return (0); } OS_ENTER_CRITICAL(); len = OS_StrCopy(pname, pmem->OSMemName); /* Copy name from OS_MEM */ OS_EXIT_CRITICAL(); *perr = OS_ERR_NONE; return (len); }
INT8U OSMemNameGet (OS_MEM *pmem, INT8U *pname, INT8U *err) { INT8U len; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr = 0; #endif OS_ENTER_CRITICAL(); #if OS_ARG_CHK_EN > 0 if (err == (INT8U *)0) { /* Validate 'err' */ OS_EXIT_CRITICAL(); return (0); } if (pmem == (OS_MEM *)0) { /* Is 'pmem' a NULL pointer? */ OS_EXIT_CRITICAL(); /* Yes */ *err = OS_MEM_INVALID_PMEM; return (0); } if (pname == (INT8U *)0) { /* Is 'pname' a NULL pointer? */ OS_EXIT_CRITICAL(); /* Yes */ *err = OS_ERR_PNAME_NULL; return (0); } #endif len = OS_StrCopy(pname, pmem->OSMemName); /* Copy name from OS_MEM */ OS_EXIT_CRITICAL(); *err = OS_NO_ERR; return (len); }
INT8U OSFlagNameGet(OS_FLAG_GRP * pgrp, INT8U * pname, INT8U * perr) { INT8U len; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr = 0; #endif #if OS_ARG_CHK_EN > 0 if (perr == (INT8U *) 0) { /* Validate 'perr' */ return (0); } if (pgrp == (OS_FLAG_GRP *) 0) { /* Is 'pgrp' a NULL pointer? */ *perr = OS_ERR_FLAG_INVALID_PGRP; return (0); } if (pname == (INT8U *) 0) { /* Is 'pname' a NULL pointer? */ *perr = OS_ERR_PNAME_NULL; return (0); } #endif if (OSIntNesting > 0) { /* See if trying to call from an ISR */ *perr = OS_ERR_NAME_GET_ISR; return (0); } OS_ENTER_CRITICAL(); if (pgrp->OSFlagType != OS_EVENT_TYPE_FLAG) { OS_EXIT_CRITICAL(); *perr = OS_ERR_EVENT_TYPE; return (0); } len = OS_StrCopy(pname, pgrp->OSFlagName); /* Copy name from OS_FLAG_GRP */ OS_EXIT_CRITICAL(); *perr = OS_ERR_NONE; return (len); }
// CODE_SECTION(OSTaskNameGet,".UserProgramCode") INT8U OSTaskNameGet( INT8U prio, INT8U *pname, INT8U *perr ) { OS_TCB *ptcb; INT8U len; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr = 0; #endif #if OS_ARG_CHK_EN > 0 if ( perr == ( INT8U * )0 ) /* Validate 'perr' */ { return ( 0 ); } if ( prio > OS_LOWEST_PRIO ) /* Task priority valid ? */ { if ( prio != OS_PRIO_SELF ) { *perr = OS_ERR_PRIO_INVALID; /* No */ return ( 0 ); } } if ( pname == ( INT8U * )0 ) /* Is 'pname' a NULL pointer? */ { *perr = OS_ERR_PNAME_NULL; /* Yes */ return ( 0 ); } #endif if ( OSIntNesting > 0 ) /* See if trying to call from an ISR */ { *perr = OS_ERR_NAME_GET_ISR; return ( 0 ); } OS_ENTER_CRITICAL(); if ( prio == OS_PRIO_SELF ) /* See if caller desires it's own name */ { prio = OSTCBCur->OSTCBPrio; } ptcb = OSTCBPrioTbl[prio]; if ( ptcb == ( OS_TCB * )0 ) /* Does task exist? */ { OS_EXIT_CRITICAL(); /* No */ *perr = OS_ERR_TASK_NOT_EXIST; return ( 0 ); } if ( ptcb == OS_TCB_RESERVED ) /* Task assigned to a Mutex? */ { OS_EXIT_CRITICAL(); /* Yes */ *perr = OS_ERR_TASK_NOT_EXIST; return ( 0 ); } len = OS_StrCopy( pname, ptcb->OSTCBTaskName ); /* Yes, copy name from TCB */ OS_EXIT_CRITICAL(); *perr = OS_ERR_NONE; return ( len ); }
void OSTaskNameSet (INT8U prio, INT8U *pname, INT8U *perr) { INT8U len; OS_TCB *ptcb; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr = 0; #endif #if OS_ARG_CHK_EN > 0 if (perr == (INT8U *)0) { /* Validate 'perr' */ return; } if (prio > OS_LOWEST_PRIO) { /* Task priority valid ? */ if (prio != OS_PRIO_SELF) { *perr = OS_ERR_PRIO_INVALID; /* No */ return; } } if (pname == (INT8U *)0) { /* Is 'pname' a NULL pointer? */ *perr = OS_ERR_PNAME_NULL; /* Yes */ return; } #endif if (OSIntNesting > 0) { /* See if trying to call from an ISR */ *perr = OS_ERR_NAME_SET_ISR; return; } OS_ENTER_CRITICAL(); if (prio == OS_PRIO_SELF) { /* See if caller desires to set it's own name */ prio = OSTCBCur->OSTCBPrio; } ptcb = OSTCBPrioTbl[prio]; if (ptcb == (OS_TCB *)0) { /* Does task exist? */ OS_EXIT_CRITICAL(); /* No */ *perr = OS_ERR_TASK_NOT_EXIST; return; } if (ptcb == OS_TCB_RESERVED) { /* Task assigned to a Mutex? */ OS_EXIT_CRITICAL(); /* Yes */ *perr = OS_ERR_TASK_NOT_EXIST; return; } len = OS_StrLen(pname); /* Yes, Can we fit the string in the TCB? */ if (len > (OS_TASK_NAME_SIZE - 1)) { /* No */ OS_EXIT_CRITICAL(); *perr = OS_ERR_TASK_NAME_TOO_LONG; return; } (void)OS_StrCopy(ptcb->OSTCBTaskName, pname); /* Yes, copy to TCB */ OS_EXIT_CRITICAL(); *perr = OS_ERR_NONE; }
INT8U OSTmrNameGet( OS_TMR * ptmr, INT8U * pdest, INT8U * perr ) { INT8U len; #if OS_ARG_CHK_EN > 0 if ( perr == ( INT8U * ) 0 ) { return ( 0 ); } if ( pdest == ( INT8U * ) 0 ) { *perr = OS_ERR_TMR_INVALID_DEST; return ( 0 ); } if ( ptmr == ( OS_TMR * ) 0 ) { *perr = OS_ERR_TMR_INVALID; return ( 0 ); } #endif if ( ptmr->OSTmrType != OS_TMR_TYPE ) { /* Validate timer structure */ *perr = OS_ERR_TMR_INVALID_TYPE; return ( 0 ); } if ( OSIntNesting > 0 ) { /* See if trying to call from an ISR */ *perr = OS_ERR_TMR_ISR; return ( 0 ); } OSTmr_Lock( ); switch ( ptmr->OSTmrState ) { case OS_TMR_STATE_RUNNING: case OS_TMR_STATE_STOPPED: case OS_TMR_STATE_COMPLETED: len = OS_StrCopy( pdest, ptmr->OSTmrName ); OSTmr_Unlock( ); *perr = OS_NO_ERR; return ( len ); case OS_TMR_STATE_UNUSED: /* Timer is not allocated */ OSTmr_Unlock( ); *perr = OS_ERR_TMR_INACTIVE; return ( 0 ); default: OSTmr_Unlock( ); *perr = OS_ERR_TMR_INVALID_STATE; return ( 0 ); } }
void OSTaskNameSet (INT8U prio, char *pname, INT8U *err) { INT8U len; OS_TCB *ptcb; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr; cpu_sr = 0; /* Prevent compiler warning */ #endif #if OS_ARG_CHK_EN > 0 if (prio > OS_LOWEST_PRIO) { /* Task priority valid ? */ if (prio != OS_PRIO_SELF) { *err = OS_PRIO_INVALID; /* No */ return; } } if (pname == (char *)0) { /* Is 'pname' a NULL pointer? */ *err = OS_ERR_PNAME_NULL; /* Yes */ return; } #endif OS_ENTER_CRITICAL(); if (prio == OS_PRIO_SELF) { /* See if caller desires to set it's own name */ prio = OSTCBCur->OSTCBPrio; } ptcb = OSTCBPrioTbl[prio]; if (ptcb == (OS_TCB *)0) { /* Does task exist? */ OS_EXIT_CRITICAL(); /* No */ *err = OS_TASK_NOT_EXIST; return; } if (ptcb == (OS_TCB *)1) { /* Task assigned to a Mutex? */ OS_EXIT_CRITICAL(); /* Yes */ *err = OS_TASK_NOT_EXIST; return; } len = OS_StrLen(pname); /* Yes, Can we fit the string in the TCB? */ if (len > (OS_TASK_NAME_SIZE - 1)) { /* No */ OS_EXIT_CRITICAL(); *err = OS_ERR_TASK_NAME_TOO_LONG; return; } (void)OS_StrCopy(ptcb->OSTCBTaskName, pname); /* Yes, copy to TCB */ OS_EXIT_CRITICAL(); *err = OS_NO_ERR; }
void OSMemNameSet (OS_MEM *pmem, INT8U *pname, INT8U *perr) { INT8U len; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr = 0; #endif #if OS_ARG_CHK_EN > 0 if (perr == (INT8U *)0) /* Validate 'perr' */ { return; } if (pmem == (OS_MEM *)0) /* Is 'pmem' a NULL pointer? */ { *perr = OS_ERR_MEM_INVALID_PMEM; return; } if (pname == (INT8U *)0) /* Is 'pname' a NULL pointer? */ { *perr = OS_ERR_PNAME_NULL; return; } #endif if (OSIntNesting > 0) /* See if trying to call from an ISR */ { *perr = OS_ERR_NAME_SET_ISR; return; } OS_ENTER_CRITICAL(); len = OS_StrLen(pname); /* Can we fit the string in the storage area? */ if (len > (OS_MEM_NAME_SIZE - 1)) /* No */ { OS_EXIT_CRITICAL(); *perr = OS_ERR_MEM_NAME_TOO_LONG; return; } (void)OS_StrCopy(pmem->OSMemName, pname); /* Yes, copy name to the memory partition header */ OS_EXIT_CRITICAL(); *perr = OS_ERR_NONE; }
void OSFlagNameSet(OS_FLAG_GRP * pgrp, INT8U * pname, INT8U * perr) { INT8U len; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr = 0; #endif #if OS_ARG_CHK_EN > 0 if (perr == (INT8U *) 0) { /* Validate 'perr' */ return; } if (pgrp == (OS_FLAG_GRP *) 0) { /* Is 'pgrp' a NULL pointer? */ *perr = OS_ERR_FLAG_INVALID_PGRP; return; } if (pname == (INT8U *) 0) { /* Is 'pname' a NULL pointer? */ *perr = OS_ERR_PNAME_NULL; return; } #endif if (OSIntNesting > 0) { /* See if trying to call from an ISR */ *perr = OS_ERR_NAME_SET_ISR; return; } OS_ENTER_CRITICAL(); if (pgrp->OSFlagType != OS_EVENT_TYPE_FLAG) { OS_EXIT_CRITICAL(); *perr = OS_ERR_EVENT_TYPE; return; } len = OS_StrLen(pname); /* Can we fit the string in the storage area? */ if (len > (OS_FLAG_NAME_SIZE - 1)) { /* No */ OS_EXIT_CRITICAL(); *perr = OS_ERR_FLAG_NAME_TOO_LONG; return; } (void) OS_StrCopy(pgrp->OSFlagName, pname); /* Yes, copy name from OS_FLAG_GRP */ OS_EXIT_CRITICAL(); *perr = OS_ERR_NONE; return; }
void OSMemNameSet (OS_MEM *pmem, INT8U *pname, INT8U *err) { INT8U len; #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr = 0; #endif OS_ENTER_CRITICAL(); #if OS_ARG_CHK_EN > 0 if (err == (INT8U *)0) { /* Validate 'err' */ OS_EXIT_CRITICAL(); return; } if (pmem == (OS_MEM *)0) { /* Is 'pmem' a NULL pointer? */ OS_EXIT_CRITICAL(); /* Yes */ *err = OS_MEM_INVALID_PMEM; return; } if (pname == (INT8U *)0) { /* Is 'pname' a NULL pointer? */ OS_EXIT_CRITICAL(); /* Yes */ *err = OS_ERR_PNAME_NULL; return; } #endif len = OS_StrLen(pname); /* Can we fit the string in the storage area? */ if (len > (OS_MEM_NAME_SIZE - 1)) { /* No */ OS_EXIT_CRITICAL(); *err = OS_MEM_NAME_TOO_LONG; return; } (void)OS_StrCopy(pmem->OSMemName, pname); /* Yes, copy name to the memory partition header */ OS_EXIT_CRITICAL(); *err = OS_NO_ERR; }
OS_TMR *OSTmrCreate (INT32U dly, INT32U period, INT8U opt, OS_TMR_CALLBACK callback, void *callback_arg, INT8U *pname, INT8U *perr) { OS_TMR *ptmr; #if OS_TMR_CFG_NAME_SIZE > 0 INT8U len; #endif #if OS_ARG_CHK_EN > 0 if (perr == (INT8U *)0) { /* Validate arguments */ return ((OS_TMR *)0); } switch (opt) { case OS_TMR_OPT_PERIODIC: if (period == 0) { *perr = OS_ERR_TMR_INVALID_PERIOD; return ((OS_TMR *)0); } break; case OS_TMR_OPT_ONE_SHOT: if (dly == 0) { *perr = OS_ERR_TMR_INVALID_DLY; return ((OS_TMR *)0); } break; default: *perr = OS_ERR_TMR_INVALID_OPT; return ((OS_TMR *)0); } #endif if (OSIntNesting > 0) { /* See if trying to call from an ISR */ *perr = OS_ERR_TMR_ISR; return ((OS_TMR *)0); } OSTmr_Lock(); ptmr = OSTmr_Alloc(); /* Obtain a timer from the free pool */ if (ptmr == (OS_TMR *)0) { OSTmr_Unlock(); *perr = OS_ERR_TMR_NON_AVAIL; return ((OS_TMR *)0); } ptmr->OSTmrState = OS_TMR_STATE_STOPPED; /* Indicate that timer is not running yet */ ptmr->OSTmrDly = dly; ptmr->OSTmrPeriod = period; ptmr->OSTmrOpt = opt; ptmr->OSTmrCallback = callback; ptmr->OSTmrCallbackArg = callback_arg; #if OS_TMR_CFG_NAME_SIZE > 0 if (pname !=(INT8U *)0) { len = OS_StrLen(pname); /* Copy timer name */ if (len < OS_TMR_CFG_NAME_SIZE) { (void)OS_StrCopy(ptmr->OSTmrName, pname); } else { #if OS_TMR_CFG_NAME_SIZE > 1 ptmr->OSTmrName[0] = '#'; /* Invalid size specified */ ptmr->OSTmrName[1] = OS_ASCII_NUL; #endif *perr = OS_ERR_TMR_NAME_TOO_LONG; OSTmr_Unlock(); return (ptmr); } } #endif OSTmr_Unlock(); *perr = OS_ERR_NONE; return (ptmr); }