GENERATED by dist/tools/gen-api-index.py from dist/tools/public-api.list. Do not edit by hand.
Copyright (c) 2026 Muhammad Anisur Rahman. All rights reserved.
This is the public interface: what an application or a board support package may call. Prose and examples are in 05-api-reference.md; this file is the checkable list of declarations.
Anything not listed here is internal to the kernel. It may change or disappear between releases and is not part of the supported interface, even if a header happens to declare it.
long LoadTask( char *name, void *func, void *param_ptr, long priority, long TaskState, long stacksize, long parentid, char MultipleInstance );
void TuwaSleep(unsigned long tick,long wakeupflg);
void TaskDelay(unsigned long tick);
void TuwaExitTask(long id);
long GetTaskId(char *name,void *func);
long GetCurrentTaskId(void);
long ChangeTaskPriority(long id,unsigned char newpriority);
long KillTask(long id,char *name,unsigned char urgency);
long UnKillTask(long id,char *name);
void TuwaSwitchTask(void);
void SetTimeSlice(long msec);
long GetSystemTick(void);
void EnablePreemption(void);
void DisablePreemption(void);
long EnterTuwaCritical(long tid);
long ExitTuwaCritical(long tid);
long TuwaAllocMem(long id,long Type,long size);
long TuwaAllocMemImmediate(long id,long Type,long size);
long FreeMem(long memid);
void *TuwaFsMalloc(void *heap_ptr,long requested_size,long id, int persistent);
void TuwaFsFree(void *heap_ptr,void *inptr);
long WithinMemoryRange(unsigned long address,unsigned long size);
long CreateMutex(long tskid,unsigned long waitflag);
long DeleteMutex(long MutexId);
long WaitForMutex(long tskid,long MutexId,unsigned long wait);
long ReleaseMutex(long Tskid, long MutexId);
long CreateSemaphore(long taskid,unsigned long waitflag);
long DeleteSemaphore(long Tskid,long SemId);
long WaitForSemaphore(long semaphoreid,unsigned long waitflag);
long ReleaseSemaphore(long tsk,long SemId);
long LockSemaphore(long Tskid,long SemId);
long UnLockSemaphore(long Tskid,long SemId);
long CreateEvent(char *event_name,unsigned long wait);
long DeleteEvent(long event_id);
long SetEvent(long id,unsigned long event);
long SetEventFromISR(long id,unsigned long event);
long ClearEvent(long id,unsigned long event);
long WaitForEvent(long id, unsigned long event_to_wait, unsigned long *event_long, unsigned long wait);
char WaitForFlag(long *flag, long wait);
long CreateMessageQueue(long msgsize,long elementcount);
long DeleteMessageQueue(long qid);
long TuwaSendMessage(long qid,char *msg,long msglen,unsigned long timeout);
long TuwaSendMessageFromISR(long qid,char *msg,long msglen);
long TuwaReceiveMessage(long qid,char *msg,long msgbufsize,unsigned long timeout);
long FlushMessageQueue(long qid);
long MessageQueueEmpty(long qid);
long MessageCount(long qid);
long GetMessageQueueSize(long qid);
long GetMessageQueueElementSize(long qid);
long GetTransmitFailureCount(long qid);
long RegisterMessageQueueReceive(long qid,long taskid);
long UnRegisterMessageQueueReceive(long qid,long taskid);
long CreatePipe(long msgsize,long totalmsgs);
long DeletePipe(long pipeid);
long ReadPipe(long pipeid,char *msg,long msgbufsize,unsigned long timeout);
long WritePipe(long pipeid,char *msg,long msglen,unsigned long timeout);
long WritePipeFromISR(long pipeid,char *msg,long msglen);
long FlushPipe(long pipeid);
long PipeEmpty(long pipeid);
long PipeMessageCount(long pipeid);
long GetPipeSize(long pipeid);
long GetPipeElementSize(long pipeid);
long GetWritePipeFailureCount(long pipeid);
long RegisterPipeRead(long pipeid,long taskid);
long UnRegisterPipeRead(long pipeid,long taskid);
long CreateMailBox(long total_mails,long mail_msg_size);
long DeleteMailBox(long mboxid);
MAIL_BUFFER *CreateMailBuffer(long mboxid);
long FreeMailBuffer(MAIL_BUFFER *);
long SendMail(long mboxid,char *msg,long msglen,unsigned long timeout);
long SendMailBoxFromISR(long mboxid,char *msg,long msglen);
long ReceiveMail(long mboxid,MAIL_BUFFER *mailbuffer,unsigned long timeout);
long MailBoxEmpty(long mboxid);
long MailCount(long mboxid);
long GetMailBoxCapacity(long mboxid);
long GetMailMsgSize(long mboxid);
long GetSendMailFailureCount(long mboxid);
long RegisterMailReceive(long mboxid,long taskid);
long UnRegisterMailReceive(long mboxid,long taskid);
long CreateCircularQ(long elementsize,long qcapacity);
long DeleteCircularQ(long Qid);
void InitCircularQ(void);
long EnQueueCircularQ(long qid ,char *buffer,long size);
long DeQueueCircularQ(long qid,char *buffer,long size);
long QEmpty(long qid);
long QFull(long qid);
long GetQcapacity(long qid);
long GetQelementSize(long qid);
long GetQElementCount(long qid);
char *GetQElementData(long qid,long elementno);
long GetQElementDataSize(long qid,long elementno);
long CreateTimer(char *timer_name, void (*func)(void), unsigned long ticks, long wait);
long DeleteTimer(long timer_id);
long StartTimer(long timer_id);
long StopTimer(long timer_id);
void StartWatchDog(void);
TUWA_DEVICE *CreateDevice(char *devnane, DEVICE_IO *dev_io);
long DeleteDevice(long devid);
int DestroyDevice(char *devnane);
long OpenDevice(char *devtypename,char *device,long mode);
long FindDevice(char *devtypename);
long FindDevType(char *devtypename);
char SetDeviceName(long driverid,char *name);
char SetDeviceType(long driverid,unsigned char devicetype);
char SetDeviceIOType(long driverid,unsigned char iotype);
int TuwaPrintConsole(char *buf);
extern void TuwaPrintf(const char *str, ...);
char TuwaReadConsoleChar(int *status);
char *TuwaReadConsoleBuffer(char *buf,int *CommandLen,int *CommandCursor);
unsigned char InportByte(unsigned long port);
unsigned short InportShort(unsigned long port);
unsigned long InportLong(unsigned long port);
void OutportByte(unsigned long port,unsigned char value);
void OutportShort(unsigned long port,unsigned long value);
void OutportLong(unsigned long port,unsigned long value);
void StrCpy(char *dest,char *src);
char StrCmp(char *str1, char *str2);
long StrIcmp(char *str1,char *str2);
long StrLen(char *str1);
void MemCpy(void *dst, void *src,long len);
void MemSet(void *dst,unsigned char fill,long len);
long ToString(char *ptr,char*format,unsigned long data,char datatypesize);
FILE_DESCRIPTOR *tuwa_fopen (char *file,long mode);
long tuwa_fclose(FILE_DESCRIPTOR *fp);
long tuwa_fread(void *buffer,long count,int size,FILE_DESCRIPTOR *fp);
long tuwa_fwrite(void *buffer,long count,int size,FILE_DESCRIPTOR *fp);
long tuwa_fseek (FILE_DESCRIPTOR *fp,long offset,int origin);
long tuwa_feof(FILE_DESCRIPTOR *fp);
long tuwa_ls(char *p);
long tuwa_mkdir(char *p);
long tuwa_rmdir(char *p);
long tuwa_remove(char *fname);
long tuwa_unlink(char *fname);
long tuwa_rename(char *oldfname,char *newfname);
long tuwa_exists(char *p);
long TuwaLoadModule(void *image,long imagesize,char *name);
long TuwaLoadModuleFromFile(char *path,char *name);
long TuwaUnloadModule(long handle);
void *TuwaModuleExportAddr(long handle,char *name);
TUWA_ADDR TuwaModuleBaseRegister(long handle);
void *TuwaModuleEntry(long handle);
long TuwaCallModuleFunc(long handle,char *name,TUWA_ADDR *result);
long TuwaModuleHasMain(long handle);
TUWA_MODULE_IMAGE *TuwaModuleDescriptor(long handle);
long TuwaParseModuleImage(void *image,long imagesize,TUWA_MODULE_IMAGE *out);
long TuwaApplyModuleRelocations(unsigned char *base,TUWA_MODULE_IMAGE *img);
char *ModLoadErrorText(long err);
void TuwaRegisterKernelSymbols(TUWA_KSYM *table,long count);
unsigned long TuwaLookupKernelSymbol(char *name);
long TuwaKernelSymbolCount(void);
150 declarations in the public interface.