Files
kolibrios/programs/develop/ktcc/trunk/libc.obj/include/shell_api.h

56 lines
1.2 KiB
C

#ifndef _SHELL_API_H_
#define _SHELL_API_H_
#include <sys/ksys.h>
#ifdef _BUILD_LIBC
#define __EXTERN
#else
#define __EXTERN extern
#endif
#define SHELL_OK 0
#define SHELL_EXIT 1
#define SHELL_PUTC 2
#define SHELL_PUTS 3
#define SHELL_GETC 4
#define SHELL_GETS 5
#define SHELL_CLS 6
#define SHELL_PID 7
#define SHELL_PING 8
#define SHELL_SHM_MAX 1024 * 16
enum __SHELL_INIT_STATE {
__SHELL_NOT_LOADED = 0, // not try init shell before
__SHELL_LOADING = 1, // in progress
__SHELL_INIT_OK = 2, // ok
__SHELL_INIT_FAILED = 3 // fail init shell
};
__EXTERN char __shell_shm_name[32];
__EXTERN char* __shell_shm;
__EXTERN enum __SHELL_INIT_STATE __shell_is_init;
__EXTERN void __shell_init();
#define __SHELL_WAIT() \
while (*__shell_shm) { \
_ksys_thread_yield(); \
}
__EXTERN int shell_ping();
__EXTERN unsigned shell_get_pid();
__EXTERN void shell_exit();
__EXTERN char shell_getc();
__EXTERN void shell_gets(char* str, int n);
__EXTERN void shell_putc(char c);
__EXTERN void shell_puts(const char* str);
__EXTERN void shell_printf(const char* format, ...);
__EXTERN void shell_write_string(const char* s, size_t len);
__EXTERN void shell_cls();
#endif