mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
Bare shell for testing the PSX subsystem (not ready yet).
svn path=/trunk/; revision=2531
This commit is contained in:
parent
b26dfc9d77
commit
e031e6192e
2 changed files with 93 additions and 0 deletions
33
posix/apps/baresh/Makefile
Normal file
33
posix/apps/baresh/Makefile
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
# $Id: Makefile,v 1.1 2002/01/20 21:22:29 ea Exp $
|
||||||
|
#
|
||||||
|
# Tu run it in Win32 console mode, undefine __SUBSYSTEM_WINDOWS__
|
||||||
|
# and pass "console" in the ld's --subsystem option.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
PATH_TO_TOP=../../../..
|
||||||
|
|
||||||
|
PATH_TO_PSX_TOP=../..
|
||||||
|
|
||||||
|
TARGET_NAME=sh
|
||||||
|
|
||||||
|
CFLAGS=-D__SUBSYSTEM_WINDOWS__
|
||||||
|
|
||||||
|
OBJECTS=$(TARGET_NAME).o
|
||||||
|
|
||||||
|
LIBRARIES=\
|
||||||
|
$(PATH_TO_PSX_TOP)/lib/crt0w32.o \
|
||||||
|
$(PATH_TO_PSX_TOP)/lib/psxdll/psxdll.a
|
||||||
|
|
||||||
|
$(TARGET_NAME): $(OBJECTS) $(LIBRARIES)
|
||||||
|
$(CC) \
|
||||||
|
$(CFLAGS) \
|
||||||
|
$(OBJECTS) \
|
||||||
|
$(LIBRARIES)\
|
||||||
|
-o $@ \
|
||||||
|
-Wl,--subsystem,windows\
|
||||||
|
-nostartfiles \
|
||||||
|
-nostdlib
|
||||||
|
|
||||||
|
include $(PATH_TO_TOP)/rules.mak
|
||||||
|
|
||||||
|
# EOF
|
60
posix/apps/baresh/sh.c
Normal file
60
posix/apps/baresh/sh.c
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
/* $Id: sh.c,v 1.1 2002/01/20 21:22:29 ea Exp $
|
||||||
|
*
|
||||||
|
* baresh - Bare Shell for the PSX subsystem.
|
||||||
|
* Copyright (c) 2002 Emanuele Aliberti
|
||||||
|
* License: GNU GPL v2
|
||||||
|
*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <dirent.h>
|
||||||
|
|
||||||
|
#define INPUT_BUFFER_SIZE 128
|
||||||
|
|
||||||
|
int run=1;
|
||||||
|
|
||||||
|
void cmd_exit(char*buf)
|
||||||
|
{
|
||||||
|
run=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cmd_pwd(char * buf)
|
||||||
|
{
|
||||||
|
char pwd[1024];
|
||||||
|
|
||||||
|
getcwd(pwd,sizeof pwd);
|
||||||
|
printf("%s\n",pwd);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cmd_ls(char*buf)
|
||||||
|
{
|
||||||
|
char pwd[1024];
|
||||||
|
DIR * dir;
|
||||||
|
struct dirent * entry;
|
||||||
|
|
||||||
|
getcwd(pwd,sizeof pwd);
|
||||||
|
dir=opendir(pwd);
|
||||||
|
while (NULL!=(entry=readdir(dir)))
|
||||||
|
{
|
||||||
|
printf("%s\n",entry->d_name);
|
||||||
|
}
|
||||||
|
closedir(dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc,char*argv[])
|
||||||
|
{
|
||||||
|
char buf[INPUT_BUFFER_SIZE];
|
||||||
|
|
||||||
|
while (run)
|
||||||
|
{
|
||||||
|
printf("# ");
|
||||||
|
if (gets(buf))
|
||||||
|
{
|
||||||
|
if (!strcmp("exit",buf)) cmd_exit(buf);
|
||||||
|
else if (!strcmp("pwd",buf)) cmd_pwd(buf);
|
||||||
|
else if (!strcmp("ls",buf)) cmd_ls(buf);
|
||||||
|
else printf("%s: unknown command\n",argv[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* EOF */
|
Loading…
Reference in a new issue