diff --git a/posix/Makefile b/posix/Makefile deleted file mode 100644 index c26056bf918..00000000000 --- a/posix/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -all: - @echo To build "posix" there are two paths: - @echo --- - @echo 1. copy the posix folder into the reactos\modules folder - @echo 2. link reactos/modules/posix to posix - @echo UNIX - @echo cd $${ROS_SRC_ROOT}/reactos/modules - @echo ln -s $${ROS_SRC_ROOT}/posix posix - @echo WINDOWS - @echo cd %%ROS_SRC_ROOT%%\reactos\modules - @echo junction posix %%ROS_SRC_ROOT%%\posix - @echo --- - @echo Eventually you can run "make depends" in the %%ROS_SRC_ROOT%%\reactos - @echo directory to compile it. diff --git a/posix/apps/baresh/.cvsignore b/posix/apps/baresh/.cvsignore deleted file mode 100644 index 7e878167e8e..00000000000 --- a/posix/apps/baresh/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -*.o -*.d -*.exe -*.coff -*.sym diff --git a/posix/apps/baresh/Makefile b/posix/apps/baresh/Makefile deleted file mode 100644 index 89225a6eea7..00000000000 --- a/posix/apps/baresh/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -# $Id: Makefile,v 1.9 2003/01/05 18:27:19 robd Exp $ -# -# To run it in Win32 console mode, undefine __SUBSYSTEM_WINDOWS__ -# and pass "console" in the ld's --subsystem option. -# -# - -PATH_TO_TOP = ../../../reactos - -PATH_TO_PSX_TOP = ../.. - -TARGET_TYPE = program - -#TARGET_APPTYPE = console -TARGET_APPTYPE = windows - -TARGET_NAME = baresh - -TARGET_CFLAGS = -D__SUBSYSTEM_WINDOWS__ - -TARGET_LIBS = $(PATH_TO_PSX_TOP)/lib/crt0w32.o \ - $(PATH_TO_TOP)/dk/psx/lib/psxdll.a - -TARGET_OBJECTS = sh.o - -include $(PATH_TO_TOP)/rules.mak - -include $(TOOLS_PATH)/helper.mk - -# EOF diff --git a/posix/apps/baresh/baresh.rc b/posix/apps/baresh/baresh.rc deleted file mode 100644 index d8a17ab4c09..00000000000 --- a/posix/apps/baresh/baresh.rc +++ /dev/null @@ -1,4 +0,0 @@ -#define REACTOS_STR_FILE_DESCRIPTION "Bare sh for ReactOS POSIX Subsystem\0" -#define REACTOS_STR_INTERNAL_NAME "sh\0" -#define REACTOS_STR_ORIGINAL_FILENAME "sh\0" -#include diff --git a/posix/apps/baresh/sh.c b/posix/apps/baresh/sh.c deleted file mode 100644 index 394b6444c35..00000000000 --- a/posix/apps/baresh/sh.c +++ /dev/null @@ -1,60 +0,0 @@ -/* $Id: sh.c,v 1.3 2002/10/29 04:44:59 rex Exp $ - * - * baresh - Bare Shell for the PSX subsystem. - * Copyright (c) 2002 Emanuele Aliberti - * License: GNU GPL v2 - */ -#include -#include -#include - -#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 */ diff --git a/posix/apps/baresh/sh.rc b/posix/apps/baresh/sh.rc deleted file mode 100644 index efc286da8ef..00000000000 --- a/posix/apps/baresh/sh.rc +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -VS_VERSION_INFO VERSIONINFO - FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD - PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", RES_STR_COMPANY_NAME - VALUE "FileDescription", "Bare sh for POSIX+\0" - VALUE "FileVersion", RES_STR_FILE_VERSION - VALUE "InternalName", "sh\0" - VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT - VALUE "OriginalFilename", "sh\0" - VALUE "ProductName", RES_STR_PRODUCT_NAME - VALUE "ProductVersion", RES_STR_PRODUCT_VERSION - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - diff --git a/posix/apps/bootpsx/bootpsx.c b/posix/apps/bootpsx/bootpsx.c deleted file mode 100644 index 20515a26b93..00000000000 --- a/posix/apps/bootpsx/bootpsx.c +++ /dev/null @@ -1,121 +0,0 @@ -/* $Id$ - * - * PROJECT: ReactOS Operating System / POSIX Environment Subsystem - * - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write - * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, - * MA 02139, USA. - * - * -------------------------------------------------------------------- - */ -#include -#include -#include - -#define NTOS_MODE_USER -#include -#include - -#define RETRY_COUNT 3 - -/********************************************************************** - * PsxCheckSubSystem/1 - */ -NTSTATUS STDCALL -PsxCheckSubSystem (LPCSTR argv0) -{ - NTSTATUS Status = STATUS_SUCCESS; - UNICODE_STRING DirectoryName = {0, 0, NULL}; - OBJECT_ATTRIBUTES DirectoryAttributes = {0}; - HANDLE hDir = (HANDLE) 0; - - RtlInitUnicodeString (& DirectoryName, L"\\POSIX"); - InitializeObjectAttributes (& DirectoryAttributes, - & DirectoryName, - 0,0,0); - Status = NtOpenDirectoryObject (& hDir, - DIRECTORY_TRAVERSE, - & DirectoryAttributes); - if(NT_SUCCESS(Status)) - { - NtClose (hDir); - } - - return Status; -} - -/********************************************************************** - * PsxBootstrap/1 - */ -NTSTATUS STDCALL -PsxBootstrap (LPCSTR argv0) -{ - NTSTATUS Status = STATUS_SUCCESS; - UNICODE_STRING Program = {0, 0, NULL}; - HANDLE SmApiPort = (HANDLE) 0; - - - printf("Connecting to the SM: "); - Status = SmConnectApiPort (NULL, - (HANDLE) 0, - IMAGE_SUBSYSTEM_UNKNOWN, - & SmApiPort); - if(!NT_SUCCESS(Status)) - { - fprintf(stderr,"\n%s: SmConnectApiPort failed with 0x%08lx\n", - argv0, Status); - return Status; - } - RtlInitUnicodeString (& Program, L"POSIX"); - Status = SmExecuteProgram (SmApiPort, & Program); - if(STATUS_SUCCESS != Status) - { - fprintf(stderr, "%s: SmExecuteProgram = %08lx\n", argv0, Status); - } - NtClose (SmApiPort); - return Status; -} - -/********************************************************************** - * - * ENTRY POINT PUBLIC - * - *********************************************************************/ -int main (int argc, char * argv []) -{ - NTSTATUS Status = STATUS_SUCCESS; - INT RetryCount = RETRY_COUNT; - - while(RetryCount > 0) - { - Status = PsxCheckSubSystem (argv[0]); - if(STATUS_SUCCESS == Status) - { - if (RETRY_COUNT == RetryCount) - { - fprintf(stderr,"POSIX already booted.\n"); - }else{ - fprintf(stderr,"POSIX booted.\n"); - } - break; - }else{ - Status = PsxBootstrap (argv[0]); - } - -- RetryCount; - } - return NT_SUCCESS(Status) ? EXIT_SUCCESS : EXIT_FAILURE; -} -/* EOF */ diff --git a/posix/apps/bootpsx/bootpsx.rc b/posix/apps/bootpsx/bootpsx.rc deleted file mode 100644 index 7ad1217f084..00000000000 --- a/posix/apps/bootpsx/bootpsx.rc +++ /dev/null @@ -1,4 +0,0 @@ -#define REACTOS_STR_FILE_DESCRIPTION "W32 Utility to boot the POSIX Subsystem\0" -#define REACTOS_STR_INTERNAL_NAME "bootpsx\0" -#define REACTOS_STR_ORIGINAL_FILENAME "bootpsx.exe\0" -#include diff --git a/posix/apps/bootpsx/makefile b/posix/apps/bootpsx/makefile deleted file mode 100644 index a83343f10e6..00000000000 --- a/posix/apps/bootpsx/makefile +++ /dev/null @@ -1,21 +0,0 @@ -# $Id: Makefile 13504 2005-02-12 14:33:41Z ea $ - -PATH_TO_TOP = ../../../reactos - -TARGET_TYPE = program - -TARGET_APPTYPE = console - -TARGET_NAME = bootpsx - -TARGET_SDKLIBS = ntdll.a smdll.a kernel32.a - -TARGET_OBJECTS = $(TARGET_NAME).o - -TARGET_CFLAGS = -Wall -Werror - -include $(PATH_TO_TOP)/rules.mak - -include $(TOOLS_PATH)/helper.mk - -# EOF diff --git a/posix/apps/posixw32/.cvsignore b/posix/apps/posixw32/.cvsignore deleted file mode 100644 index 7e878167e8e..00000000000 --- a/posix/apps/posixw32/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -*.o -*.d -*.exe -*.coff -*.sym diff --git a/posix/apps/posixw32/00readme.txt b/posix/apps/posixw32/00readme.txt deleted file mode 100644 index 4172f568646..00000000000 --- a/posix/apps/posixw32/00readme.txt +++ /dev/null @@ -1,90 +0,0 @@ -08/08/96 - John L. Miller, johnmil@cs.cmu.edu, johnmil@jprc.com - -FILES INCLUDED: - 00readme.txt - this file - VT100.H - Definitions for VT-100 emulator. - VT100.C - Front end parsing code for VT-100 emulator - CONSOLE.C - Back-end code to allow VT-100 in WinNt/Win95 console - -Many UNIX users take terminals for granted, as something you get for free -with the operating system. Unfortunately, this isn't the case for many -non-unix operating systems, especially PC-based ones. After a number of -projects, I decided it would be nice if there was source publicly available -for doing VT-100 emulation. - -The files included with this distribution are not a complete implementation -of VT-100 terminal emulation, but do provide complete enough coverage to -use many vt-100 functions over the network. For instance, its enough to -use EMACS to edit, or to connect up to your favorite mud with ANSI color -and graphics characters. - -The VT-100 emulator is broken into two parts. The first is the front end, -vt100.c and vt100.h. These files were written to be fairly device-independant, -though admittedly if you're running under a 16-bit operating system instead -of a 32-bit, you might need to change some of the 'int' values to 'long.' -Otherwise, it should work 'as-is'. - -The second part is a back-end. The back-end is responsible for doing the -workhorse activities. The front-end parses a character stream, and decides -whether to clear a part of the screen, or move the cursor, or switch fonts. -Then it calls routines in the back-end to perform these activities. - -The back-end functions are, for the most part, very straight forward, and -quite easy to implement compared to writing a vt-100 emulator from scratch. -CONSOLE.C is a back-end for use in console (command, dos) windows under -Windows 95 and Windows NT. This console vt-100 emulator is also being used -in my TINTIN-III port and kerberized encrypted telnet port. - - -TO USE THIS VT-100 EMULATOR: - -First, it's intended to be linked directly into source code. You'll need -to change printf's and puts' in your source code to call vtprintf() and -vtputs() instead. You can add additional functions to vt100.c as you see -fit to handle other output functions like putchar() and write(). Another -routine you may want to use is vtProcessedTextOut(), which accepts a -buffer to output, and a count of characters in that buffer. - -Second, you need to make sure that your source code calls vtInitVT100() -before it does ANYTHING else. This initializes the vt-100 emulator. - -Third, if you want to use this VT-100 emulator with anything besides -Windows NT and Windows 95 consoles, you'll need to implement your own -back end. The list of functions you will need to supply, as well as what -they need to do is contained in vt100.h. The list (minus descriptions) -is as follows: - - int beInitVT100Terminal(); - int beAbsoluteCursor(int row, int col); - int beOffsetCursor(int row, int column); - int beRestoreCursor(void); - int beSaveCursor(void); - int beSetTextAttributes(int fore, int back); - int beRawTextOut(char *text, int len); - int beEraseText(int rowFrom, int colFrom, int rowTo, int colTo); - int beDeleteText(int rowFrom, int colFrom, int rowTo, int colTo); - int beInsertRow(int row); - int beTransmitText(char *text, int len); - int beAdvanceToTab(void); - int beClearTab(int col); - int beSetScrollingRows(int fromRow, int toRow); - int beRingBell(void); - int beGetTermMode(); - int beSetTermMode(int newMode); - -For details on what each of these does, read the descriptions of each -function included in vt100.h, and read over CONSOLE.C for examples. I've -included copious comments in all of these files to try to make them as -easy to use as possible. - -In any case, it should be easier than writing a VT-100 emulator from -scratch. - -KNOWN BUGS - - -o Many features of VT-100 emulation aren't implemented. This includes - support for graphics character set 0 and many of the - answerback functions. - -Well, good luck! - diff --git a/posix/apps/posixw32/Makefile b/posix/apps/posixw32/Makefile deleted file mode 100644 index 961503b3823..00000000000 --- a/posix/apps/posixw32/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -# $Id$ -# -# Win32 Terminal Emulator for the POSIX+ subsystem. -# - -PATH_TO_TOP = ../../../reactos - -PATH_TO_TOP_PSX = ../.. - -TARGET_NAME = posixw32 - -TARGET_TYPE = program - -TARGET_APPTYPE = console - -TARGET_CFLAGS = -I$(PATH_TO_TOP_PSX)/include - -TARGET_SDKLIBS = ntdll.a smdll.a kernel32.a - -TARGET_OBJECTS = \ - $(TARGET_NAME).o \ - console.o \ - vt100.o - -include $(PATH_TO_TOP)/rules.mak - -include $(TOOLS_PATH)/helper.mk - -# EOF diff --git a/posix/apps/posixw32/console.c b/posix/apps/posixw32/console.c deleted file mode 100644 index 66702c4124f..00000000000 --- a/posix/apps/posixw32/console.c +++ /dev/null @@ -1,1243 +0,0 @@ -/* console.c - * - * AUTHOR: John L. Miller, johnmil@cs.cmu.edu / johnmil@jprc.com - * DATE: 8/4/96 - * - * Copyright (c) 1996 John L. Miller - * - * Full permission is granted to use, modify and distribute - * this code, provided: - * 1) This comment field is included in its entirity - * 2) No money is charged for any work including or based on - * portions of this code. - * - * If you're a nice person and find this useful, I'd appreciate a - * note letting me know about it. e-mail is usually what spurs me - * on to improve and support software I've written. - * - * This file contains functions intended to provide the back - * end to a console window for my semi-vt100 emulator. - */ - -/* Note - one HUGE difference between console windows and terminal - * windows. Console windows displays start at (0,0). Terminal displays - * start at (1,1). YUCK! - */ - -#include -#include "vt100.h" - -int topScrollRow=TOP_EDGE; -int bottomScrollRow=BOTTOM_EDGE; - -/* This variable will contain terminal configuration flags, such as - * reverse/standard video, whether wrapping is enabled, and so on. - */ -int conTermMode; - -/* Variable to hold the cursor position for save/restore cursor calls */ -COORD cursorPosSave={1,1}; - -/* Handles to the current console for input and output */ -HANDLE hConIn, hConOut; - -/* Array of all the tabs which are currently set. Ironically, I think the - * primary emulator can CLEAR tags, but not set them. - */ -int tabSet[132]={0}; -int numTabs = 0; - - -/* This section contains console-specific color information. NT consoles can - * have Red, blue, green, and intensity flags set. Hence, 4 con_colors. - */ -#define NUM_CON_COLORS 4 - -/* Foreground and background colors are separated out */ -int conForeColors, conBackColors; - -/* mapping between foreground and background console colors: needed - * when reverse video is being used - */ -int conColorMapping[NUM_CON_COLORS][2] = -{ - {FOREGROUND_RED, BACKGROUND_RED}, - {FOREGROUND_BLUE, BACKGROUND_BLUE}, - {FOREGROUND_GREEN, BACKGROUND_GREEN}, - {FOREGROUND_INTENSITY, BACKGROUND_INTENSITY} -}; - - -/* Device-independant foreground and background flags stored here. - * probably a bad division of labor, but hey, since we don't use - * all of their flags in our console stuff (and hence can't retrieve - * them), the information has to live SOMEWHERE. - */ - -int scForeFlags, scBackFlags; - -/* Defines for array indexing for translation of flags */ -#define SC_FLAG 0 -#define CONSOLE_FLAG 1 - -/* Color mapping between SC (the vt-100 emulator device independant - * flags) and NT console character specific flags. Flags which have no analog - * are set to 0. Note that all global character attributes (character set - * underline, bold, reverse) are all stored in foreground only - */ -const int scForeMapping[NUM_SC_ATTRIBUTES][2] = -{ - {SC_RED,FOREGROUND_RED}, - {SC_GREEN,FOREGROUND_GREEN}, - {SC_BLUE,FOREGROUND_BLUE}, - {SC_BOLD,FOREGROUND_INTENSITY}, - {SC_UL,0}, - {SC_BL,0}, - {SC_RV,0}, - {SC_ASCII,0}, - {SC_G0,0}, - {SC_G1,0}, - {SC_GRAPHICS,0} -}; - -/* Background color mapping between SC and console */ -const int scBackMapping[NUM_SC_ATTRIBUTES][2] = -{ - {SC_RED,BACKGROUND_RED}, - {SC_GREEN,BACKGROUND_GREEN}, - {SC_BLUE,BACKGROUND_BLUE}, - {SC_BOLD,BACKGROUND_INTENSITY}, - {SC_UL,0}, - {SC_BL,0}, - {SC_RV,0}, - {SC_ASCII,0}, - {SC_G0,0}, - {SC_G1,0}, - {SC_GRAPHICS,0} -}; - -/* These arrays map character vals 0-255 to new values. - * Since the G0 and G1 character sets don't have a direct analog in - * NT, I'm settling for replacing the ones I know what to set them - * to. - */ -char G0Chars[256]; -char G1Chars[256]; - -/* These four sets of variables are just precomputed combinations of - * all the possible flags to save time for masking. - */ -int allFore[2], allBack[2]; -int bothFore[2], bothBack[2]; - - -/* FORWARD DECLARATIONS */ -int -RawPrintLine( - char *text, - int len, - int scrollAtEnd - ); - -int -Scroll( - int row - ); -/* END FORWARD DECLARATIONS */ - - - -/* beInitVT100Terminal() - - * - * This function is called by the VT100 emulator as soon as the - * front-end terminal is initialized. It's responsible for setting - * initial state of the terminal, and initing our many wacky variables. - */ - -int -beInitVT100Terminal() -{ - int i; - CONSOLE_SCREEN_BUFFER_INFO csbi; - - /* Set tabs to every 8 spaces initially */ - numTabs = 0; - for (numTabs=0; numTabs < 132/8; numTabs++) - tabSet[numTabs] = (numTabs+1)*8; - - /* Init the cursor save position to HOME */ - cursorPosSave.X = 1; - cursorPosSave.Y = 1; - - /* Disable scrolling window limits */ - topScrollRow=TOP_EDGE; - bottomScrollRow=BOTTOM_EDGE; - - conTermMode = ANSI_MODE|WRAP_MODE|REPEAT_MODE; - - hConIn = GetStdHandle(STD_INPUT_HANDLE); - hConOut = GetStdHandle(STD_OUTPUT_HANDLE); - - /* Init our time-saving mask variables */ - allFore[SC_FLAG] = allBack[SC_FLAG] = 0; - allFore[CONSOLE_FLAG] = allBack[CONSOLE_FLAG] = 0; - bothFore[SC_FLAG] = bothBack[SC_FLAG] = 0; - bothFore[CONSOLE_FLAG] = bothBack[CONSOLE_FLAG] = 0; - - for (i=0; i= csbi.dwSize.X) - { - cursorPos.X -= csbi.dwSize.X; - cursorPos.Y += 1; - } - - if (cursorPos.Y < 0) - cursorPos.Y = 0; - - SetConsoleCursorPosition(hConOut, cursorPos); - - return(0); -} - - -/* beRestoreCursor - - * - * Saved cursor position should be stored in a static - * variable in the back end. This function restores the - * cursor to the position stored in that variable. - */ - -int -beRestoreCursor(void) -{ - CONSOLE_SCREEN_BUFFER_INFO csbi; - COORD cursorPos; - - GetConsoleScreenBufferInfo(hConOut, &csbi); - - cursorPos = csbi.dwCursorPosition; - - cursorPos.Y += cursorPosSave.Y; - - SetConsoleCursorPosition(hConOut, cursorPos); - - return(0); -} - -/* beSaveCursor - - * - * The back-end should maintain a static variable with the - * last STORED cursor position in it. This function replaces - * the contents of that variable with the current cursor position. - * The cursor may be restored to this position by using the - * beRestoreCursor function. - */ - -int -beSaveCursor(void) -{ - CONSOLE_SCREEN_BUFFER_INFO csbi; - - GetConsoleScreenBufferInfo(hConOut, &csbi); - cursorPosSave = csbi.dwCursorPosition; - - cursorPosSave.Y -= csbi.srWindow.Top; - - return(0); -} - - -/* beGetTextAttributes - - * - * given a pointer to 'fore'ground and 'back'ground ints, - * fill them with a device-independant description of the - * current foreground and background colors, as well as any - * font information in the foreground variable. - */ - -int -beGetTextAttributes( - int *fore, - int *back - ) -{ - CONSOLE_SCREEN_BUFFER_INFO csbi; - int i; - - /* Since it's entirely possible that the text attributes were - * changed without our terminal being notified, we might as well - * make sure they're accurate. - */ - - /* First, strip out everything in the screen buffer variables - * that we can detect - */ - - scForeFlags &= ~bothFore[SC_FLAG]; - scBackFlags &= ~bothBack[SC_FLAG]; - - /* Now, find out what the real settings are, and set the - * flag values accordingly. - */ - - GetConsoleScreenBufferInfo(hConOut, &csbi); - - - /* If reverse video is set, we need to reverse our color mappings - * before any calculations get made. - */ - - if (scForeFlags & SC_RV) - { - int tmpFore, tmpBack; - - tmpFore = csbi.wAttributes & conForeColors; - tmpBack = csbi.wAttributes & conBackColors; - - csbi.wAttributes &= ~(conForeColors | conBackColors); - - for (i=0; i (csbi.dwSize.X - csbi.dwCursorPosition.X)) - end = (csbi.dwSize.X - csbi.dwCursorPosition.X); - - /* If we're in non-ascii mode, we need to do a little - * magic to get the right characters out. - */ - - if (scForeFlags & SC_G1) - { - for (i=0; i toRow) - return(-1); - - topScrollRow = fromRow; - bottomScrollRow = toRow; - - return(0); -} - - -/* beRingBell - - * - * Ring the system bell once. - */ - -int -beRingBell(void) -{ - MessageBeep((UINT)-1); - return(0); -} - - -/* beGetTermMode - - * - * Return the value of conTermMode, which is the terminal settings which - * can be queried/set by [?#h/l. - */ - -int -beGetTermMode() -{ - return(conTermMode); -} - - -/* beSetTermMode - - * - * Set the terminal as requested, assuming we can. Right now we only handle a - * couple of the possible flags, but we store many of the others. - */ - -int beSetTermMode( - int newMode - ) -{ - int i, changes; - CONSOLE_SCREEN_BUFFER_INFO csbi; - COORD newSize; - SMALL_RECT newWindowRect; - DWORD dwConMode; - - changes = conTermMode ^ newMode; - - /* For each bit set in 'changes', determine the - * appropriate course of action. - */ - - for (i=0; i < NUM_TERM_ATTR_MODES; i++) - { - if (termAttrMode[i] & changes) - { - switch(termAttrMode[i]) - { - case COL132_MODE: - GetConsoleScreenBufferInfo(hConOut, &csbi); - newSize.Y = csbi.dwSize.Y; - newSize.X = (newMode & COL132_MODE) ? 132 : 80; - if (newSize.X != csbi.dwSize.X) - { - newWindowRect.Top = csbi.srWindow.Top; - newWindowRect.Bottom = csbi.srWindow.Bottom; - newWindowRect.Left = 0; - newWindowRect.Right = csbi.dwSize.X - 1; - SetConsoleScreenBufferSize(hConOut, newSize); - SetConsoleWindowInfo(hConOut, TRUE, &newWindowRect); - } - break; - - case WRAP_MODE: - GetConsoleMode(hConOut,&dwConMode); - if ( (newMode & WRAP_MODE) - && (! (dwConMode & ENABLE_WRAP_AT_EOL_OUTPUT)) - ) - { - dwConMode |= ENABLE_WRAP_AT_EOL_OUTPUT; - SetConsoleMode(hConOut, dwConMode); - } - if ( (!(newMode & WRAP_MODE)) - && (dwConMode & ENABLE_WRAP_AT_EOL_OUTPUT) - ) - { - dwConMode &= ~ENABLE_WRAP_AT_EOL_OUTPUT; - SetConsoleMode(hConOut, dwConMode); - } - break; - - case CURSORAPPL_MODE: - case ANSI_MODE: - case SMOOTHSCROLL_MODE: - case REVSCREEN_MODE: - case ORIGINREL_MODE: - case REPEAT_MODE: - /* bugbug - we don't handle any of these. */ - break; - } - } - } - - conTermMode = newMode; - - return(0); -} diff --git a/posix/apps/posixw32/posixw32.c b/posix/apps/posixw32/posixw32.c deleted file mode 100644 index b1d214e6d59..00000000000 --- a/posix/apps/posixw32/posixw32.c +++ /dev/null @@ -1,649 +0,0 @@ -/* $Id$ - * - * PROJECT : ReactOS Operating System / POSIX+ Environment Subsystem - * DESCRIPTION: POSIXW32 - A DEC VT-100 terminal emulator for the PSX subsystem - * DESCRIPTION: that runs in the Win32 subsystem. - * COPYRIGHT : Copyright (c) 2001-2002 Emanuele Aliberti - * LICENSE : GNU GPL v2 - * DATE : 2001-05-05 - * AUTHOR : Emanuele Aliberti - * NOTE : This IS a Win32 program, but will fail if the PSX subsystem - * NOTE : is not installed. The PSX subsystem consists of two more - * NOTE : files: PSXSS.EXE, PSXDLL.DLL. - * WARNING : If you use this program under a real NT descendant, be - * WARNING : sure to have disabled the PSX subsystem. - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write - * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, - * MA 02139, USA. - * - * -------------------------------------------------------------------- - * 2002-03-16 EA Today it actually compiled. - * 2002-06-08 EA Renamed (old name was CSRTERM) - */ -#include -#include -#include - -#define NTOS_MODE_USER -#include -#include -#include - -#include "vt100.h" -#include "posixw32.h" - -/*** OPTIONS *********************************************************/ - -#define PRIVATE static - -#define INPUT_QUEUE_SIZE 32 - -#ifdef NDEBUG -#define TRACE -#else -//#define TRACE OutputDebugString(__FUNCTION__) -#define TRACE vtprintf("%s\n",__FUNCTION__) -#endif - -/*** GLOBALS *********************************************************/ - -PRIVATE LPCSTR MyName = "POSIXW32"; -PRIVATE CSRTERM_SESSION Session = -{ - 0, //Identifier - { //ServerPort - {0,0,NULL}, - L"\\"PSX_NS_SUBSYSTEM_DIRECTORY_NAME"\\"PSX_NS_SESSIONAPI_PORT_NAME, - INVALID_HANDLE_VALUE - } -}; - -/*** PRIVATE FUNCTIONS ***********************************************/ -VOID STDCALL Debug_Print (LPCSTR Format, ...) -{ - CHAR Buffer [512]; - va_list ArgumentPointer; - - va_start(ArgumentPointer, Format); - vsprintf(Buffer, Format, ArgumentPointer); - va_end(ArgumentPointer); - OutputDebugStringA (Buffer); -} -/********************************************************************** - * OutPort/2 PRIVATE - * - * DESCRIPTION - * Notify to PSXSS that input data is ready by sending a - * software interrupt on the \POSIX+\SessionPort port. - */ -PRIVATE DWORD STDCALL OutPort (PCHAR Buffer, ULONG Size) -{ - NTSTATUS Status; - PSX_TERMINAL_READ TerminalRead; -TRACE; - if (Size > 0) - { - /* LPC */ - TerminalRead.Header.MessageType = LPC_NEW_MESSAGE; - TerminalRead.PsxHeader.Context = PSX_CONNECTION_TYPE_TERMINAL; - TerminalRead.PsxHeader.Procedure = PSX_TERMINAL_INTERRUPT; - /* Terminal I/O */ - TerminalRead.Size = Size; -#if 0 - RtlCopyMemory (TerminalRead.Buffer, Buffer, Size); - Status = NtRequestWaitReplyPort ( - Session.ServerPort.Handle, - & TerminalRead - /* FIXME */ - ); -#endif - if (!NT_SUCCESS(Status)) - { - vtprintf ("%s: %s: NtRequestWaitReplyPort failed with %08x\n", - MyName, __FUNCTION__, Status); - return 0; - } - } - return Size; -} -/********************************************************************** - * ProcessConnectionRequest/1 PRIVATE - * - * DESCRIPTION - * Initialize our data for managing the control connection - * initiated by the PSXSS.EXE process. - */ -PRIVATE NTSTATUS STDCALL ProcessConnectionRequest (PLPC_MAX_MESSAGE Request) -{ - PPSX_CONNECT_PORT_DATA ConnectData = (PPSX_CONNECT_PORT_DATA) & Request->Data; - -TRACE; - if (PSX_CONNECTION_TYPE_SERVER != ConnectData->ConnectionType) - { - - return STATUS_UNSUCCESSFUL; - } - if (PSX_LPC_PROTOCOL_VERSION != ConnectData->Version) - { - - return STATUS_UNSUCCESSFUL; - } - Session.SsLinkIsActive = TRUE; - return STATUS_SUCCESS; -} -/********************************************************************** - * ProcessRequest/1 PRIVATE - * - * DESCRIPTION - * - */ -PRIVATE NTSTATUS STDCALL ProcessRequest (PPSX_MAX_MESSAGE Request) -{ -TRACE; - /* TODO */ - vtprintf("TEST VT-100\n"); - - return STATUS_SUCCESS; -} -/********************************************************************** - * PsxSessionPortListener/1 PRIVATE - * - * DESCRIPTION - * Manage messages from the PSXSS, that is LPC messages we get - * from the PSXSS process to our \POSIX+\Sessions\P port. - * - * NOTE - * This function is the thread 's entry point created in - * CreateSessionObiects(). - */ -PRIVATE DWORD STDCALL PsxSessionPortListener (LPVOID Arg) -{ - NTSTATUS Status; - LPC_TYPE RequestType; - PSX_MAX_MESSAGE Request; - PPSX_MAX_MESSAGE Reply = NULL; - BOOL NullReply = FALSE; - -TRACE; - - while (TRUE) - { - Reply = NULL; - NullReply = FALSE; - while (!NullReply) - { - Status = NtReplyWaitReceivePort ( - Session.Port.Handle, - 0, - (PLPC_MESSAGE) Reply, - (PLPC_MESSAGE) & Request - ); - if (!NT_SUCCESS(Status)) - { - break; - } - RequestType = PORT_MESSAGE_TYPE(Request); - switch (RequestType) - { - case LPC_CONNECTION_REQUEST: - ProcessConnectionRequest ((PLPC_MAX_MESSAGE) & Request); - NullReply = TRUE; - continue; - case LPC_CLIENT_DIED: - case LPC_PORT_CLOSED: - case LPC_DEBUG_EVENT: - case LPC_ERROR_EVENT: - case LPC_EXCEPTION: - NullReply = TRUE; - continue; - default: - if (RequestType != LPC_REQUEST) - { - NullReply = TRUE; - continue; - } - } - Reply = & Request; - Reply->PsxHeader.Status = ProcessRequest (& Request); - NullReply = FALSE; - } - if ((STATUS_INVALID_HANDLE == Status) || - (STATUS_OBJECT_TYPE_MISMATCH == Status)) - { - break; - } - } - Session.SsLinkIsActive = FALSE; - TerminateThread (GetCurrentThread(), Status); -} -/********************************************************************** - * CreateSessionObiects/1 PRIVATE - * - * DESCRIPTION - * Create the session objects which are mananged by our side: - * - * \POSIX+\Sessions\P - * \POSIX+\Sessions\D - */ -PRIVATE NTSTATUS STDCALL CreateSessionObjects (DWORD Pid) -{ - NTSTATUS Status; - ULONG Id = 0; - OBJECT_ATTRIBUTES Oa; - LARGE_INTEGER SectionSize = {PSX_TERMINAL_SECTION_SIZE,0}; - -TRACE; - - - /* Critical section */ - Status = RtlInitializeCriticalSection (& Session.Lock); - if (!NT_SUCCESS(Status)) - { - vtprintf ( - "%s: %s: RtlInitializeCriticalSection failed with %08x\n", - MyName, __FUNCTION__, Status); - return Status; - } - /* Port and port management thread */ - swprintf ( - Session.Port.NameBuffer, - PSX_NS_SESSION_PORT_TEMPLATE, - PSX_NS_SUBSYSTEM_DIRECTORY_NAME, - PSX_NS_SESSION_DIRECTORY_NAME, - Pid - ); - OutputDebugStringW(Session.Port.NameBuffer); - RtlInitUnicodeString (& Session.Port.Name, Session.Port.NameBuffer); - InitializeObjectAttributes (& Oa, & Session.Port.Name, 0, NULL, NULL); - Status = NtCreatePort (& Session.Port.Handle, & Oa, 0, 0, 0x10000); - if (!NT_SUCCESS(Status)) - { - RtlDeleteCriticalSection (& Session.Lock); - vtprintf ("%s: %s: NtCreatePort failed with %08x\n", - MyName, __FUNCTION__, Status); - return Status; - } - Session.Port.Thread.Handle = - CreateThread ( - NULL, - 0, - PsxSessionPortListener, - 0, - CREATE_SUSPENDED, - & Session.Port.Thread.Id - ); - if ((HANDLE) NULL == Session.Port.Thread.Handle) - { - Status = (NTSTATUS) GetLastError(); - NtClose (Session.Port.Handle); - RtlDeleteCriticalSection (& Session.Lock); - vtprintf ("%s: %s: CreateThread failed with %d\n", - MyName, __FUNCTION__, Status); - return Status; - } - /* Section */ - swprintf ( - Session.Section.NameBuffer, - PSX_NS_SESSION_DATA_TEMPLATE, - PSX_NS_SUBSYSTEM_DIRECTORY_NAME, - PSX_NS_SESSION_DIRECTORY_NAME, - Pid - ); - OutputDebugStringW(Session.Section.NameBuffer); - RtlInitUnicodeString (& Session.Section.Name, Session.Section.NameBuffer); - InitializeObjectAttributes (& Oa, & Session.Section.Name, 0, 0, 0); - Status = NtCreateSection ( - & Session.Section.Handle, - SECTION_ALL_ACCESS, /* DesiredAccess */ - & Oa, - & SectionSize, - PAGE_READWRITE, /* Protect 4 */ - SEC_COMMIT, /* Attributes */ - 0 /* FileHandle: 0=pagefile.sys */ - ); - if (!NT_SUCCESS(Status)) - { - NtClose (Session.Port.Handle); - NtTerminateThread (Session.Port.Thread.Handle, Status); - RtlDeleteCriticalSection (& Session.Lock); - vtprintf ("%s: %s: NtCreateSection failed with %08x\n", - MyName, __FUNCTION__, Status); - return Status; - } - Session.Section.BaseAddress = NULL; - Session.Section.ViewSize = SectionSize.u.LowPart; - Status = NtMapViewOfSection ( - Session.Section.Handle, - NtCurrentProcess(), - & Session.Section.BaseAddress, - 0, /* ZeroBits */ - 0, /* Commitsize */ - 0, /* SectionOffset */ - & Session.Section.ViewSize, - ViewUnmap, - 0, /* AllocationType */ - PAGE_READWRITE /* Protect 4 */ - ); - if (!NT_SUCCESS(Status)) - { - NtClose (Session.Port.Handle); - NtTerminateThread (Session.Port.Thread.Handle, Status); - NtClose (Session.Section.Handle); - RtlDeleteCriticalSection (& Session.Lock); - vtprintf ("%s: %s: NtMapViewOfSection failed with %08x\n", - MyName, __FUNCTION__, Status); - return Status; - } - return Status; -} -/********************************************************************** - * RunPsxSs/0 - * - * DESCRIPTION - * This function is called only when initializing the session - * with PSXSS fails. We assume that it failed because the - * subsystem, being optional, is not running, therefore we - * ask the SM to start it up. - */ -PRIVATE NTSTATUS RunPsxSs(VOID) -{ - NTSTATUS Status; - HANDLE SmApiPort; - UNICODE_STRING Program; - - RtlInitUnicodeString (& Program, L"POSIX"); - Status = SmConnectApiPort (NULL, 0, 0, & SmApiPort); - if(!NT_SUCCESS(Status)) - { - return Status; - } - Status = SmExecuteProgram (SmApiPort, & Program); - NtClose (SmApiPort); - return Status; -} -/********************************************************************** - * CreateTerminalToPsxChannel/0 PRIVATE - * - * DESCRIPTION - * - */ -PRIVATE NTSTATUS STDCALL CreateTerminalToPsxChannel (VOID) -{ - PSX_CONNECT_PORT_DATA ConnectData; - ULONG ConnectDataLength = sizeof ConnectData; - SECURITY_QUALITY_OF_SERVICE Sqos; - NTSTATUS Status; - LONG Count = 2; - -TRACE; - - - /* - * Initialize the connection data object before - * calling PSXSS. - */ - ConnectData.ConnectionType = PSX_CONNECTION_TYPE_TERMINAL; - ConnectData.Version = PSX_LPC_PROTOCOL_VERSION; - /* - * Try connecting to \POSIX+\SessionPort. - */ - RtlInitUnicodeString (& Session.ServerPort.Name, Session.ServerPort.NameBuffer); - while (Count--) - { - OutputDebugStringW(Session.ServerPort.Name.Buffer); - Status = NtConnectPort ( - & Session.ServerPort.Handle, - & Session.ServerPort.Name, - & Sqos, - NULL, - NULL, - 0, - & ConnectData, - & ConnectDataLength - ); - if (STATUS_SUCCESS != Status) - { - if(Count) - { - vtprintf("%s: %s: asking SM to start PSXSS...\n",MyName,__FUNCTION__); - RunPsxSs(); - continue; - } - vtprintf ("%s: %s: NtConnectPort failed with %08x\n", - MyName, __FUNCTION__, Status); - return Status; - } - break; - } - Session.Identifier = ConnectData.PortIdentifier; - return STATUS_SUCCESS; -} - -/********************************************************************** - * InitializeSsIoChannel PRIVATE - * - * DESCRIPTION - * Connect to the session port (CreateControChannel) of the PSX - * subsystem. If that succeeds, create our objects in the system - * name space (CreateSessionObjects). - */ -PRIVATE NTSTATUS STDCALL InitializeSsIoChannel (VOID) -{ - NTSTATUS Status = STATUS_SUCCESS; - DWORD Pid = GetCurrentProcessId(); - -TRACE; - - - Status = CreateTerminalToPsxChannel (); - if (STATUS_SUCCESS != Status) - { - vtprintf ("%s: %s: CreateTerminalToPsxChannel failed with %08x\n", - MyName, __FUNCTION__, Status); - return Status; - } - Status = CreateSessionObjects (Pid); - if (STATUS_SUCCESS != Status) - { - vtprintf ("%s: %s: CreateSessionObjects failed with %08x\n", - MyName, __FUNCTION__, Status); - return Status; - } - return STATUS_SUCCESS; -} -/********************************************************************** - * PsxCreateLeaderProcess/1 PRIVATE - * - * DESCRIPTION - * Create a new PSXSS process. We are running under Win32 server - * and can not run directly a PSX image: we make SM run it for us. - * - */ -PRIVATE NTSTATUS STDCALL PsxCreateLeaderProcess (char * Command) -{ - NTSTATUS Status; -TRACE; - - if (NULL == Command) - { - Command = "sh"; - } - /* TODO: request SM to create the process: LPC:SmExecPgm() */ - vtprintf ("%s: %s: calling SMSS not implemented!", MyName, __FUNCTION__); - return STATUS_SUCCESS; -} -/********************************************************************** - * PrintInformationProcess/0 - * - * DESCRIPTION - */ -PRIVATE VOID STDCALL PrintInformationProcess (VOID) -{ - -TRACE; - - vtputs ("Leader:"); - vtprintf (" UniqueProcess %08x\n", Session.Client.UniqueProcess); - vtprintf (" UniqueThread %08x\n", Session.Client.UniqueThread); -} -/********************************************************************** - * PostMortem/0 - * - * DESCRIPTION - */ -PRIVATE INT STDCALL PostMortem (VOID) -{ - DWORD ExitCode; - -TRACE; - - - PrintInformationProcess (); - if (TRUE == GetExitCodeProcess (Session.Client.UniqueProcess, & ExitCode)) - { - vtprintf (" ExitCode %d\n", ExitCode); - } - return 0; -} -/********************************************************************** - * InputTerminalEmulator/0 - * - * DESCRIPTION - * Process user terminal input. - * - * NOTE - * This code is run in the main thread. - */ -PRIVATE BOOL STDCALL InputTerminalEmulator (VOID) -{ - HANDLE StandardInput; - INPUT_RECORD InputRecord [INPUT_QUEUE_SIZE]; - DWORD NumberOfEventsRead = 0; - INT CurrentEvent; - - -TRACE; - - StandardInput = GetStdHandle (STD_INPUT_HANDLE); - if (INVALID_HANDLE_VALUE == StandardInput) - { - return FALSE; - } - while ((TRUE == Session.SsLinkIsActive) && - ReadConsoleInput ( - StandardInput, - InputRecord, - (sizeof InputRecord) / sizeof (INPUT_RECORD), - & NumberOfEventsRead - )) - { - for ( CurrentEvent = 0; - (CurrentEvent < NumberOfEventsRead); - CurrentEvent ++ - ) - { - switch (InputRecord [CurrentEvent].EventType) - { - case KEY_EVENT: - OutPort (& InputRecord [CurrentEvent].Event.KeyEvent.uChar.AsciiChar, 1); - break; - case MOUSE_EVENT: - /* TODO: send a sequence of move cursor codes */ - /* InputRecord [CurrentEvent].Event.MouseEvent; */ - break; - case WINDOW_BUFFER_SIZE_EVENT: - /* TODO: send a SIGWINCH signal to the leader process. */ - /* InputRecord [CurrentEvent].Event.WindowBufferSizeEvent.dwSize; */ - break; - /* Next events should be ignored. */ - case MENU_EVENT: - vtprintf ("%s: %s: MENU_EVENT received from CSRSS\n", MyName, __FUNCTION__); - case FOCUS_EVENT: - vtprintf ("%s: %s: FOCUS_EVENT received from CSRSS\n", MyName, __FUNCTION__); - break; - } - } - NumberOfEventsRead = 0; - } - return TRUE; -} -/********************************************************************** - * Startup/1 - * - * DESCRIPTION - * Initialize the program. - */ -PRIVATE VOID STDCALL Startup (LPSTR Command) -{ - NTSTATUS Status; - DWORD ThreadId; - - -TRACE; - - /* PSX process info */ - Session.Client.UniqueProcess = INVALID_HANDLE_VALUE; - Session.Client.UniqueThread = INVALID_HANDLE_VALUE; - /* Initialize the VT-100 emulator */ - vtInitVT100 (); - /* Connect to PSXSS */ - Status = InitializeSsIoChannel (); - if (!NT_SUCCESS(Status)) - { - vtprintf ("%s: failed to connect to PSXSS (Status=%08x)!\n", - MyName, Status); - exit (EXIT_FAILURE); - } - /* Create the leading process for this session */ - Status = PsxCreateLeaderProcess (Command); - if (!NT_SUCCESS(Status)) - { - vtprintf ("%s: failed to create the PSX process (Status=%08x)!\n", - MyName, Status); - exit (EXIT_FAILURE); - } -} -/********************************************************************** - * Shutdown/0 PRIVATE - * - * DESCRIPTION - * Shutdown the program. - */ -PRIVATE INT STDCALL Shutdown (VOID) -{ - -TRACE; - - /* TODO: try exiting cleanly: close any open resource */ - /* TODO: notify PSXSS the session is terminating */ - RtlDeleteCriticalSection (& Session.Lock); - return PostMortem (); -} -/********************************************************************** - * - * ENTRY POINT PUBLIC - * - *********************************************************************/ -int main (int argc, char * argv []) -{ - -TRACE; - - Startup (argv[1]); /* Initialization */ - InputTerminalEmulator (); /* Process user input */ - return Shutdown (); -} -/* EOF */ diff --git a/posix/apps/posixw32/posixw32.h b/posix/apps/posixw32/posixw32.h deleted file mode 100644 index d3e1626fcf5..00000000000 --- a/posix/apps/posixw32/posixw32.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef _CSRTERM_H -#define _CSRTERM_H - -/* PSX session: CSR terminal emulator side */ - -#define NAME_BUFFER_SIZE 64 - -typedef struct _PSXSS_PORT -{ - UNICODE_STRING Name; - WCHAR NameBuffer [NAME_BUFFER_SIZE]; - HANDLE Handle; - -} PSXSS_PORT, * PPSXSS_PORT; - -typedef struct _CSRTERM_SESSION_PORT -{ - UNICODE_STRING Name; - WCHAR NameBuffer [NAME_BUFFER_SIZE]; - HANDLE Handle; - struct { - HANDLE Handle; - DWORD Id; - } Thread; - -} CSRTERM_SESSION_PORT; - -typedef struct _CSRTERM_SESSION_SECTION -{ - UNICODE_STRING Name; - WCHAR NameBuffer [NAME_BUFFER_SIZE]; - HANDLE Handle; - ULONG Size; - PVOID BaseAddress; - ULONG ViewSize; - -} CSRTERM_SESSION_SECTION; - -typedef struct _CSRTERM_SESSION -{ - ULONG Identifier; /* PortID for ServerPort in PSXSS */ - PSXSS_PORT ServerPort; /* \POSIX+\SessionPort */ - CSRTERM_SESSION_PORT Port; /* \POSIX+\Sessions\P */ - CSRTERM_SESSION_SECTION Section; /* \POSIX+\Sessions\D */ - CLIENT_ID Client; - CRITICAL_SECTION Lock; - BOOL SsLinkIsActive; - -} CSRTERM_SESSION, * PCSRTERM_SESSION; - -#define LOCK_SESSION RtlEnterCriticalSection(& Session.Lock) -#define UNLOCK_SESSION RtlLeaveCriticalSection(& Session.Lock) -#endif /* ndef _CSRTERM_H */ diff --git a/posix/apps/posixw32/posixw32.rc b/posix/apps/posixw32/posixw32.rc deleted file mode 100644 index f29da60632c..00000000000 --- a/posix/apps/posixw32/posixw32.rc +++ /dev/null @@ -1,6 +0,0 @@ -/* $Id$ */ -#define REACTOS_STR_FILE_DESCRIPTION "W32 Terminal Emulator for POSIX+ LPC pseudo tty\0" -#define REACTOS_STR_INTERNAL_NAME "posixw32\0" -#define REACTOS_STR_ORIGINAL_FILENAME "posixw32.exe\0" -#include -/* EOF */ diff --git a/posix/apps/posixw32/readme.txt b/posix/apps/posixw32/readme.txt deleted file mode 100644 index 4a81a20059c..00000000000 --- a/posix/apps/posixw32/readme.txt +++ /dev/null @@ -1,80 +0,0 @@ -$Id: readme.txt,v 1.3 2002/10/29 04:45:05 rex Exp $ - -posixw32 - a Win32 client terminal emulator for the POSIX+ subsystem - -SYNOPSYS - - posixw32 [program] - - program program to be run in the terminal; if none is given, - the shell for the current user (W32 session's) is - used. - -DESCRIPTION - - posixw32 emulates a DEC VT-100 terminal (on top of the CSRSS - subsystem, hence the name) which is the controlling terminal - for a process [program] running in the context of the PSX - subsystem. posixw32 is a Win32 console application, not a PSX - application. The process created by the PSX subsystem on behalf - of posixw32 is not the child of the posixw32 instance that - requested it. posixw32 simply performs terminal I/O in the CSRSS - world (the W32 world!) for [program]. - -NOTES - - The role of posixw32 is creating a session in the PSX subsystem - managing any I/O for it. This is how it works: - - 1. posixw32 creates two well known named objects in the system - name space that will allow the PSX subsystem server to build - the I/O channel for the session. To let the PSX subsystem - process recognize the objects, they contain a numeric suffix - which is the process identifier (n) the system gives to each - instance of posixw32: - - \POSIX+\Session\Pn LPC port (IPC rendez-vous object) - \POSIX+\Session\Dn section (shared memory object) - - posixw32 also creates a new thread to manage the calls though - the LPC port. Port Pn is used by the subsystem to control the - terminal which posixw32 emulates. - - 2. posixw32 connects to the PSX subsystem session port - - \POSIX+\SessionPort - - and asks the subsystem to create a new session. - - 3. The PSX subsystem, if it decides to accept the request, creates - a new session for that calling instance of posixw32 (n), and in - turn connects back to the terminal control port - - \POSIX+\Session\Pn - - 4. When posixw32 makes the PSX subsystem create the new session, it - also tells the subsystem what program should be the session - leader process. The PSX subsystem creates that process (the - image file to start must be marked IMAGE_SUBSYSTEM_POSIX_GUI or - IMAGE_SUBSYSTEM_POSIX_CUI). - - 5. The requested process [program] runs in the context of the - PSX subsystem and performs any terminal I/O via the channel - posixw32 and the PSX susbstem created. - -REVISIONS - 2001-05-05 created - 2002-03-03 simplified - 2002-06-08 renamed to avoid future name clash - -AUTHOR - - Emanuele Aliberti - -CREDITS - - John L. Miller (johnmil@cs.cmu.edu, johnmil@jprc.com) code for - a basic VT-100 emulator for Win32 consoles is used to process - tc* calls output. - -EOF diff --git a/posix/apps/posixw32/vt100.c b/posix/apps/posixw32/vt100.c deleted file mode 100644 index 5d7f52dc9ae..00000000000 --- a/posix/apps/posixw32/vt100.c +++ /dev/null @@ -1,1124 +0,0 @@ -/* vt100.c - * - * AUTHOR: John L. Miller, johnmil@cs.cmu.edu / johnmil@jprc.com - * DATE: 8/4/96 - * - * Copyright (c) 1996 John L. Miller - * - * Full permission is granted to use, modify and distribute - * this code, provided: - * 1) This comment field is included in its entirity - * 2) No money is charged for any work including or based on - * portions of this code. - * - * If you're a nice person and find this useful, I'd appreciate a - * note letting me know about it. e-mail is usually what spurs me - * on to improve and support software I've written. - * - */ - -/* This is the main code body for my generic vt-100 emulator. This code - * body provides parsing for most of the vt-100 escape sequences, but it - * doesn't actually do anything with some of them. The idea behind this - * parser is to provide a generic front-end that you can initialize, then - * send all of your output to. The output is parsed by the routines in this - * program, then spit out to a back-end. - * - * What back-end you say? Well, the one you have to supply yourself. There's a - * dozen or so routines you have to provide for character-based I/O, cursor - * movement, erasing and deleting text, and setting text and terminal attributes. - * - * For a list of the routines your back end must supply, read vt100.h closely. - * - * In case it's not obvious, these routines were written for a system running win32. - * for vt100.c and vt100.h, most of the code should be easily portable to other - * operating systems. Yeah, like they NEED a vt-100 emulator :p - */ - -#include -#include -#include -#include "vt100.h" - - -/* NOTE - many of the functions look like they should - * take X-Y pairs. Bear in mind this is a text display, - * so for this we're talking ROWS and COLUMNS. So parm - * lists go (row, column), which is the opposite of (x, y). - */ - -char cBuffer[MAXVTBUFLEN+1]; /* terminal output buffer for unprocessed characters */ -int BufLen; /* Number of characters in cBuffer waiting for output */ - -/* List of all device-independant colors. These colors will be transmitted to a - * back-end routine responsible for setting the foreground and background text - * colors appropriately. Note that the color combinations are ordered to correspond - * with combinations of red (0x1), green (0x2) and blue (0x4) bit flags. - */ - -int ScColorTrans[8]= { 0, - SC_RED, - SC_GREEN, - SC_RED|SC_GREEN, - SC_BLUE, - SC_RED|SC_BLUE, - SC_RED|SC_GREEN, - SC_RED|SC_GREEN|SC_BLUE - }; - - -/* List of terminal attributes which we track (used by [?#h and [?#l) */ - -int termAttrMode[NUM_TERM_ATTR_MODES] = { 0, - CURSORAPPL_MODE, - ANSI_MODE, - COL132_MODE, - SMOOTHSCROLL_MODE, - REVSCREEN_MODE, - ORIGINREL_MODE, - WRAP_MODE, - REPEAT_MODE, - }; - -/* FORWARD FUNCTION DECLARATIONS - - * these functions are intended for use only in this module */ - -static int ProcessBracket(int Start); -static int ProcessEscape(int Start); -static int ProcessControl(int Start); -static int ProcessBuffer(void); - -/* END FORWARD FUNCTION DECLARATIONS */ - - - -/* vtputs() - - * - * front-end 'puts()' substitute. Call this routine instead - * of 'puts()', and it'll pass the output through the vt100 emulator. - */ - -vtputs(char *f) -{ - char cbuf[1024]; - - strcpy(cbuf,f); - strcat(cbuf,"\n"); - vtProcessedTextOut(cbuf, strlen(cbuf)); - - return(0); -} - - -/* vtprintf - - * - * This routine is a substitute for printf(). Call this routine with the - * same parameters you would use for printf, and output will be channelled - * through the vt-100 emulator. - */ - -vtprintf(char *format, ...) -{ - char cbuf[1024]; - va_list va; - - va_start(va, format); - vsprintf(cbuf,format, va); - va_end(va); - - vtProcessedTextOut(cbuf, strlen(cbuf)); - - return(0); -} - -/* vtInitVT100 - - * - * Set the initial state of the VT-100 emulator, and call the initialization - * routine for the back end. This routine MUST be invoked before any other, or - * the VT-100 emulator will most likely roll over and die. - */ - -vtInitVT100(void) -{ - int i=0; - - cBuffer[0]='\0'; - BufLen=0; - - beInitVT100Terminal(); /* call the back-end initialization. */ - - return(0); -} - - -/* ProcessBracket - - * - * Helper routine for processing escape sequences. By the time this - * routine is invoked, '[' has already been read in the input - * stream. 'Start' is an index in cBuffer to the ''. - * - * If an escape sequence is successfully parsed, return the index of the - * first character AFTER the escape sequence. Otherwise, return 'Start'. - * - */ - -static int ProcessBracket(int Start) -{ - int End; /* Current character being examined in cBuffer */ - int args[10], numargs=0; /* numerical args after [ */ - int iMode; - int i; - int itmp=0; - int left; - int iForeground, iBackground; - - /* If there's no valid escape sequence, return as we were called. */ - - if ((cBuffer[Start+1] != '[')||(Start+2 >= BufLen)) - return(Start); - - End = Start + 2; - - /* Loop through the buffer, hacking out all numeric - * arguments (consecutive string of digits and - * semicolons - */ - - do { - itmp = 0; /* itmp will hold the current arguments integer value */ - - /* the semicolon is a delimiter */ - if (cBuffer[End] == ';') - { - End++; - - if (End >= BufLen) - return(Start); - } - - /* Parse this argument into a number. */ - - while (isdigit(cBuffer[End])) - { - itmp = itmp*10 + (cBuffer[End]-'0'); - End++; - if (End >= BufLen) - return(Start); - } - - /* Save the numeric argument if we actually - * parsed a number. - */ - - if (End != Start + 2) - args[numargs++] = itmp; - - } while (cBuffer[End] == ';'); - - /* At this point, we've come across a character that isn't a number - * and isn't a semicolon. This means it is the command specifier. - */ - - /* Number of characters left in the input stream. I don't use - * this as rigorously as I should here. - */ - - left = BufLen - End; - - /* Return if there's definitely not enough characters for a - * full escape sequence. - */ - - if (left <= 0) - return(Start); - - /* Giant switch statement, parsing the command specifier that followed - * up [arg;arg;...arg - */ - - switch (cBuffer[End]) - { - /* Cursor Up: Esc [ Pn A */ - case 'A': - beOffsetCursor(numargs ? -args[0] : -1, 0); - End += 1; - break; - - /* Cursor Down: Esc [ Pn B */ - case 'B': - beOffsetCursor(numargs ? args[0] : 1, 0); - End += 1; - break; - - /* Cursor Right: Esc [ Pn C */ - case 'C': - beOffsetCursor(0, numargs ? args[0] : 1); - End += 1; - break; - - /* Cursor Left: Esc [ Pn D */ - case 'D': - beOffsetCursor(0, numargs ? -args[0] : -1); - End += 1; - break; - - /* Direct Addressing : Esc [ Pn(row);Pn(col)H or - * Esc [ Pn(row);Pn(col)f - */ - case 'H': - case 'f': - if (numargs == 0) - beAbsoluteCursor(1,1); - else if (numargs == 1) - beAbsoluteCursor(args[0] > 0 ? args[0] : 1,1); - else if (numargs == 2) - beAbsoluteCursor(args[0] > 0 ? args[0] : 1, args[1] > 0 ? args[1] : 1); - - End += 1; - break; - - /* Erase from Cursor to end of screen Esc [ J - * Erase from Beginning of screen to cursor Esc [ 1 J - * Erase Entire screen Esc [ 2 J - */ - case 'J': - if (numargs == 0) - beEraseText(CUR_ROW, CUR_COL, BOTTOM_EDGE, RIGHT_EDGE); - else if (args[0] == 1) - beEraseText(TOP_EDGE, LEFT_EDGE, CUR_ROW, CUR_COL); - else - beEraseText(TOP_EDGE, LEFT_EDGE, BOTTOM_EDGE, RIGHT_EDGE); - - End += 1; - break; - - /* Erase from Cursor to end of line Esc [ K - * Erase from Beginning of line to cursor Esc [ 1 K - * Erase Entire line Esc [ 2 K - */ - case 'K': - if (numargs == 0) - beEraseText(CUR_ROW, CUR_COL, CUR_ROW, RIGHT_EDGE); - else if (args[0] == 1) - beEraseText(CUR_ROW, LEFT_EDGE, CUR_ROW, CUR_COL); - else - beEraseText(CUR_ROW, LEFT_EDGE, CUR_ROW, RIGHT_EDGE); - - End += 1; - break; - - - /* Set Graphics Rendition: - * ESC[#;#;....;#m - * The graphics rendition is basically foreground and background - * color and intensity. - */ - case 'm': - beGetTextAttributes(&iForeground, &iBackground); - - if (numargs < 1) - { - /* If we just get ESC[m, treat it as though - * we should shut off all extra text - * attributes - */ - - iForeground &= ~(SC_BOLD|SC_UL|SC_BL|SC_RV|SC_GRAPHICS|SC_G0|SC_G1); - iForeground |= SC_ASCII; - - beSetTextAttributes(iForeground, iBackground); - End += 1; - break; - } - - /* Loop through all the color specs we got, and combine them - * together. Note that things like 'reverse video', 'bold', - * and 'blink' are only applied to the foreground. The back end - * is responsible for applying these properties to all text. - */ - for (i=0; i < numargs; i++) - { - switch(args[i]) - { - /* 0 for normal display */ - case 0: - iForeground &= ~SC_BOLD; - break; - - /* 1 for bold on */ - case 1: - iForeground |= SC_BOLD; - break; - - /* 4 underline (mono only) */ - case 4: - iForeground |= SC_UL; - break; - - /* 5 blink on */ - case 5: - iForeground |= SC_BL; - break; - - /* 7 reverse video on */ - case 7: - iForeground |= SC_RV; - break; - - /* 8 nondisplayed (invisible) BUGBUG - not doing this. */ - - - /* 30-37 is bit combination of 30+ red(1) green(2) blue(4) - * 30 black foreground - */ - case 30: - case 31: - case 32: - case 33: - case 34: - case 35: - case 36: - case 37: - iForeground &= ~(SC_RED|SC_GREEN|SC_BLUE); - iForeground |= ScColorTrans[args[i]-30]; - break; - - /* 40-47 is bit combo similar to 30-37, but for background. */ - case 40: - case 41: - case 42: - case 43: - case 44: - case 45: - case 46: - case 47: - iBackground &= ~(SC_RED|SC_GREEN|SC_BLUE); - iBackground |= ScColorTrans[args[i]-30]; - break; - } - } - - beSetTextAttributes(iForeground, iBackground); - - End += 1; - break; - - - /* - * Set with Esc [ Ps h - * Reset with Esc [ Ps l - * Mode name Ps Set Reset - * ------------------------------------------------------------------- - * Keyboard action 2 Locked Unlocked - * Insertion 4 Insert Overwrite - * Send - Receive 12 Full Echo - * Line feed/New line 20 New line Line feed - */ - case 'h': - case 'l': - /* BUGBUG - many of the terminal modes are set with '?' as the - * first character rather than a number sign. These are dealt with - * later in this switch statement because they must be. Most other - * settings are just ignored, however. - */ - End += 1; - break; - - /* Insert line Esc [ Pn L */ - case 'L': - beInsertRow(CUR_ROW); - End += 1; - break; - - /* Delete line Esc [ Pn M */ - case 'M': - do { - beDeleteText(CUR_ROW,LEFT_EDGE, CUR_ROW, RIGHT_EDGE); - } while (--args[0] > 0); - - End += 1; - break; - - /* Delete character Esc [ Pn P */ - case 'P': - do { - beDeleteText(CUR_ROW, CUR_COL, CUR_ROW, CUR_COL); - } while (--args[0] > 0); - End += 1; - break; - - /* Set the Scrolling region Esc [ Pn(top);Pn(bot) r */ - case 'r': - if (numargs == 0) - beSetScrollingRows(TOP_EDGE,BOTTOM_EDGE); - else if (numargs == 2) - beSetScrollingRows(args[0],args[1]); - End += 1; - break; - - /* Print screen or region Esc [ i - * Print cursor line Esc [ ? 1 i - * Enter auto print Esc [ ? 5 i - * Exit auto print Esc [ ? 4 i - * Enter print controller Esc [ 5 i - * Exit print controller Esc [ 4 i - */ - case 'i': - /* BUGBUG - print commands are not acted upon. */ - End += 1; - break; - - - /* Clear tab at current column Esc [ g - * Clear all tabs Esc [ 3 g - */ - case 'g': - if (numargs == 0) - beClearTab(CUR_COL); - else - if ((numargs == 1) && (args[0] == 3)) - beClearTab(ALL_TABS); - - End += 1; - break; - - /* BUGBUG - queries which require responses are ignored. */ - - /* Esc [ c DA:Device Attributes - * or - * - * Esc [ x DECREQTPARM: Request Terminal Parameters - * * values other than 1 are ignored. Upon - * receipt of a value of 1, the following - * response is sent: - * Esc[3;;;;;1;0x - * - * * Where , , , and - * are as for VT100s with the following - * exceptions: - * Values of 5 and 6 bits per - * character are sent as 7 bits. - * , - * These two numbers will always - * be the same. 9600 baud is - * sent for 7200 baud. - * - * Esc [ Ps n DSR: Device Status Report - * * Parameter values other than 5, 6, are ignored. - * If the parameter value is 5, the sequence - * Esc [ O n is returned. If the parameter value is - * 6, the CPR: Cursor Position Report sequence - * Esc [ Pn ; Pn R is returned with the Pn set to - * cursor row and column numbers. - * - * Cursor Controls: - * ESC[#;#R Reports current cursor line & column - */ - - /* spec [h [l - * Cursor key ?1 Application Cursor - * ANSI/VT52 ?2 ANSI VT52 - * Column ?3 132 80 - * Scrolling ?4 Smooth Jump - * Screen ?5 Reverse Normal - * Origin ?6 Relative Absolute - * Wraparound ?7 Wrap Truncate - * Auto key repeat ?8 Repeating No repeat - */ - case '?': - /* We didn't catch the numeric argument because the '?' stopped - * it before. Parse it now. - */ - args[0]=0; - while (isdigit(cBuffer[++End])) - { - if (End >= BufLen) - return(Start); - args[0] = 10*args[0] + (cBuffer[End]-'0'); - } - - /* If we don't handle this particular '?' command (and - * there are plenty we don't) then just ignore it. - */ - if ( (args[0] > 8) - ||( (cBuffer[End] != 'l') && (cBuffer[End] != 'h')) - ) - { - End++; - if (End >= BufLen) - return(Start); - break; - } - - /* This command sets terminal status. Get the current status, - * determine what needs to be changed, and send it back. - */ - - iMode = beGetTermMode(); - - /* If we need a given mode and it's not already set, set it. */ - - if ((cBuffer[End] == 'h') && (!(iMode & termAttrMode[args[0]]))) - { - beSetTermMode(iMode | termAttrMode[args[0]]); - } - - /* likewise, clear it as appropriate */ - if ((cBuffer[End] == 'l') && (iMode & termAttrMode[args[0]])) - { - beSetTermMode(iMode & ~termAttrMode[args[0]]); - } - - End++; - break; - - /* If it's an escape sequence we don't treat, pretend as though we never saw - * it. - */ - default: - End += 1; - break; - } - - return(End); - -} - - -/* ProcessEscape - - * - * At this point, has been seen. Start points to the escape - * itself, and then this routine is responsible for parsing the - * rest of the escape sequence, and either pawning off further parsing, - * or acting upon it as appropriate. - * - * Note that the escape sequences being parsed are still contained in cBuffer. - */ - -static int ProcessEscape(int Start) -{ - int End; - int left; - int fore, back; - int i; - - /* if it's definitely not a full escape sequence, return that we haven't - * seen it. - */ - if ((cBuffer[Start] != 27)||(Start+1 >= BufLen)) - return(Start); - - End = Start + 1; - - /* At this point, if the sequence is x, 'End' points at - * x - */ - - /* left = number of characters left unparsed in the buffer. */ - left = BufLen - End -1; - - /* Main switch statement - parse the escape sequence according to the - * next character we see. - */ - - switch (cBuffer[End]) - { - /* Hard Reset Esc c BUGBUG - not imp'd. */ - case 'c': - End += 1; - break; - - /* Cursor up Esc A */ - case 'A': - beOffsetCursor(-1,0); - End += 1; - break; - - /* Cursor down Esc B */ - case 'B': - beOffsetCursor(1,0); - End += 1; - break; - - /* Cursor right Esc C */ - case 'C': - beOffsetCursor(0,1); - End += 1; - break; - - /* Cursor left Esc D */ - case 'D': - beOffsetCursor(0,-1); - End += 1; - break; - - /* Newline command: Esc E */ - case 'E': - beRawTextOut("\n",strlen("\n")); - End += 1; - break; - - /* Invoke the Graphics character set Esc F */ - case 'F': - beGetTextAttributes(&fore, &back); - if (! (fore & SC_GRAPHICS)) - { - fore &= ~(SC_ASCII|SC_G0|SC_G1); - fore |= SC_GRAPHICS; - beSetTextAttributes(fore, back); - } - End += 1; - break; - - /* Invoke the ASCII character set Esc G */ - case 'G': - beGetTextAttributes(&fore, &back); - if (! (fore & SC_ASCII)) - { - fore &= ~(SC_G0|SC_G1|SC_GRAPHICS); - fore |= SC_ASCII; - beSetTextAttributes(fore, back); - } - End += 1; - break; - - /* Move the cursor to (1,1): Home cursor Esc H */ - case 'H': - beAbsoluteCursor(TOP_EDGE,LEFT_EDGE); - End += 1; - break; - - /* Reverse line feed Esc I */ - case 'I': - beOffsetCursor(-1,0); - End += 1; - break; - - /* Erase to end of screen Esc J */ - case 'J': - beEraseText(CUR_ROW, CUR_COL, BOTTOM_EDGE, RIGHT_EDGE); - End += 1; - break; - - /* Erase to end of line Esc K */ - case 'K': - beEraseText(CUR_ROW, CUR_COL, CUR_ROW, RIGHT_EDGE); - End += 1; - break; - - /* Reverse Line: Esc M */ - case 'M': - beAbsoluteCursor(CUR_ROW, LEFT_EDGE); - beOffsetCursor(-1,0); - End += 1; - break; - - /* Switch to G1 graphics character set. Esc N */ - case 'N': - beGetTextAttributes(&fore, &back); - if (! (fore & SC_G1)) - { - fore &= ~(SC_G0|SC_ASCII|SC_GRAPHICS); - fore |= SC_G1; - beSetTextAttributes(fore, back); - } - End += 1; - break; - - /* Switch to G0 graphics character set Esc O */ - case 'O': - beGetTextAttributes(&fore, &back); - if (! (fore & SC_G0)) - { - fore &= ~(SC_G1|SC_ASCII|SC_GRAPHICS); - fore |= SC_G0; - beSetTextAttributes(fore, back); - } - End += 1; - break; - - /* Print cursor line Esc V BUGBUG - unimp'd */ - case 'V': - End += 1; - break; - - /* Enter print controller Esc W BUGBUG - unimp'd */ - case 'W': - End += 1; - break; - - /* Exit print controller Esc X BUGBUG - unimp'd */ - case 'X': - End += 1; - break; - - /* Cursor address Esc Y row col BUGBUG - unimp'd and needed */ - case 'Y': - End += 1; - break; - - /* Identify terminal type Esc Z */ - case 'Z': - beTransmitText(ANSWERBACK_MESSAGE,strlen(ANSWERBACK_MESSAGE)); - End += 1; - break; - - /* One of dozens of escape sequences starting [. Parse further */ - case '[': - /* pass in the escape as the starting point */ - End = ProcessBracket(End-1); - break; - - /* Print screen Esc ] BUGBUG - unimp'd */ - case ']': - End += 1; - break; - - /* Enter auto print Esc ^ BUGBUG - unimpd' */ - case '^': - End += 1; - break; - - /* Exit auto print Esc - BUGBUG - unimpd' */ - case '-': - End += 1; - break; - - /* Alternate keypad Esc = BUGBUG - unimpd' */ - case '=': - End += 1; - break; - - /* Numeric keypad Esc > BUGBUG - unimpd' */ - case '>': - End += 1; - break; - - /* Enter ANSI mode Esc < BUGBUG - unimpd' */ - case '<': - End += 1; - break; - - /* Save cursor position & Attributes: Esc 7 */ - case '7': - beSaveCursor(); - End += 1; - break; - - /* Restore cursor position & attributes: Esc 8 */ - case '8': - beRestoreCursor(); - End += 1; - break; - - /* Set character size - BUGBUG - unimp'd. - * # 1 Double ht, single width top half chars - * # 2 Double ht, single width lower half chars - * # 3 Double ht, double width top half chars - * # 4 Double ht, double width lower half chars - * # 5 Single ht, single width chars - * # 6 Single ht, double width chars - */ - case '#': - End += 1; - break; - - /* Select character set - * ESC ( A British - * ESC ( C Finnish - * ESC ( E Danish or Norwegian - * ESC ( H Swedish - * ESC ( K German - * ESC ( Q French Canadian - * ESC ( R Flemish or French/Belgian - * ESC ( Y Italian - * ESC ( Z Spanish - * ESC ( 1 Alternative Character - * ESC ( 4 Dutch - * ESC ( 5 Finnish - * ESC ( 6 Danish or Norwegian - * ESC ( 7 Swedish - * ESC ( = Swiss (French or German) - */ - case '(': - case ')': - /* BUGBUG - most character sets aren't implemented. */ - beGetTextAttributes(&fore, &back); - switch (cBuffer[++End]) - { - case 'B': /* ESC ( B North American ASCII set */ - i=SC_ASCII; - break; - - case '0': /* ESC ( 0 Line Drawing */ - i=SC_G1; - break; - - case '2': /* ESC ( 2 Alternative Line drawing */ - i=SC_G0; - break; - - default: - /* Make sure the screen mode isn't set. */ - i = 0xFFFFFFFF; - break; - } - - if (! (fore & i)) - { - fore &= ~(SC_ASCII|SC_G0|SC_G1|SC_GRAPHICS); - fore |= i; - beSetTextAttributes(fore, back); - } - - End += 1; - break; - - /* Unknown escape sequence */ - default: - { - char cbuf[80]; - sprintf(cbuf,"%c", cBuffer[End]); - beRawTextOut(cbuf+Start,6); - End += 1; - } - } - - return(End); -} - - -/* ProcessControl - - * - * Process a probable escape or control sequence - * starting at the supplied index. Return the index - * of the first character *after* the escape sequence we - * process. - * In the case of an incomplete sequence, ie one - * that isn't completed by the end of the buffer, return - * 'Start'. - * In the case of an invalid sequence, - * note the invalid escape sequence, and return Start+1 - */ - -static int ProcessControl(int Start) -{ - int fore, back; - int End = Start; - - /* Check to make sure we at least have enough characters - * for a control character - */ - - if (Start >= BufLen) - return(Start); - - switch (cBuffer[Start]) - { - /* NUL 0 Fill character; ignored on input. - * DEL 127 Fill character; ignored on input. - */ - case 0: - case 127: - End += 1; - break; - - /* ENQ 5 Transmit answerback message. */ - case 5: - beTransmitText(ANSWERBACK_MESSAGE,strlen(ANSWERBACK_MESSAGE)); - End += 1; - break; - - /* BEL 7 Ring the bell. */ - case 7: - beRingBell(); - End += 1; - break; - - /* BS 8 Move cursor left. */ - case 8: - beOffsetCursor(0,-1); - End += 1; - break; - - /* HT 9 Move cursor to next tab stop. */ - case 9: - beAdvanceToTab(); - End += 1; - break; - - /* LF 10 Line feed; causes print if in autoprint. */ - case 10: - beOffsetCursor(1,0); - End += 1; - break; - - /* VT 11 Same as LF. - * FF 12 Same as LF. - */ - case 11: - case 12: - beOffsetCursor(1,0); - End += 1; - break; - - /* CR 13 Move cursor to left margin or newline. */ - case 13: - beOffsetCursor(1,0); - beAbsoluteCursor(CUR_ROW,LEFT_EDGE); - End += 1; - break; - - /* SO 14 Invoke G1 character set. */ - case 14: - beGetTextAttributes(&fore, &back); - if (! (fore & SC_G1)) - { - fore &= ~(SC_ASCII|SC_G0|SC_G1|SC_GRAPHICS); - fore |= SC_G1; - beSetTextAttributes(fore, back); - } - End += 1; - break; - - /* SI 15 Invoke G0 character set. */ - case 15: - beGetTextAttributes(&fore, &back); - if (! (fore & SC_G0)) - { - fore &= ~(SC_ASCII|SC_G0|SC_G1|SC_GRAPHICS); - fore |= SC_G0; - beSetTextAttributes(fore, back); - } - End += 1; - break; - - /* CAN 24 Cancel escape sequence and display checkerboard. BUGBUG - not imp'd. - * SUB 26 Same as CAN. - */ - case 24: - End += 1; - break; - - /* ESC 27 Introduce a control sequence. */ - case 27: - End = ProcessEscape(Start); - break; - - /* Print any other control character received. */ - default: - { - char buf[4]; - sprintf(buf,"^%c",'A' + cBuffer[Start] - 1); - beRawTextOut(buf, 2); - End += 1; - } - break; - } - - return(End); -} - - -/* ProcessBuffer - - * - * Process the current contents of the terminal character buffer. - */ -static int ProcessBuffer(void) -{ - int Start=0,End=0; - - /* Null-terminate the buffer. Why? Heck, why not? */ - - cBuffer[BufLen] = '\0'; - - /* Loop through the entire buffer. Start will be incremented - * to point at the start of unprocessed text in the buffer as - * we go. - */ - while (Start < BufLen) - { - End = Start; - - /* Since we null-terminated, null < 27 and we have a termination condition */ - while ((cBuffer[End] > 27)||(cBuffer[End] == 10)||(cBuffer[End] == 13)) - End++; - - /* At this point, if Start < End, we have a string of characters which - * doesn't have any control sequences, and should be printed raw. - */ - - if (End > Start) - beRawTextOut(cBuffer+Start, End-Start); - - if (End >= BufLen) - { - break; - } - - /* At this point, 'End' points to the beginning of an escape - * sequence. We'll reset 'start' to be AFTER parsing the - * escape sequence. Note that if the escape sequence - * is incomplete, ProcessControl should return the - * same value passed in. Otherwise, it'll return the - * index of the first character after the valid - * escape sequence. - */ - - Start = ProcessControl(End); - - if (Start == End) - { - /* The escape sequence was incomplete. - * Move the unprocessed portion of the input buffer - * to start at the beginning of the buffer, then - * return. - */ - - while (End < BufLen) - { - cBuffer[End-Start] = cBuffer[End]; - End += 1; - } - - BufLen = End-Start; - return(0); - } - } - - /* If we made it this far, Start == Buflen, and so we've finished - * processing the buffer completely. - */ - BufLen = 0; - cBuffer[BufLen] = '\0'; - - return(0); -} - - -/* vtProcessedTextOut - - * - * Output characters to terminal, passing them through the vt100 emulator. - * Return -1 on error - */ -int -vtProcessedTextOut(char *cbuf, int count) -{ - /* If we have a buffer overflow, error out if we haven't already crashed. */ - - if ((count + BufLen) > MAXVTBUFLEN) - { - beRawTextOut("ERROR: VT-100 internal buffer overflow!",39); - return(-1); - } - - /* Otherwise, add our requested information to the - * output buffer, and attempt to parse it. - */ - - memcpy(cBuffer + BufLen, cbuf, count); - BufLen += count; - - return(ProcessBuffer()); -} - diff --git a/posix/apps/posixw32/vt100.h b/posix/apps/posixw32/vt100.h deleted file mode 100644 index 808bf765ce2..00000000000 --- a/posix/apps/posixw32/vt100.h +++ /dev/null @@ -1,320 +0,0 @@ -/* vt100.h - * - * AUTHOR: John L. Miller, johnmil@cs.cmu.edu / johnmil@jprc.com - * DATE: 8/4/96 - * - * Copyright (c) 1996 John L. Miller - * - * Full permission is granted to use, modify and distribute - * this code, provided: - * 1) This comment field is included in its entirity - * 2) No money is charged for any work including or based on - * portions of this code. - * - * If you're a nice person and find this useful, I'd appreciate a - * note letting me know about it. e-mail is usually what spurs me - * on to improve and support software I've written. - * - */ - - -/* This identifier should be spit back to the computer when a terminal - * id is requested. - */ -#define ANSWERBACK_MESSAGE "vt100" - -/* Various terminal-related modes Entries are as follows: - * Identification esc. ID If set, if clear - */ - - /* Keyboard action 2 Locked Unlocked */ -#define CAPS_MODE 0x00000001 - /* Insertion 4 Insert Overwrite */ -#define INSERT_MODE 0x00000002 - /* Send - Receive 12 Full Echo */ -#define FULLDUPLEX_MODE 0x00000004 - /* Line feed/New line 20 New line Line feed */ -#define NEWLINE_MODE 0x00000008 - - -#define NUM_TERM_ATTR_MODES 9 /* We only track eight '?' escape sequences */ - - /* Cursor key ?1 Application Cursor */ -#define CURSORAPPL_MODE 0x00000010 - /* ANSI/VT52 ?2 ANSI VT52 */ -#define ANSI_MODE 0x00000020 - /* Column ?3 132 80 */ -#define COL132_MODE 0x00000040 - /* Scrolling ?4 Smooth Jump */ -#define SMOOTHSCROLL_MODE 0x00000080 - /* Screen ?5 Reverse Normal */ -#define REVSCREEN_MODE 0x00000100 - /* Origin ?6 Relative Absolute */ -#define ORIGINREL_MODE 0x00000200 - /* Wraparound ?7 Wrap Truncate */ -#define WRAP_MODE 0x00000400 - /* Auto key repeat ?8 Repeating No repeat */ -#define REPEAT_MODE 0x00000800 - - - /* Print form feed ?18 Yes No */ -#define PRINTFF_MODE 0x00001000 - /* Print extent ?19 Full screen Scrolling region */ -#define PRINTFULLSCR_MODE 0x00002000 - /* Keypad application 'Esc =' numeric 'Esc >' */ -#define KEYPADNUMERIC_MODE 0x00004000 - /* default mode that we start the emulator with */ -#define DEFAULT_MODE (NEWLINE_MODE|ANSI_MODE|REPEAT_MODE) - - /* This constant is VERY important - the size of the buffer for - * unprocessed vt-100 prints! - */ -#define MAXVTBUFLEN 4096 - - /* Constants used in place of actual row and column numbers - * for the cursor movement and text erasing and deleting functions. - */ -#define CUR_ROW -999 -#define CUR_COL -999 -#define ALL_TABS -1999 - -#define LEFT_EDGE 0 -#define RIGHT_EDGE 12000 -#define TOP_EDGE 0 -#define BOTTOM_EDGE 12000 - - /* Text attribute definitions; color, font, bold. */ -#define NUM_SC_ATTRIBUTES 11 - -#define SC_RED 0x0001 -#define SC_GREEN 0x0002 -#define SC_BLUE 0x0004 -#define SC_BOLD 0x0010 -#define SC_UL 0x0020 /* Underlined */ -#define SC_BL 0x0040 /* Blinking */ -#define SC_RV 0x0080 /* Reverse video */ -#define SC_ASCII 0x0100 /* Normal ASCII (USASCII) */ -#define SC_G0 0x0200 /* graphics set G0 */ -#define SC_G1 0x0400 /* Graphics set G1 */ -#define SC_GRAPHICS 0x0800 /* Good question */ - - -/* forward variable declarations */ - -extern int termAttrMode[NUM_TERM_ATTR_MODES]; -extern int alltermAttrModes; - - -/* prototypes from vt100.c */ - -/* functions meant for use outside of the emulator */ - -int vtputs(char *f); -int vtprintf(char *format, ...); -int vtInitVT100(void); -int vtProcessedTextOut(char *cbuf, int count); - - -/* Prototype for functions which MUST BE SUPPLIED BY THE BACK END!!! */ - -/* Back-end specific initialization is performed in this function. - * this is gauranteed to be called before any other requests are made - * of the back end. - */ - -/* beInitVT100Terminal() - - * - * This function is called by the VT100 emulator as soon as the - * front-end terminal is initialized. It's responsible for setting - * initial state of the terminal, and initing our many wacky variables. - */ -int beInitVT100Terminal(); - - -/* beAbsoluteCursor - - * - * Given an input row and column, move the cursor to the - * absolute screen coordinates requested. Note that if the - * display window has scrollbars, the column is adjusted - * to take that into account, but the row is not. This allows - * for large scrollback in terminal windows. - * - * ROW must be able to accept CUR_ROW, TOP_EDGE, BOTTOM_EDGE, - * or a row number. - * - * COLUMN must be able to accept CUR_COL, LEFT_EDGE, RIGHT_EDGE, - * or a column number. - */ -int beAbsoluteCursor(int row, int col); - - -/* beOffsetCursor - - * - * Given an input row and column offset, move the cursor by that - * many positions. For instance, row=0 and column=-1 would move - * the cursor left a single column. - * - * If the cursor can't move the requested amount, results are - * unpredictable. - */ -int beOffsetCursor(int row, int column); - - -/* beRestoreCursor - - * - * Saved cursor position should be stored in a static - * variable in the back end. This function restores the - * cursor to the position stored in that variable. - */ -int beRestoreCursor(void); - - -/* beSaveCursor - - * - * The back-end should maintain a static variable with the - * last STORED cursor position in it. This function replaces - * the contents of that variable with the current cursor position. - * The cursor may be restored to this position by using the - * beRestoreCursor function. - */ -int beSaveCursor(void); - - -/* beGetTextAttributes - - * - * given a pointer to 'fore'ground and 'back'ground ints, - * fill them with a device-independant description of the - * current foreground and background colors, as well as any - * font information in the foreground variable. - */ -int beGetTextAttributes(int *fore, int *back); - - -/* beSetTextAttributes - - * - * Given a foreground and a background device independant (SC) color and font - * specification, apply these to the display, and save the state in the - * static screen variables. - * - * Note that many font-specific constants (bold/underline/reverse, G0/G1/ASCII) - * are stored ONLY in the foreground specification. - */ -int beSetTextAttributes(int fore, int back); - - -/* beRawTextOut- - * - * The name of this function is misleading. Given a pointer to - * ascii text and a count of bytes to print, print them to the - * display device. If wrapping is enabled, wrap text. If there is a - * scrolling region set and the cursor is in it, - * scroll only within that region. 'beRawTextOut' means that it's guaranteed - * not to have control sequences within the text. - */ -int beRawTextOut(char *text, int len); - - -/* beEraseText - - * - * Given a 'from' and a 'to' position in display coordinates, - * this function will fill in all characters between the two - * (inclusive) with spaces. Note that the coordinates do NOT - * specify a rectangle. erasing from (1,1) to (2,2) erases - * all of the first row, and the first two characters of the - * second. - * - * Note that this routine must be able to handle TOP_EDGE, - * BOTTOM_EDGE, LEFT_EDGE, RIGHT_EDGE, CUR_ROW, and CUR_COL - * in the appropriate parameters. - */ -int beEraseText(int rowFrom, int colFrom, int rowTo, int colTo); - - -/* beDeleteText - - * - * Given a screen cursor 'from' and 'to' position, this function - * will delete all text between the two. Text will be scrolled - * up as appropriate to fill the deleted space. Note that, as in - * beEraseText, the two coordinates don't specify a rectangle, but - * rather a starting position and ending position. In other words, - * deleting from (1,1) to (2,2) should move the text from (2,3) to the - * end of the second row to (1,1), move line 3 up to line 2, and so on. - * - * This function must be able to process TOP_EDGE, BOTTOM_EDGE, LEFT_EDGE, - * RIGHT_EDGE, CUR_ROW, and CUR_COL specifications in the appropriate - * variables as well as regular row and column specifications. - */ -int beDeleteText(int rowFrom, int colFrom, int rowTo, int colTo); - - -/* beInsertRow - - * - * Given a row number or CUR_ROW, TOP_EDGE or BOTTOM_EDGE as an input, - * this function will scroll all text from the current row down down by one, - * and create a blank row under the cursor. - */ -int beInsertRow(int row); - - -/* beTransmitText - - * - * Given a pointer to text and byte count, this routine should transmit data - * to whatever host made the request it's responding to. Typically this routin - * should transmit data as though the user had typed it in. - */ -int beTransmitText(char *text, int len); - - -/* beAdvanceToTab - - * - * This routine will destructively advance the cursor to the - * next set tab, or to the end of the line if there are no - * more tabs to the right of the cursor. - */ - -int beAdvanceToTab(void); - - -/* beClearTab - - * - * This function accepts a constant, and will try to clear tabs - * appropriately. Its argument is either - * ALL_TABS, meaning all tabs should be removed - * CUR_COL, meaning the tab in the current column should be wiped, or - * a column value, meaning if there's a tab there it should be wiped. - * - */ -int beClearTab(int col); - - -/* beSetScrollingRows - - * - * Given a pair of row numbers, this routine will set the scrolling - * rows to those values. Note that this routine will accept - * TOP_ROW and BOTTOM_ROW as values, meaning that scrolling should - * be enabled for the entire display, regardless of resizing. - */ -int beSetScrollingRows(int fromRow, int toRow); - - -/* beRingBell - - * - * Ring the system bell once. - */ -int beRingBell(void); - - -/* beGetTermMode - - * - * Return the value of conTermMode, which is the terminal settings which - * can be queried/set by [?#h/l. - */ -int beGetTermMode(); - - -/* beSetTermMode - - * - * Set the terminal as requested, assuming we can. Right now we only handle a - * couple of the possible flags, but we store many of the others. - */ -int beSetTermMode(int newMode); diff --git a/posix/copying b/posix/copying deleted file mode 100644 index dc63aaca038..00000000000 --- a/posix/copying +++ /dev/null @@ -1,340 +0,0 @@ - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/posix/directory.xml b/posix/directory.xml deleted file mode 100644 index 98346505386..00000000000 --- a/posix/directory.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/posix/include/aio.h b/posix/include/aio.h deleted file mode 100644 index d1de333058c..00000000000 --- a/posix/include/aio.h +++ /dev/null @@ -1,74 +0,0 @@ -/* $Id: aio.h,v 1.4 2002/10/29 04:45:06 rex Exp $ - */ -/* - * aio.h - * - * asynchronous input and output (REALTIME). Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __AIO_H_INCLUDED__ -#define __AIO_H_INCLUDED__ - -/* INCLUDES */ -#include -#include -#include -#include - -/* OBJECTS */ - -/* TYPES */ -typedef struct _tag_aiocb -{ - int aio_fildes; /* file descriptor */ - off_t aio_offset; /* file offset */ - volatile void* aio_buf; /* location of buffer */ - size_t aio_nbytes; /* length of transfer */ - int aio_reqprio; /* request priority offset */ - struct sigevent aio_sigevent; /* signal number and value */ - int aio_lio_opcode; /* operation to be performed */ -} aiocb; - -/* CONSTANTS */ -#define AIO_CANCELED 0 -#define AIO_NOTCANCELED 1 -#define AIO_ALLDONE 2 - -#define LIO_WAIT 0 -#define LIO_NOWAIT 1 -#define LIO_READ 2 -#define LIO_WRITE 3 -#define LIO_NOP 4 - -/* PROTOTYPES */ -int aio_cancel(int, struct aiocb *); -int aio_error(const struct aiocb *); -int aio_fsync(int, struct aiocb *); -int aio_read(struct aiocb *); -ssize_t aio_return(struct aiocb *); -int aio_suspend(const struct aiocb *const[], int, const struct timespec *); -int aio_write(struct aiocb *); -int lio_listio(int, struct aiocb *const[], int, struct sigevent *); - -/* MACROS */ - -#endif /* __AIO_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/arpa/inet.h b/posix/include/arpa/inet.h deleted file mode 100644 index 3e74ad5ace5..00000000000 --- a/posix/include/arpa/inet.h +++ /dev/null @@ -1,56 +0,0 @@ -/* $Id: inet.h,v 1.4 2002/10/29 04:45:06 rex Exp $ - */ -/* - * arpa/inet.h - * - * definitions for internet operations. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __ARPA_INET_H_INCLUDED__ -#define __ARPA_INET_H_INCLUDED__ - -/* INCLUDES */ -#include -#include - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ -uint32_t htonl(uint32_t hostlong); -uint16_t htons(uint16_t hostshort); -uint32_t ntohl(uint32_t netlong); -uint16_t ntohs(uint16_t netshort); - -in_addr_t inet_addr(const char *cp); -in_addr_t inet_lnaof(struct in_addr in); -struct in_addr inet_makeaddr(in_addr_t net, in_addr_t lna); -in_addr_t inet_netof(struct in_addr in); -in_addr_t inet_network(const char *cp); -char *inet_ntoa(struct in_addr in); - -/* MACROS */ - -#endif /* __ARPA_INET_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/assert.h b/posix/include/assert.h deleted file mode 100644 index 05e5b573940..00000000000 --- a/posix/include/assert.h +++ /dev/null @@ -1,58 +0,0 @@ -/* $Id: assert.h,v 1.5 2002/10/29 04:45:08 rex Exp $ - */ -/* - * assert.h - * - * verify program assertion. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __ASSERT_H_INCLUDED__ -#define __ASSERT_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ -#ifdef NDEBUG -#define assert(IGNORE) ((void) 0) -#else /* !NDEBUG */ - -#include -#include - -#define assert(EXPRESSION) \ - if(!(EXPRESSION)) \ - { \ - fputs("__FILE__, line __LINE__: assertion \"EXPRESSION\" failed\n", stderr); \ - abort(); \ - } - -#endif /* NDEBUG */ - -#endif /* __ASSERT_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/cpio.h b/posix/include/cpio.h deleted file mode 100644 index 37534deae37..00000000000 --- a/posix/include/cpio.h +++ /dev/null @@ -1,63 +0,0 @@ -/* $Id: cpio.h,v 1.4 2002/10/29 04:45:08 rex Exp $ - */ -/* - * cpio.h - * - * cpio archive values. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __CPIO_H_INCLUDED__ -#define __CPIO_H_INCLUDED__ - -/* INCLUDES */ - -/* TYPES */ - -/* CONSTANTS */ -#define C_IRUSR (0000400) /* read by owner */ -#define C_IWUSR (0000200) /* write by owner */ -#define C_IXUSR (0000100) /* execute by owner */ -#define C_IRGRP (0000040) /* read by group */ -#define C_IWGRP (0000020) /* write by group */ -#define C_IXGRP (0000010) /* execute by group */ -#define C_IROTH (0000004) /* read by others */ -#define C_IWOTH (0000002) /* write by others */ -#define C_IXOTH (0000001) /* execute by others */ -#define C_ISUID (0004000) /* set user ID */ -#define C_ISGID (0002000) /* set group ID */ -#define C_ISVTX (0001000) /* on directories, restricted deletion flag */ -#define C_ISDIR (0040000) /* directory */ -#define C_ISFIFO (0010000) /* FIFO */ -#define C_ISREG (0100000) /* regular file */ -#define C_ISBLK (0060000) /* block special */ -#define C_ISCHR (0020000) /* character special */ -#define C_ISCTG (0110000) /* reserved */ -#define C_ISLNK (0120000) /* symbolic link */ -#define C_ISSOCK (0140000) /* socket */ - -#define MAGIC "070707" - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __CPIO_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/ctype.h b/posix/include/ctype.h deleted file mode 100644 index 0a5f85cc1b1..00000000000 --- a/posix/include/ctype.h +++ /dev/null @@ -1,61 +0,0 @@ -/* $Id: ctype.h,v 1.4 2002/10/29 04:45:08 rex Exp $ - */ -/* - * ctype.h - * - * character types. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __CTYPE_H_INCLUDED__ -#define __CTYPE_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ -int isalnum(int); -int isalpha(int); -int isascii(int); -int iscntrl(int); -int isdigit(int); -int isgraph(int); -int islower(int); -int isprint(int); -int ispunct(int); -int isspace(int); -int isupper(int); -int isxdigit(int); -int toascii(int); -int tolower(int); -int toupper(int); - -/* MACROS */ -/* FIXME: the standard isn't clear about these */ -#define _toupper(c) (toupper(c)) -#define _tolower(c) (tolower(c)) - -#endif /* __CTYPE_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/dirent.h b/posix/include/dirent.h deleted file mode 100644 index b6f71315900..00000000000 --- a/posix/include/dirent.h +++ /dev/null @@ -1,73 +0,0 @@ -/* $Id: dirent.h,v 1.6 2002/10/29 04:45:08 rex Exp $ - */ -/* - * dirent.h - * - * format of directory entries. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __DIRENT_H_INCLUDED__ -#define __DIRENT_H_INCLUDED__ - -/* INCLUDES */ -#include -#include -#include - -/* TYPES */ -typedef void DIR; - -#define NAME_MAX (255) - -struct dirent -{ - ino_t d_ino; /* file serial number */ - char * d_name /* [NAME_MAX + 1] */; /* name of entry */ -}; - -/* for Unicode filenames */ -struct _Wdirent -{ - ino_t d_ino; /* file serial number */ - wchar_t * d_name/* [NAME_MAX + 1] */; /* name of entry */ -}; - -/* CONSTANTS */ - -/* PROTOTYPES */ -int closedir(DIR *); -DIR *opendir(const char *); -struct dirent *readdir(DIR *); -int readdir_r(DIR *, struct dirent *, struct dirent **); -void rewinddir(DIR *); -void seekdir(DIR *, long int); -long int telldir(DIR *); - -/* for Unicode filenames */ -DIR *_Wopendir(const wchar_t *); -struct _Wdirent *_Wreaddir(DIR *); -int _Wreaddir_r(DIR *, struct _Wdirent *, struct _Wdirent **); - - -/* MACROS */ - -#endif /* __DIRENT_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/dlfcn.h b/posix/include/dlfcn.h deleted file mode 100644 index 9296966c5b5..00000000000 --- a/posix/include/dlfcn.h +++ /dev/null @@ -1,58 +0,0 @@ -/* $Id: dlfcn.h,v 1.4 2002/10/29 04:45:08 rex Exp $ - */ -/* - * dlfcn.h - * - * dynamic linking. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __DLFCN_H_INCLUDED__ -#define __DLFCN_H_INCLUDED__ - -/* INCLUDES */ - -/* TYPES */ - -/* CONSTANTS */ -#define RTLD_LAZY (0x00000000) /* Relocations are performed at an \ - implementation-dependent time. */ -#define RTLD_NOW (0x00000001) /* Relocations are performed when \ - the object is loaded. */ - -#define RTLD_GLOBAL (0x00000010) /* All symbols are available for \ - relocation processing of other \ - modules. */ -#define RTLD_LOCAL (0x00000020) /* All symbols are not made available \ - for relocation processing by other \ - modules. */ - -#define RTLD_NEXT ((void *)(-1)) - -/* PROTOTYPES */ -void *dlopen(const char *, int); -void *dlsym(void *, const char *); -int dlclose(void *); -char *dlerror(void); - -/* MACROS */ - -#endif /* __DLFCN_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/errno.h b/posix/include/errno.h deleted file mode 100644 index 8e210fe28f2..00000000000 --- a/posix/include/errno.h +++ /dev/null @@ -1,131 +0,0 @@ -/* $Id: errno.h,v 1.5 2002/10/29 04:45:08 rex Exp $ - */ -/* - * errno.h - * - * system error numbers. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __ERRNO_H_INCLUDED__ -#define __ERRNO_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ -/* errors from 0 to 42 are the same as in Microsoft POSIX */ -#define EZERO ( 0) /* No error. */ -#define EPERM ( 1) /* Operation not permitted. */ -#define ENOENT ( 2) /* No such file or directory. */ -#define ESRCH ( 3) /* No such process. */ -#define EINTR ( 4) /* Interrupted function. */ -#define EIO ( 5) /* I/O error. */ -#define ENXIO ( 6) /* No such device or address. */ -#define E2BIG ( 7) /* Argument list too long. */ -#define ENOEXEC ( 8) /* Executable file format error. */ -#define EBADF ( 9) /* Bad file descriptor. */ -#define ECHILD ( 10) /* No child processes. */ -#define EAGAIN ( 11) /* Resource unavailable, try again */ -#define ENOMEM ( 12) /* Not enough space. */ -#define EACCES ( 13) /* Permission denied. */ -#define EFAULT ( 14) /* Bad address. */ -#define ENOTBLK ( 15) /* Reserved. */ -#define EBUSY ( 16) /* Device or resource busy. */ -#define EEXIST ( 17) /* File exists. */ -#define EXDEV ( 18) /* Cross-device link. */ -#define ENODEV ( 19) /* No such device. */ -#define ENOTDIR ( 20) /* Not a directory. */ -#define EISDIR ( 21) /* Is a directory. */ -#define EINVAL ( 22) /* Invalid argument. */ -#define ENFILE ( 23) /* Too many files open in system. */ -#define EMFILE ( 24) /* Too many open files. */ -#define ENOTTY ( 25) /* Inappropriate I/O control operation. */ -#define ETXTBSY ( 26) /* Text file busy. */ -#define EFBIG ( 27) /* File too large. */ -#define ENOSPC ( 28) /* No space left on device. */ -#define ESPIPE ( 29) /* Invalid seek. */ -#define EROFS ( 30) /* Read-only file system. */ -#define EMLINK ( 31) /* Too many links. */ -#define EPIPE ( 32) /* Broken pipe. */ -#define EDOM ( 33) /* Mathematics argument out of domain of function. */ -#define ERANGE ( 34) /* Result too large. */ -#define EUCLEAN ( 35) /* Reserved. */ -#define EDEADLK ( 36) /* Resource deadlock would occur. */ -#define UNKNOWN ( 37) /* Reserved. */ -#define ENAMETOOLONG ( 38) /* Filename too long. */ -#define ENOLCK ( 39) /* No locks available. */ -#define ENOSYS ( 40) /* Function not supported. */ -#define ENOTEMPTY ( 41) /* Directory not empty. */ -#define EILSEQ ( 42) /* Illegal byte sequence. */ -/* from this point, constants are in no particular order */ -#define ENODATA ( 44) /* No message is available on the STREAM head read queue. */ -#define ENOSR ( 45) /* No STREAM resources. */ -#define ENOSTR ( 46) /* Not a STREAM. */ -#define ECANCELED ( 47) /* Operation canceled. */ -#define ENOBUFS ( 48) /* No buffer space available. */ -#define EOVERFLOW ( 49) /* Value too large to be stored in data type. */ -#define ENOTSUP ( 50) /* Not supported. */ -#define EADDRINUSE ( 51) /* Address in use. */ -#define EADDRNOTAVAIL ( 52) /* Address not available. */ -#define EAFNOSUPPORT ( 53) /* Address family not supported. */ -#define ECONNABORTED ( 54) /* Connection aborted. */ -#define ECONNREFUSED ( 55) /* Connection refused. */ -#define ECONNRESET ( 56) /* Connection reset. */ -#define EALREADY ( 57) /* Connection already in progress. */ -#define EDESTADDRREQ ( 58) /* Destination address required. */ -#define EHOSTUNREACH ( 59) /* Host is unreachable. */ -#define EISCONN ( 60) /* Socket is connected. */ -#define ENETDOWN ( 61) /* Network is down. */ -#define ENETUNREACH ( 62) /* Network unreachable. */ -#define ENOPROTOOPT ( 63) /* Protocol not available. */ -#define ENOTCONN ( 64) /* The socket is not connected. */ -#define ENOTSOCK ( 65) /* Not a socket. */ -#define EPROTO ( 66) /* Protocol error. */ -#define EPROTONOSUPPORT ( 67) /* Protocol not supported. */ -#define EPROTOTYPE ( 68) /* Socket type not supported. */ -#define EOPNOTSUPP ( 69) /* Operation not supported on socket. */ -#define ETIMEDOUT ( 70) /* Connection timed out. */ -#define EINPROGRESS ( 71) /* Operation in progress. */ -#define EBADMSG ( 72) /* Bad message. */ -#define EMSGSIZE ( 73) /* Message too large. */ -#define ENOMSG ( 74) /* No message of the desired type. */ -#define EDQUOT ( 75) /* Reserved. */ -#define EIDRM ( 76) /* Identifier removed. */ -#define ELOOP ( 77) /* Too many levels of symbolic links. */ -#define EMULTIHOP ( 78) /* Reserved. */ -#define ENOLINK ( 79) /* Reserved. */ -#define ESTALE ( 80) /* Reserved. */ -#define ETIME ( 81) /* Streamioctl() timeout. */ -#define EWOULDBLOCK ( 82) /* Operation would block */ - -#define EDEADLOCK EDEADLK /* Resource deadlock avoided */ - -/* PROTOTYPES */ -int * __PdxGetThreadErrNum(void); /* returns a pointer to the current thread's errno */ - -/* MACROS */ -#define errno (*__PdxGetThreadErrNum()) - -#endif /* __ERRNO_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/fcntl.h b/posix/include/fcntl.h deleted file mode 100644 index 650d9e39ab9..00000000000 --- a/posix/include/fcntl.h +++ /dev/null @@ -1,149 +0,0 @@ -/* $Id: fcntl.h,v 1.6 2002/10/29 04:45:08 rex Exp $ - */ -/* - * fcntl.h - * - * file control options. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __FCNTL_H_INCLUDED__ -#define __FCNTL_H_INCLUDED__ - -/* INCLUDES */ -#include -#include -#include - -/* OBJECTS */ - -/* TYPES */ -/* - the structure flock describes a file lock - */ -struct flock -{ - short l_type; /* type of lock; F_RDLCK, F_WRLCK, F_UNLCK */ - short l_whence; /* flag for starting offset */ - off_t l_start; /* relative offset in bytes */ - off_t l_len; /* size; if 0 then until EOF */ - pid_t l_pid; /* process ID of the process holding the lock; - returned with F_GETLK */ -}; - -/* CONSTANTS */ -/* - values for cmd used by fcntl() - */ -enum __fcntl_cmd -{ - F_DUPFD, /* duplicate file descriptor */ - F_GETFD, /* get file descriptor flags */ - F_GETLK, /* get record locking information */ - F_SETFD, /* set file descriptor flags */ - F_GETFL, /* get file status flags and file access modes */ - F_SETFL, /* set file status flags */ - F_SETLK, /* set record locking information */ - F_SETLKW, /* set record locking information; wait if blocked */ -/* ReactOS-specific */ - F_NEWFD, /* create new file descriptor */ - F_DELFD, /* delete file descriptor */ - F_GETALL, /* get a copy of the internal descriptor object */ - F_SETALL, /* initialize internal descriptor object */ - F_GETXP, /* get file descriptor extra data pointer */ - F_SETXP, /* set file descriptor extra data pointer */ - F_GETXS, /* get file descriptor extra data size */ - F_SETXS, /* set file descriptor extra data size */ - F_GETFH, /* get file handle */ - F_SETFH /* set file handle */ -}; - -/* - file descriptor flags used for fcntl() - */ -/* Close the file descriptor upon execution of an exec family function. */ -#define FD_CLOEXEC (0x00000001) - -/* - values for l_type used for record locking with fcntl() - */ -/* Shared or read lock. */ -#define F_RDLCK (1) -/* Unlock. */ -#define F_UNLCK (2) -/* Exclusive or write lock. */ -#define F_WRLCK (3) - -/* - file flags used for open() - */ -/* Create file if it does not exist. */ -#define O_CREAT (0x00000100) -/* Truncate flag. */ -#define O_TRUNC (0x00000200) -/* Exclusive use flag. */ -#define O_EXCL (0x00000400) -/* Do not assign controlling terminal. */ -#define O_NOCTTY (0x00000800) -/* ReactOS-specific */ -/* File must be a directory */ -#define _O_DIRFILE (0x00100000) - -/* - file status flags used for open() and fcntl() - */ -/* Set append mode. */ -#define O_APPEND (0x00000008) -/* Non-blocking mode. */ -#define O_NONBLOCK (0x00001000) -/* Write according to synchronised I/O data integrity completion. */ -#define O_DSYNC (0x00002000) -/* Synchronised read I/O operations. */ -#define O_RSYNC (0x00004000) -/* Write according to synchronised I/O file integrity completion. */ -#define O_SYNC (0x00008000) - -/* - file access modes used for open() and fcntl() - */ -/* Open for reading only. */ -#define O_RDONLY (0x00000000) -/* Open for writing only. */ -#define O_WRONLY (0x00000001) -/* Open for reading and writing. */ -#define O_RDWR (0x00000002) - -/* - mask for use with file access modes - */ -#define O_ACCMODE (0x00000007) - -/* PROTOTYPES */ -int creat(const char *, mode_t); -int fcntl(int, int, ...); -int open(const char *, int, ...); - -int _Wcreat(const wchar_t *, mode_t); -int _Wopen(const wchar_t *, int, ...); - -/* MACROS */ - -#endif /* __FCNTL_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/fmtmsg.h b/posix/include/fmtmsg.h deleted file mode 100644 index 4775793dfab..00000000000 --- a/posix/include/fmtmsg.h +++ /dev/null @@ -1,93 +0,0 @@ -/* $Id: fmtmsg.h,v 1.4 2002/10/29 04:45:08 rex Exp $ - */ -/* - * fmtmsg.h - * - * message display structures. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __FMTMSG_H_INCLUDED__ -#define __FMTMSG_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ -/* Major Classifications */ -/* NOTE: these are unique values, not flags. Their bits can overlap, but - cannot overlap with those of other categories */ -#define MM_HARD (0x00000001) /* Source of the condition is hardware. */ -#define MM_SOFT (0x00000002) /* Source of the condition is software. */ -#define MM_FIRM (0x00000003) /* Source of the condition is firmware. */ - -/* Message Source Subclassifications */ -/* NOTE: these are unique values, not flags. Their bits can overlap, but - cannot overlap with those of other categories */ -#define MM_APPL (0x00000010) /* Condition detected by application. */ -#define MM_UTIL (0x00000020) /* Condition detected by utility. */ -#define MM_OPSYS (0x00000030) /* Condition detected by operating system. */ - -/* Status Subclassifications */ -/* NOTE: these are unique values, not flags. Their bits can overlap, but - cannot overlap with those of other categories */ -#define MM_RECOVER (0x00000100) /* Recoverable error. */ -#define MM_NRECOV (0x00000200) /* Non-recoverable error. */ - -/* Display Subclassifications */ -/* NOTE: these, unlike other classification constants, are flags. Their - bits must be distinct */ -#define MM_PRINT (0x00001000) /* Display message on standard error. */ -#define MM_CONSOLE (0x00002000) /* Display message on system console. */ - -/* Identifiers for the levels of severity */ -#define MM_NOSEV (0) /* No severity level provided for the message. */ -#define MM_INFO (1) /* Informative message. */ -#define MM_WARNING (2) /* Application has detected unusual non-error \ - condition. */ -#define MM_ERROR (3) /* Application has encountered a non-fatal fault. */ -#define MM_HALT (4) /* Error causing application to halt. */ - -/* Null values and identifiers */ -#define MM_NULLLBL ((char *)0) /* Null label */ -#define MM_NULLSEV (0) /* Null severity */ -#define MM_NULLMC (0L) /* Null class */ -#define MM_NULLTXT ((char *)0) /* Null text */ -#define MM_NULLACT ((char *)0) /* Null action */ -#define MM_NULLTAG ((char *)0) /* Null tag */ - -/* Return values */ -#define MM_OK ( 0) /* The function succeeded. */ -#define MM_NOTOK (-1) /* The function failed completely. */ -#define MM_NOMSG (-2) /* The function was unable to generate a message on \ - standard error, but otherwise succeeded. */ -#define MM_NOCON (-3) /* The function was unable to generate a console \ - message, but otherwise succeeded. */ - -/* PROTOTYPES */ -int fmtmsg(long, const char*, int, const char*, const char*, const char*); - -/* MACROS */ - -#endif /* __FMTMSG_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/fnmatch.h b/posix/include/fnmatch.h deleted file mode 100644 index 10f4f22109e..00000000000 --- a/posix/include/fnmatch.h +++ /dev/null @@ -1,66 +0,0 @@ -/* $Id: fnmatch.h,v 1.4 2002/10/29 04:45:08 rex Exp $ - */ -/* - * fnmatch.h - * - * filename-matching types. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __FNMATCH_H_INCLUDED__ -#define __FNMATCH_H_INCLUDED__ - -/* INCLUDES */ -#ifdef __PSXDLL__ - -/* headers for internal usage by psxdll.dll and ReactOS */ - -#else /* ! __PSXDLL__ */ - -/* standard POSIX headers */ - -#endif - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ -/* Flags */ -#define FNM_PATHNAME (0x00000001) /* Slash in string only matches slash \ - in pattern. */ -#define FNM_PERIOD (0x00000002) /* Leading period in string must be \ - exactly matched by period in \ - pattern. */ -#define FNM_NOESCAPE (0x00000004) /* Disable backslash escaping. */ - -/* Return values */ -#define FNM_NOMATCH (1) /* The string does not match the specified \ - pattern. */ -#define FNM_NOSYS (2) /* The implementation does not support this \ - function. */ - -/* PROTOTYPES */ -int fnmatch(const char *, const char *, int); - -/* MACROS */ - -#endif /* __FNMATCH_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/ftw.h b/posix/include/ftw.h deleted file mode 100644 index 60cb86933ae..00000000000 --- a/posix/include/ftw.h +++ /dev/null @@ -1,73 +0,0 @@ -/* $Id: ftw.h,v 1.4 2002/10/29 04:45:08 rex Exp $ - */ -/* - * ftw.h - * - * file tree traversal. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __FTW_H_INCLUDED__ -#define __FTW_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ -struct FTW -{ - int base; - int level; -}; - -/* CONSTANTS */ -/* Values of the third argument to the application-supplied function - that is passed as the second argument to ftw() and nftw() */ -#define FTW_F (1) /* File. */ -#define FTW_D (2) /* Directory. */ -#define FTW_DNR (3) /* Directory without read permission. */ -#define FTW_DP (4) /* Directory with subdirectories visited. */ -#define FTW_NS (5) /* Unknown type, stat() failed. */ -#define FTW_SL (6) /* Symbolic link. */ -#define FTW_SLN (7) /* Symbolic link that names a non-existent file. */ - -/* Values of the fourth argument to nftw() */ -#define FTW_PHYS (0x00000001) /* Physical walk, does not follow symbolic \ - links. Otherwise, nftw() will follow \ - links but will not walk down any path \ - that crosses itself. */ -#define FTW_MOUNT (0x00000002) /* The walk will not cross a mount point. */ -#define FTW_DEPTH (0x00000004) /* All subdirectories will be visited before \ - the directory itself. */ -#define FTW_CHDIR (0x00000008) /* The walk will change to each directory \ - before reading it. */ - -/* PROTOTYPES */ -int ftw(const char *, - int (*)(const char *, const struct stat *, int), int); -int nftw(const char *, int (*) - (const char *, const struct stat *, int, struct FTW*), - int, int); - -/* MACROS */ - -#endif /* __FTW_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/glob.h b/posix/include/glob.h deleted file mode 100644 index ff36fce0084..00000000000 --- a/posix/include/glob.h +++ /dev/null @@ -1,73 +0,0 @@ -/* $Id: glob.h,v 1.4 2002/10/29 04:45:10 rex Exp $ - */ -/* - * glob.h - * - * pathname pattern-matching types. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __GLOB_H_INCLUDED__ -#define __GLOB_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ -typedef struct __tagglob_t -{ - size_t gl_pathc; /* count of paths matched by pattern */ - char **gl_pathv; /* pointer to a list of matched pathnames */ - size_t gl_offs; /* slots to reserve at the beginning of gl_pathv */ -} glob_t; - -/* CONSTANTS */ -/* Values for the flags argument */ -#define GLOB_APPEND (0x00000001) /* Append generated pathnames to \ - those previously obtained. */ -#define GLOB_DOOFFS (0x00000002) /* Specify how many null pointers to \ - add to the beginning of */ -#define GLOB_ERR (0x00000004) /* Cause glob() to return on error. */ -#define GLOB_MARK (0x00000008) /* Each pathname that is a directory \ - that matches pattern has a slash \ - appended. */ -#define GLOB_NOCHECK (0x00000010) /* If pattern does not match any pathname, \ - then return a list consisting of only \ - pattern. */ -#define GLOB_NOESCAPE (0x00000020) /* Disable backslash escaping. */ -#define GLOB_NOSORT (0x00000040) /* Do not sort the pathnames returned. */ - -/* Error return values */ -#define GLOB_ABORTED (-1) /* The scan was stopped because GLOB_ERR was set \ - or errfunc returned non-zero. */ -#define GLOB_NOMATCH (-2) /* The pattern does not match any existing pathname, \ - and GLOB_NOCHECK was not set in flags. */ -#define GLOB_NOSPACE (-3) /* An attempt to allocate memory failed. */ -#define GLOB_NOSYS (-4) /* The implementation does not support this function. */ - -/* PROTOTYPES */ -int glob(const char *, int, int (*)(const char *, int), glob_t *); -void globfree (glob_t *); - -/* MACROS */ - -#endif /* __GLOB_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/grp.h b/posix/include/grp.h deleted file mode 100644 index e24576b983f..00000000000 --- a/posix/include/grp.h +++ /dev/null @@ -1,59 +0,0 @@ -/* $Id: grp.h,v 1.4 2002/10/29 04:45:10 rex Exp $ - */ -/* - * grp.h - * - * group structure. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __GRP_H_INCLUDED__ -#define __GRP_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ -struct group -{ - char *gr_name; /* the name of the group */ - gid_t gr_gid; /* numerical group ID */ - char **gr_mem; /* pointer to a null-terminated array of character - pointers to member names */ -}; - -/* CONSTANTS */ - -/* PROTOTYPES */ -struct group *getgrgid(gid_t); -struct group *getgrnam(const char *); -int getgrgid_r(gid_t, struct group *, char *, - size_t, struct group **); -int getgrnam_r(const char *, struct group *, char *, - size_t , struct group **); -struct group *getgrent(void); -void endgrent(void); -void setgrent(void); - -/* MACROS */ - -#endif /* __GRP_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/iconv.h b/posix/include/iconv.h deleted file mode 100644 index 15af2d22208..00000000000 --- a/posix/include/iconv.h +++ /dev/null @@ -1,47 +0,0 @@ -/* $Id: iconv.h,v 1.4 2002/10/29 04:45:10 rex Exp $ - */ -/* - * iconv.h - * - * codeset conversion facility. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __ICONV_H_INCLUDED__ -#define __ICONV_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ -typedef (void *) iconv_t; - -/* CONSTANTS */ - -/* PROTOTYPES */ -iconv_t iconv_open(const char *, const char *); -size_t iconv(iconv_t, char **, size_t *, char **, size_t *); -int iconv_close(iconv_t); - -/* MACROS */ - -#endif /* __ICONV_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/inttypes.h b/posix/include/inttypes.h deleted file mode 100644 index f15668a94df..00000000000 --- a/posix/include/inttypes.h +++ /dev/null @@ -1,60 +0,0 @@ -/* $Id: inttypes.h,v 1.4 2002/10/29 04:45:10 rex Exp $ - */ -/* - * inttypes.h - * - * fixed size integral types. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __INTTYPES_H_INCLUDED__ -#define __INTTYPES_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ -/* signed */ -typedef signed char int8_t; /* 8-bit signed integral type. */ -typedef signed short int int16_t; /* 16-bit signed integral type. */ -typedef signed long int int32_t; /* 32-bit signed integral type. */ -typedef signed long long int64_t; /* 64-bit signed integral type. */ - -/* unsigned */ -typedef unsigned char uint8_t; /* 8-bit unsigned integral type. */ -typedef unsigned short int uint16_t; /* 16-bit unsigned integral type. */ -typedef unsigned long int uint32_t; /* 32-bit unsigned integral type. */ -typedef unsigned long long uint64_t; /* 64-bit unsigned integral type. */ - -/* pointer-sized */ -typedef signed long int intptr_t; /* Signed integral type large enough - to hold any pointer. */ -typedef unsigned long int uintptr_t; /* Unsigned integral type large - enough to hold any pointer. */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __INTTYPES_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/iso646.h b/posix/include/iso646.h deleted file mode 100644 index 12e9c845435..00000000000 --- a/posix/include/iso646.h +++ /dev/null @@ -1,54 +0,0 @@ -/* $Id: iso646.h,v 1.4 2002/10/29 04:45:10 rex Exp $ - */ -/* - * iso646.h - * - * alternative spellings. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __ISO646_H_INCLUDED__ -#define __ISO646_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ -#define and && -#define and_eq &= -#define bitand & -#define bitor | -#define compl ~ -#define not ! -#define not_eq != -#define or || -#define or_eq |= -#define xor ^ -#define xor_eq ^= - -#endif /* __ISO646_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/libgen.h b/posix/include/libgen.h deleted file mode 100644 index e98d23ab5bf..00000000000 --- a/posix/include/libgen.h +++ /dev/null @@ -1,52 +0,0 @@ -/* $Id: libgen.h,v 1.4 2002/10/29 04:45:10 rex Exp $ - */ -/* - * libgen.h - * - * definitions for pattern matching functions. Conforming to the Single - * UNIX(r) Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __LIBGEN_H_INCLUDED__ -#define __LIBGEN_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ -extern char *__loc1; /* LEGACY */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ -char *basename(char *); -char *dirname(char *); -char *regcmp(const char *, ...); /* LEGACY */ -char *regex(const char *, const char *, ...); /* LEGACY */ - -wchar_t *_Wbasename(wchar_t *); -wchar_t *_Wdirname(wchar_t *); - -/* MACROS */ - -#endif /* __LIBGEN_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/limits.h b/posix/include/limits.h deleted file mode 100644 index c5a2a52aec8..00000000000 --- a/posix/include/limits.h +++ /dev/null @@ -1,48 +0,0 @@ -/* $Id: limits.h,v 1.5 2002/10/29 04:45:10 rex Exp $ - */ -/* - * limits.h - * - * implementation-dependent constants. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __LIMITS_H_INCLUDED__ -#define __LIMITS_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ -/* TODO */ -#define OPEN_MAX (256) -#define NAME_MAX (255) -#define ARG_MAX (255) -#define PATH_MAX (32768) - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __LIMITS_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/math.h b/posix/include/math.h deleted file mode 100644 index 9bc67191249..00000000000 --- a/posix/include/math.h +++ /dev/null @@ -1,65 +0,0 @@ -/* $Id: math.h,v 1.4 2002/10/29 04:45:10 rex Exp $ - */ -/* - * math.h - * - * mathematical declarations. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __MATH_H_INCLUDED__ -#define __MATH_H_INCLUDED__ - -/* INCLUDES */ -#ifdef __PSXDLL__ - -/* headers for internal usage by psxdll.dll and ReactOS */ - -#else /* ! __PSXDLL__ */ - -/* standard POSIX headers */ - -#endif - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ -#define M_E ((double) 2.7182818285) /* Value of e */ -#define M_LOG2E ((double) 1.4426950419) /* Value of log2(e) */ -#define M_LOG10E ((double) 0.4342944819) /* Value of log10(e) */ -#define M_LN2 ((double)-0.6931471806) /* Value of loge2 */ -#define M_LN10 ((double) 2.3025850929) /* Value of loge10 */ -#define M_PI ((double) 3.1415926536) /* Value of Pi */ -#define M_PI_2 ((double) 1.5707963268) /* Value of Pi/2 */ -#define M_PI_4 ((double) 0.7853981634) /* Value of Pi/4 */ -#define M_1_PI ((double) 0.3183098862) /* Value of 1/Pi */ -#define M_2_PI ((double) 0.6366197724) /* Value of 2/Pi */ -#define M_2_SQRTPI ((double) 1.1283791671) /* Value of 2/Sqrt(Pi) */ -#define M_SQRT2 ((double) 1.4142135624) /* Value of Sqrt(2) */ -#define M_SQRT1_2 ((double) 0.7071067812) /* Value of Sqrt(1/2) */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __MATH_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/netinet/in.h b/posix/include/netinet/in.h deleted file mode 100644 index e9e8ac8fe12..00000000000 --- a/posix/include/netinet/in.h +++ /dev/null @@ -1,43 +0,0 @@ -/* $Id: in.h,v 1.4 2002/10/29 04:45:10 rex Exp $ - */ -/* - * netinet/in.h - * - * Internet Protocol family. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __NETINET_IN_H_INCLUDED__ -#define __NETINET_IN_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __NETINET_IN_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/psx/.cvsignore b/posix/include/psx/.cvsignore deleted file mode 100644 index 4143547671c..00000000000 --- a/posix/include/psx/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -syscall.h diff --git a/posix/include/psx/debug.h b/posix/include/psx/debug.h deleted file mode 100644 index faa89771363..00000000000 --- a/posix/include/psx/debug.h +++ /dev/null @@ -1,146 +0,0 @@ -/* $Id: debug.h,v 1.4 2002/10/29 04:45:11 rex Exp $ - */ -/* - * psx/debug.h - * - * debugging utilities - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __PSX_DEBUG_H_INCLUDED__ -#define __PSX_DEBUG_H_INCLUDED__ - -/* INCLUDES */ -#ifdef __PSX_DEBUG_TO_STDERR__ -#include -#else /* !defined(__PSX_DEBUG_TO_STDERR__) */ -#include -#endif /* defined(__PSX_DEBUG_TO_STDERR__) */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#define __PSX_MODULE__ "psxdll.dll" - -#ifndef NDEBUG - -#ifdef __PSX_DEBUG_TO_STDERR__ - -#if 0 -#define DEBUGOUT(MODULE,TYPE,ARGS...) \ -do{ \ - fprintf(stderr,"%s:%s:%s:%d:%s():\n\t",(MODULE),(TYPE),__FILE__,__LINE__,__FUNCTION__); \ - fprintf(stderr,ARGS); \ - fprintf("\n"); \ -} \ -while(0) -#endif - -#define DEBUGOUT(MODULE,TYPE,ARGS...) \ -do{ \ - printf("%s:%s:%s:%d:%s():\n\t",(MODULE),(TYPE),__FILE__,__LINE__,__FUNCTION__); \ - printf(ARGS); \ - printf("\n"); \ -} \ -while(0) - - -#else /* !defined(__PSX_DEBUG_TO_STDERR__) */ - -#define DEBUGOUT(MODULE,TYPE,ARGS...) \ -do{ \ - DbgPrint("%s:%s:%s:%d:%s():\n\t",(MODULE),(TYPE),__FILE__,__LINE__,__FUNCTION__); \ - DbgPrint(ARGS); \ - DbgPrint("\n"); \ -} \ -while(0) - -#endif /* defined(__PSX_DEBUG_TO_STDERR__) */ - -#define DEBUGOUTIF(CONDITION,MODULE,TYPE,ARGS...) \ -if((CONDITION)) \ -{ \ - DEBUGOUT((MODULE),(TYPE),ARGS); \ -} - -#else /* defined(NDEBUG) */ - -#define DEBUGOUTIF(c,m,t,args...) -#define DEBUGOUT(m,t,args...) - -#endif /* !defined(NDEBUG) */ - -#if defined(__PSX_DEBUG_WANT_ALL__) || defined(__PSX_DEBUG_WANT_HINTS__) -#define HINT(args...) DEBUGOUT(__PSX_MODULE__,"HINT",args) -#define HINTIF(c,args...) DEBUGOUTIF((c),__PSX_MODULE__,"HINT",args) -#else -#define HINT(args...) -#define HINTIF(c,args...) -#endif - -#if defined(__PSX_DEBUG_WANT_ALL__) || defined(__PSX_DEBUG_WANT_INFOS__) -#define INFO(args...) DEBUGOUT(__PSX_MODULE__,"INFO",args) -#define INFOIF(c,args...) DEBUGOUTIF((c),__PSX_MODULE__,"INFO",args) -#else -#define INFO(args...) -#define INFOIF(c,args...) -#endif - -#if defined(__PSX_DEBUG_WANT_ALL__) || defined(__PSX_DEBUG_WANT_WARNS__) -#define WARN(args...) DEBUGOUT(__PSX_MODULE__,"WARN",args) -#define WARNIF(c,args...) DEBUGOUTIF((c),__PSX_MODULE__,"WARN",args) -#else -#define WARN(args...) -#define WARNIF(c,args...) -#endif - -#if defined(__PSX_DEBUG_WANT_ALL__) || defined(__PSX_DEBUG_WANT_ERRS__) -#define ERR(args...) DEBUGOUT(__PSX_MODULE__,"ERR",args) -#define ERRIF(c,args...) DEBUGOUTIF((c),__PSX_MODULE__,"ERR",args) -#else -#define ERR(args...) -#define ERRIF(c,args...) -#endif - -#if defined(__PSX_DEBUG_WANT_ALL__) || defined(__PSX_DEBUG_WANT_TODOS__) -#define TODO(args...) DEBUGOUT(__PSX_MODULE__,"TODO",args) -#define TODOIF(c,args...) DEBUGOUTIF((c),__PSX_MODULE__,"TODO",args) -#else -#define TODO(args...) -#define TODOIF(c,args...) -#endif - -#if defined(__PSX_DEBUG_WANT_ALL__) || defined(__PSX_DEBUG_WANT_FIXMES__) -#define FIXME(args...) DEBUGOUT(__PSX_MODULE__,"FIXME",args) -#define FIXMEIF(c,args...) DEBUGOUTIF((c),__PSX_MODULE__,"FIXME",args) -#else -#define FIXME(args...) -#define FIXMEIF(c,args...) -#endif - - -#endif /* __PSX_DEBUG_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/psx/dirent.h b/posix/include/psx/dirent.h deleted file mode 100644 index 396fe1768f3..00000000000 --- a/posix/include/psx/dirent.h +++ /dev/null @@ -1,57 +0,0 @@ -/* $Id: dirent.h,v 1.4 2002/10/29 04:45:13 rex Exp $ - */ -/* - * psx/dirent.h - * - * internal dirent.h - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __PSX_DIRENT_H_INCLUDED__ -#define __PSX_DIRENT_H_INCLUDED__ - -/* INCLUDES */ -#include -#include -#include - -/* OBJECTS */ - -/* TYPES */ -struct __internal_DIR -{ - __magic_t signature; /* signature to verify object's validity across calls */ - union __any_dirent{ - struct dirent de_ansi; - struct _Wdirent de_unicode; - } ent; /* storage for return buffer of readdir() */ - int fildes; /* file descriptor of the directory */ - FILE_DIRECTORY_INFORMATION info; /* directory entry information */ - WCHAR name[MAX_PATH]; /* filename buffer */ -}; - -/* CONSTANTS */ -#define __IDIR_MAGIC MAGIC('I', 'D', 'I', 'R') - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __PSX_DIRENT_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/psx/dlfcn.h b/posix/include/psx/dlfcn.h deleted file mode 100644 index ae5d1546553..00000000000 --- a/posix/include/psx/dlfcn.h +++ /dev/null @@ -1,53 +0,0 @@ -/* $Id: dlfcn.h,v 1.4 2002/10/29 04:45:13 rex Exp $ - */ -/* - * psx/dlfcn.h - * - * internal dlfcn.h - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __PSX_DLFCN_H_INCLUDED__ -#define __PSX_DLFCN_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ -/* internal representation for loaded DLLs */ -/* TODO: get rid of this. The handle should be enough, with a proper PE loader */ -struct __dlobj -{ - int global; /* if non-zero, all the other fields have no meaning */ - void *handle; /* pointer to the module mapping */ -}; - -/* CONSTANTS */ - -/* PROTOTYPES */ -void __dl_set_last_error(int); - -/* MACROS */ -#define __dl_get_reloc_flag(m) ((m) & (RTLD_LAZY | RTLD_NOW)) -#define __dl_get_scope_flag(m) ((m) & (RTLD_GLOBAL | RTLD_LOCAL)) - -#endif /* __PSX_DLFCN_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/psx/errno.h b/posix/include/psx/errno.h deleted file mode 100644 index 6ea07f89497..00000000000 --- a/posix/include/psx/errno.h +++ /dev/null @@ -1,45 +0,0 @@ -/* $Id: errno.h,v 1.4 2002/10/29 04:45:13 rex Exp $ - */ -/* - * psx/errno.h - * - * internal errno.h - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __PSX_ERRNO_H_INCLUDED__ -#define __PSX_ERRNO_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ -#define __status_to_errno(s) (s) -#define __set_errno_from_status(s) (errno = __status_to_errno((s))) - -#endif /* __PSX_ERRNO_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/psx/fdtable.h b/posix/include/psx/fdtable.h deleted file mode 100644 index edc88318c5b..00000000000 --- a/posix/include/psx/fdtable.h +++ /dev/null @@ -1,73 +0,0 @@ -/* $Id: fdtable.h,v 1.5 2002/10/29 04:45:13 rex Exp $ - */ -/* - * psx/fdtable.h - * - * POSIX+ subsystem file descriptor table data structure - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __PSX_FDTABLE_H_INCLUDED__ -#define __PSX_FDTABLE_H_INCLUDED__ - -/* INCLUDES */ -#include -#include -#include -#include - -/* OBJECTS */ - -/* TYPES */ -typedef struct __tagfildes_t -{ - void *FileHandle; - int OpenFlags; - int FdFlags; - size_t ExtraDataSize; - void *ExtraData; -} __fildes_t; - -typedef struct __tagfdtable_t -{ - __magic_t Signature; - int32_t LowestUnusedFileNo; - int32_t UsedDescriptors; - int32_t AllocatedDescriptors; - uint32_t DescriptorsBitmap[OPEN_MAX / 32]; - __fildes_t *Descriptors; -} __fdtable_t; - -/* CONSTANTS */ - -/* PROTOTYPES */ -int __fdtable_init(__fdtable_t *); -int __fdtable_free(__fdtable_t *); - -int __fdtable_entry_isavail(__fdtable_t *, int); -int __fdtable_entry_nextavail(__fdtable_t *, int); -int __fdtable_entry_add(__fdtable_t *, int, __fildes_t *, __fildes_t **); -int __fdtable_entry_remove(__fdtable_t *, int); -__fildes_t *__fdtable_entry_get(__fdtable_t *, int); - -/* MACROS */ -#define __FDTABLE_MAGIC MAGIC('F', 'D', 'T', 'B') - -#endif /* __PSX_FDTABLE_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/psx/interlock.h b/posix/include/psx/interlock.h deleted file mode 100644 index 7858637d8e8..00000000000 --- a/posix/include/psx/interlock.h +++ /dev/null @@ -1,45 +0,0 @@ -/* $Id: interlock.h,v 1.4 2002/10/29 04:45:13 rex Exp $ - */ -/* - * psx/interlock.h - * - * inter-locked increment/decrement - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __PSX_INTERLOCK_H_INCLUDED__ -#define __PSX_INTERLOCK_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ -int __interlock_inc(int *); -int __interlock_dec(int *); -int __interlock_add(int *, int); - -/* MACROS */ - -#endif /* __PSX_INTERLOCK_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/psx/lpcproto.h b/posix/include/psx/lpcproto.h deleted file mode 100644 index f7664011fe9..00000000000 --- a/posix/include/psx/lpcproto.h +++ /dev/null @@ -1,91 +0,0 @@ -/* $Id: lpcproto.h,v 1.7 2004/01/18 21:27:32 ea Exp $ - * - * ReactOS POSIX+ Environment Subsystem - * LPC protocol spoken by PSXSS.EXE, PSXDLL.DLL, CSRTERM.EXE. - */ -#ifndef _PSX_LPCPROTO_H -#define _PSX_LPCPROTO_H - -#define NTOS_MODE_USER -#include - -#ifndef PRIVATE -#define PRIVATE static -#endif - -/* Protocol version */ -#define PSX_LPC_PROTOCOL_VERSION 1 - -/* POSIX+ system name space */ -#define PSX_NS_SUBSYSTEM_DIRECTORY_NAME L"POSIX+" -#define PSX_NS_SESSION_DIRECTORY_NAME L"Sessions" -#define PSX_NS_SYSTEM_DIRECTORY_NAME L"System" -#define PSX_NS_API_PORT_NAME L"ApiPort" -#define PSX_NS_SBAPI_PORT_NAME L"SbApiPort" -#define PSX_NS_SESSIONAPI_PORT_NAME L"SessionPort" -#define PSX_NS_API_PORT_TEMPLATE L"\\%s\\%s" -#define PSX_NS_SESSION_PORT_TEMPLATE L"\\%s\\%s\\P%d" -#define PSX_NS_SESSION_DATA_TEMPLATE L"\\%s\\%s\\D%d" - -/* ConnectData protocol */ - -typedef enum { - PSX_CONNECTION_TYPE_PROCESS, - PSX_CONNECTION_TYPE_TERMINAL, - PSX_CONNECTION_TYPE_SERVER -} PSX_CONNECTION_TYPE; - -typedef struct _PSX_CONNECT_PORT_DATA -{ - PSX_CONNECTION_TYPE ConnectionType; /* IN OUT */ - ULONG Version; /* IN OUT */ - ULONG PortIdentifier; /* OUT */ -} PSX_CONNECT_PORT_DATA, * PPSX_CONNECT_PORT_DATA; - -/* LPC message subsystem-specific header */ - -typedef struct _PSX_MESSAGE_HEADER -{ - WORD Context; - WORD Procedure; - NTSTATUS Status; -} PSX_MESSAGE_HEADER, * PPSX_MESSAGE_HEADER; - -typedef PSX_MESSAGE_HEADER PSX_MESSAGE, * PPSX_MESSAGE; - -#define PSX_MAX_LPC_DATA_SIZE 128 /* compute it*/ - -typedef struct _PSX_MAX_MESSAGE -{ - //LPC_MESSAGE_HEADER Header; - LPC_MESSAGE Header; - PSX_MESSAGE_HEADER PsxHeader; - BYTE Data [PSX_MAX_LPC_DATA_SIZE]; -} PSX_MAX_MESSAGE, * PPSX_MAX_MESSAGE; - -/* Terminal I/O */ - -/* \POSIX+\SessionPort API */ - -#define PSX_TERMINAL_SECTION_SIZE 65536L -#define PSX_TERMINAL_SECTION_OFFSET 8192L - -typedef enum { - PSX_TERMINAL_INTERRUPT, - PSX_TERMINAL_SESSION_STATUS_REQUEST -} PSX_TERMINAL_API; - -typedef struct _PSX_TERMINAL_IO -{ - //LPC_MESSAGE_HEADER Header; - LPC_MESSAGE Header; - PSX_MESSAGE_HEADER PsxHeader; - ULONG Size; - ULONG Offset; -} PSX_TERMINAL_READ, * PPSX_TERMINAL_READ; - -/* System I/O (system calls) */ - -#include - -#endif /* ndef _PSX_LPCPROTO_H */ diff --git a/posix/include/psx/path.h b/posix/include/psx/path.h deleted file mode 100644 index eb96621901f..00000000000 --- a/posix/include/psx/path.h +++ /dev/null @@ -1,112 +0,0 @@ -/* $Id: path.h,v 1.4 2002/10/29 04:45:13 rex Exp $ - */ -/* - * psx/path.h - * - * POSIX+ subsystem path functions - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __PSX_PATH_H_INCLUDED__ -#define __PSX_PATH_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ -BOOLEAN -__PdxPosixPathGetNextComponent_U -( - IN UNICODE_STRING PathName, - IN OUT PUNICODE_STRING PathComponent, - OUT PBOOLEAN TrailingDelimiter OPTIONAL -); - -BOOLEAN -__PdxPosixPathResolve_U -( - IN UNICODE_STRING PathName, - OUT PUNICODE_STRING ResolvedPathName, - IN WCHAR PathDelimiter OPTIONAL -); - -BOOLEAN -__PdxPosixPathGetNextComponent_A -( - IN ANSI_STRING PathName, - IN OUT PANSI_STRING PathComponent, - OUT PBOOLEAN TrailingDelimiter OPTIONAL -); - -BOOLEAN -__PdxPosixPathResolve_A -( - IN ANSI_STRING PathName, - OUT PANSI_STRING ResolvedPathName, - IN CHAR PathDelimiter OPTIONAL -); - -BOOLEAN -__PdxPosixPathNameToNtPathName -( - IN PWCHAR PosixPath, - OUT PUNICODE_STRING NativePath, - IN PUNICODE_STRING CurDir OPTIONAL, - IN PUNICODE_STRING RootDir OPTIONAL -); - -/* MACROS */ -/* returns non-zero if the argument is a path delimiter */ -#define IS_CHAR_DELIMITER_U(WCH) (((WCH) == L'/') || ((WCH) == L'\\')) -#define IS_CHAR_DELIMITER_A(CH) (((CH) == '/') || ((CH) == '\\')) - -/* returns non-zero if the argument is an empty path component */ -#define IS_COMPONENT_EMPTY_U(WCOMPONENT) (WCOMPONENT.Length == 0) -#define IS_COMPONENT_EMPTY_A(COMPONENT) (COMPONENT.Length == 0) - -/* returns non-zero if the argument is "." */ -#define IS_COMPONENT_DOT_U(WCOMPONENT) \ -((WCOMPONENT.Length == sizeof(WCHAR)) && (WCOMPONENT.Buffer[0] == L'.')) - -#define IS_COMPONENT_DOT_A(COMPONENT) \ -((COMPONENT.Length == 1) && (COMPONENT.Buffer[0] == '.')) - -/* returns non-zero if the argument is ".." */ -#define IS_COMPONENT_DOTDOT_U(WCOMPONENT) \ -( \ - (WCOMPONENT.Length == (sizeof(WCHAR) * 2)) && \ - (WCOMPONENT.Buffer[0] == L'.') && \ - (WCOMPONENT.Buffer[1] == L'.') \ -) - -#define IS_COMPONENT_DOTDOT_A(COMPONENT) \ -( \ - (COMPONENT.Length == 2) && \ - (COMPONENT.Buffer[0] == '.') && \ - (COMPONENT.Buffer[1] == '.') \ -) - -#endif /* __PSX_PATH_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/psx/pdata.h b/posix/include/psx/pdata.h deleted file mode 100644 index 30c69fecb06..00000000000 --- a/posix/include/psx/pdata.h +++ /dev/null @@ -1,135 +0,0 @@ -/* $Id: pdata.h,v 1.8 2002/10/29 04:45:13 rex Exp $ - */ -/* - * psx/pdata.h - * - * POSIX+ subsystem process environment data structure - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __PSX_PDATA_H_INCLUDED__ -#define __PSX_PDATA_H_INCLUDED__ - -/* INCLUDES */ -#include -#include -#include -#include - -/* OBJECTS */ - -/* TYPES */ -typedef struct __tagPDX_PDATA -{ - BOOL Spawned; /* TRUE if process has been created through __PdxSpawnPosixProcess() */ - int ArgCount; /* count of arguments passed to exec() */ - char **ArgVect; /* array of arguments passed to exec() */ - char ***Environment; /* pointer to user-provided environ variable */ - UNICODE_STRING NativePathBuffer; /* static buffer used by low-level calls for pathname conversions */ - UNICODE_STRING CurDir; /* current working directory */ - UNICODE_STRING RootPath; /* NT path to the process's root directory */ - HANDLE RootHandle; /* handle to the process's root directory */ - __fdtable_t FdTable; /* file descriptors table */ - /* WARNING: PRELIMINARY CODE FOR DEBUGGING PURPOSES ONLY - DO NOT CHANGE */ - CRITICAL_SECTION Lock; - LONG TlsIndex; -} __PDX_PDATA, * __PPDX_PDATA; - -/* serialized process data block, used by __PdxSpawnPosixProcess() and __PdxExecThunk(). - The layout of buffers inside the Buffer byte array is as following: - - ArgVect[0] + null byte - ArgVect[1] + null byte - ... - ArgVect[ArgCount - 1] + null byte - Environment[0] + null byte - Environment[1] + null byte - ... - Environment[n - 1] + null byte (NOTE: the value of n is stored in ProcessData.Environment) - CurDir.Buffer - RootPath.Buffer - FdTable.Descriptors[0] - FdTable.Descriptors[1] - ... - FdTable.Descriptors[FdTable.AllocatedDescriptors - 1] - FdTable.Descriptors[x].ExtraData - FdTable.Descriptors[y].ExtraData - ... - padding for page boundary alignment - */ -typedef struct __tagPDX_SERIALIZED_PDATA -{ - __PDX_PDATA ProcessData; - ULONG AllocSize; - BYTE Buffer[1]; -} __PDX_SERIALIZED_PDATA, *__PPDX_SERIALIZED_PDATA; - -typedef struct __tagPDX_TDATA -{ - __PPDX_PDATA ProcessData; - int ErrNum; -} __PDX_TDATA, * __PPDX_TDATA; - -/* CONSTANTS */ - -/* PROTOTYPES */ -NTSTATUS STDCALL __PdxSerializeProcessData(IN __PPDX_PDATA, OUT __PPDX_SERIALIZED_PDATA *); -NTSTATUS STDCALL __PdxUnserializeProcessData(IN OUT __PPDX_SERIALIZED_PDATA *, OUT __PPDX_PDATA * OPTIONAL); - -NTSTATUS -STDCALL -__PdxProcessDataToProcessParameters -( - OUT PRTL_USER_PROCESS_PARAMETERS *ProcessParameters, - IN __PPDX_PDATA ProcessData, - IN PUNICODE_STRING ImageFile -); - -/* MACROS */ -/* WARNING: PRELIMINARY CODE FOR DEBUGGING PURPOSES ONLY - DO NOT CHANGE */ -VOID __PdxSetProcessData(__PPDX_PDATA); -__PPDX_PDATA __PdxGetProcessData(VOID); - -#include - -#define __PdxAcquirePdataLock() (RtlEnterCriticalSection(&__PdxGetProcessData()->Lock)) -#define __PdxReleasePdataLock() (RtlLeaveCriticalSection(&__PdxGetProcessData()->Lock)) - -#if 0 -#define __PdxAcquirePdataLock() (RtlAcquirePebLock()) -#define __PdxReleasePdataLock() (RtlReleasePebLock()) - -#define __PdxSetProcessData(PPDATA) ((void)((NtCurrentPeb()->SubSystemData) = (PPDATA))) -#define __PdxGetProcessData() ((__PPDX_PDATA)(&(NtCurrentPeb()->SubSystemData))) -#endif - -#define __PdxGetNativePathBuffer() ((PUNICODE_STRING)(&(__PdxGetProcessData()->NativePathBuffer))) -#define __PdxGetCurDir() ((PUNICODE_STRING)(&(__PdxGetProcessData()->CurDir))) -#define __PdxGetRootPath() ((PUNICODE_STRING)(&(__PdxGetProcessData()->RootPath))) -#define __PdxGetRootHandle() ((HANDLE)(__PdxGetProcessData()->RootHandle)) -#define __PdxGetFdTable() ((__fdtable_t *)(__PdxGetProcessData()->FdTable)) - -#define __PdxSetNativePathBuffer(BUF) ((void)((__PdxGetProcessData()->NativePathBuffer) = (BUF))) -#define __PdxSetCurDir(CURDIR) ((void)((__PdxGetProcessData()->CurDir) = (CURDIR))) -#define __PdxSetRootPath(ROOTPATH) ((void)((__PdxGetProcessData()->RootPath) = (ROOTPATH))) -#define __PdxSetRootHandle(ROOTHANDLE) ((void)((__PdxGetProcessData()->RootHandle) = (ROOTHANDLE))) -#define __PdxSetFdTable(FDTABLE) ((void)((__PdxGetProcessData()->FdTable) = (FDTABLE))) - -#endif /* __PSX_PDATA_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/psx/pthread.h b/posix/include/psx/pthread.h deleted file mode 100644 index 88dd80a6b45..00000000000 --- a/posix/include/psx/pthread.h +++ /dev/null @@ -1,61 +0,0 @@ -/* $Id: pthread.h,v 1.4 2002/10/29 04:45:15 rex Exp $ - */ -/* - * psx/pthread.h - * - * internal pthread.h - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __PSX_PTHREAD_H_INCLUDED__ -#define __PSX_PTHREAD_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ - -struct __mutexattr -{ - __magic_t signature; - int pshared; - int protocol; - int type; -}; - -struct __mutex -{ - __magic_t signature; - void * handle; - int protocol; - int type; -}; - -/* CONSTANTS */ -#define __PTHREAD_MUTEX_MAGIC (MAGIC('P', 'T', 'M', 'X')) -#define __PTHREAD_MUTEX_ATTR_MAGIC (MAGIC('P', 'T', 'M', 'A')) - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __PSX_PTHREAD_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/psx/safeobj.h b/posix/include/psx/safeobj.h deleted file mode 100644 index 34b72e83bd1..00000000000 --- a/posix/include/psx/safeobj.h +++ /dev/null @@ -1,59 +0,0 @@ -/* $Id: safeobj.h,v 1.4 2002/10/29 04:45:15 rex Exp $ - */ -/* - * psx/safeobj.h - * - * types and definitions for safe checking of user-provided objects - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __PSX_SAFEOBJ_H_INCLUDED__ -#define __PSX_SAFEOBJ_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ -typedef uint32_t __magic_t; - -/* CONSTANTS */ - -/* PROTOTYPES */ -int __safeobj_validate(void *, __magic_t); - -/* MACROS */ -/* builds a magic number from 4 characters */ -#define MAGIC(a,b,c,d) ( \ - (((uint32_t)(uint8_t)(a)) << 24) | \ - (((uint32_t)(uint8_t)(b)) << 16) | \ - (((uint32_t)(uint8_t)(c)) << 8) | \ - (((uint32_t)(uint8_t)(d)) << 0) \ -) - -/* retrieves a comma-separated list of the 4 characters in a magic number */ -#define MAGIC_DECOMPOSE(m) \ - ((uint8_t)(m >> 24)), \ - ((uint8_t)(m >> 16)), \ - ((uint8_t)(m >> 8)), \ - ((uint8_t)(m >> 0)) - -#endif /* __PSX_SAFEOBJ_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/psx/spawn.h b/posix/include/psx/spawn.h deleted file mode 100644 index 41b5aa87371..00000000000 --- a/posix/include/psx/spawn.h +++ /dev/null @@ -1,54 +0,0 @@ -/* $Id: spawn.h,v 1.3 2002/10/29 04:45:15 rex Exp $ - */ -/* - * psx/spawn.h - * - * spawn POSIX+ processes - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __PSX_SPAWN_H_INCLUDED__ -#define __PSX_SPAWN_H_INCLUDED__ - -/* INCLUDES */ -#include -#include - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ -NTSTATUS STDCALL __PdxSpawnPosixProcess -( - OUT PHANDLE ProcessHandle, - OUT PHANDLE ThreadHandle, - IN POBJECT_ATTRIBUTES FileObjectAttributes, - IN POBJECT_ATTRIBUTES ProcessObjectAttributes, - IN HANDLE InheritFromProcessHandle, - IN __PPDX_PDATA ProcessData -); - -/* MACROS */ - -#endif /* __PSX_SPAWN_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/psx/stdlib.h b/posix/include/psx/stdlib.h deleted file mode 100644 index 74c00e82cc0..00000000000 --- a/posix/include/psx/stdlib.h +++ /dev/null @@ -1,55 +0,0 @@ -/* $Id: stdlib.h,v 1.5 2003/01/05 18:27:20 robd Exp $ - */ -/* - * psx/stdlib.h - * - * internal stdlib.h - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __PSX_STDLIB_H_INCLUDED__ -#define __PSX_STDLIB_H_INCLUDED__ - -/* INCLUDES */ -#include -#include -#include - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ -/* FIXME? Windows NT's ntdll doesn't export RtlGetProcessHeap() */ -//#define RtlGetProcessHeap() ((HANDLE)NtCurrentPeb()->ProcessHeap) -#ifndef _RTLGETPROCESSHEAP_DEFINED_ -#define _RTLGETPROCESSHEAP_DEFINED_ -#define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap) -#endif - -#define __malloc(SIZE) (RtlAllocateHeap(RtlGetProcessHeap(), 0, (SIZE))) -#define __realloc(PTR,SIZE) (RtlReAllocateHeap(RtlGetProcessHeap(), 0, (PTR), (SIZE))) -#define __free(PTR) (RtlFreeHeap(RtlGetProcessHeap(), 0, (PTR))) - -#endif /* __PSX_STDLIB_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/psx/template.h b/posix/include/psx/template.h deleted file mode 100644 index 7998718c387..00000000000 --- a/posix/include/psx/template.h +++ /dev/null @@ -1,83 +0,0 @@ -/* $Id: template.h,v 1.6 2002/10/29 04:45:15 rex Exp $ - How to create a new header file from this template: - - copy the template in the new file (never edit this file directly, unless - that's what you want) - - search for the string "EDITME" in the file, and follow the instructions - - remove this comment block, all blocks containing REMOVEME, and all EDITME - instructions - - save your file, and Have Fun! (TM) - */ -/* $*Id*$ (EDITME: remove asterisks from "$*Id*$") - */ -/* - * psx/template.h (EDITME: replace with the real name of the header) - * - * template for POSIX headers (EDITME: replace this line with the real file - * description) - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by John Doe (EDITME: your name and e-mail go - * here) - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -/* - Tags are used to prevent double inclusion of C header files. This - technique should be documented in all good C manuals - - How to generate an unique tag for your header: - - uppercase the name of the header, where "name" is the filename and - the optional relative path (e.g. "stdio.h", "sys/types.h") - - replace all non-alphanumeric characters in the obtained name with an - underscore character ("_") - - prepend a double underscore ("__"), and append the string "_INCLUDED__" - - replace all occurrences of "__PSX_TEMPLATE_H_INCLUDED__" in this file - with your tag - - Example tags: - sys/types.h -> SYS/TYPES.H -> SYS_TYPES_H -> __SYS_TYPES_H_INCLUDED__ - iso646.h -> ISO646.H -> ISO646_H -> __ISO646_H_INCLUDED__ - - (REMOVEME) - */ -#ifndef __PSX_TEMPLATE_H_INCLUDED__ /* EDITME: replace macro with unique tag */ -#define __PSX_TEMPLATE_H_INCLUDED__ /* EDITME: replace macro with unique tag */ -/* - Explanation of the sections: - INCLUDES #include directives should be grouped here - OBJECTS declare global variables here - TYPES types, structures and unions here - CONSTANTS symbolic constants (simple #define's), enums, constants - PROTOTYPES ANSI C function prototypes - MACROS parametrized macros - - (REMOVEME) - */ -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __PSX_TEMPLATE_H_INCLUDED__ */ /* EDITME: replace macro with unique tag */ - -/* EOF */ - diff --git a/posix/include/psx/tls.h b/posix/include/psx/tls.h deleted file mode 100644 index 69e741e1288..00000000000 --- a/posix/include/psx/tls.h +++ /dev/null @@ -1,48 +0,0 @@ -/* $Id: tls.h,v 1.3 2002/10/29 04:45:15 rex Exp $ - */ -/* - * psx/tls.h - * - * types and calls for TLS management - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __PSX_TLS_H_INCLUDED__ -#define __PSX_TLS_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ -typedef unsigned int __tls_index_t; - -/* CONSTANTS */ - -/* PROTOTYPES */ -__tls_index_t __tls_alloc(); -int __tls_free(__tls_index_t index); -void * __tls_get_val(__tls_index_t index); -int __tls_put_val(__tls_index_t index, void * data); - -/* MACROS */ - -#endif /* __PSX_TLS_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/pthread.h b/posix/include/pthread.h deleted file mode 100644 index 23317c2f083..00000000000 --- a/posix/include/pthread.h +++ /dev/null @@ -1,141 +0,0 @@ -/* $Id: pthread.h,v 1.4 2002/10/29 04:45:16 rex Exp $ - */ -/* - * pthread.h - * - * threads. Conforming to the Single UNIX(r) Specification Version 2, - * System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __PTHREAD_H_INCLUDED__ -#define __PTHREAD_H_INCLUDED__ - -/* INCLUDES */ -#include -#include - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ -#define PTHREAD_MUTEX_NORMAL (1) -#define PTHREAD_MUTEX_ERRORCHECK (2) -#define PTHREAD_MUTEX_RECURSIVE (3) - -#define PTHREAD_MUTEX_DEFAULT (PTHREAD_MUTEX_NORMAL) - -#define PTHREAD_PROCESS_PRIVATE (1) -#define PTHREAD_PROCESS_SHARED (2) - -#define PTHREAD_PRIO_NONE (1) - -/* PROTOTYPES */ -int pthread_attr_destroy(pthread_attr_t *); -int pthread_attr_getdetachstate(const pthread_attr_t *, int *); -int pthread_attr_getguardsize(const pthread_attr_t *, size_t *); -int pthread_attr_getinheritsched(const pthread_attr_t *, int *); -int pthread_attr_getschedparam(const pthread_attr_t *, - struct sched_param *); -int pthread_attr_getschedpolicy(const pthread_attr_t *, int *); -int pthread_attr_getscope(const pthread_attr_t *, int *); -int pthread_attr_getstackaddr(const pthread_attr_t *, void **); -int pthread_attr_getstacksize(const pthread_attr_t *, size_t *); -int pthread_attr_init(pthread_attr_t *); -int pthread_attr_setdetachstate(pthread_attr_t *, int); -int pthread_attr_setguardsize(pthread_attr_t *, size_t); -int pthread_attr_setinheritsched(pthread_attr_t *, int); -int pthread_attr_setschedparam(pthread_attr_t *, - const struct sched_param *); -int pthread_attr_setschedpolicy(pthread_attr_t *, int); -int pthread_attr_setscope(pthread_attr_t *, int); -int pthread_attr_setstackaddr(pthread_attr_t *, void *); -int pthread_attr_setstacksize(pthread_attr_t *, size_t); -int pthread_cancel(pthread_t); -void pthread_cleanup_push(void (*)(void *), void *); -void pthread_cleanup_pop(int); -int pthread_cond_broadcast(pthread_cond_t *); -int pthread_cond_destroy(pthread_cond_t *); -int pthread_cond_init(pthread_cond_t *, const pthread_condattr_t *); -int pthread_cond_signal(pthread_cond_t *); -int pthread_cond_timedwait(pthread_cond_t *, - pthread_mutex_t *, const struct timespec *); -int pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *); -int pthread_condattr_destroy(pthread_condattr_t *); -int pthread_condattr_getpshared(const pthread_condattr_t *, int *); -int pthread_condattr_init(pthread_condattr_t *); -int pthread_condattr_setpshared(pthread_condattr_t *, int); -int pthread_create(pthread_t *, const pthread_attr_t *, - void *(*)(void *), void *); -int pthread_detach(pthread_t); -int pthread_equal(pthread_t, pthread_t); -void pthread_exit(void *); -int pthread_getconcurrency(void); -int pthread_getschedparam(pthread_t, int *, struct sched_param *); -void *pthread_getspecific(pthread_key_t); -int pthread_join(pthread_t, void **); -int pthread_key_create(pthread_key_t *, void (*)(void *)); -int pthread_key_delete(pthread_key_t); -int pthread_mutex_destroy(pthread_mutex_t *); -int pthread_mutex_getprioceiling(const pthread_mutex_t *, int *); -int pthread_mutex_init(pthread_mutex_t *, const pthread_mutexattr_t *); -int pthread_mutex_lock(pthread_mutex_t *); -int pthread_mutex_setprioceiling(pthread_mutex_t *, int, int *); -int pthread_mutex_trylock(pthread_mutex_t *); -int pthread_mutex_unlock(pthread_mutex_t *); -int pthread_mutexattr_destroy(pthread_mutexattr_t *); -int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *, - int *); -int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *, int *); -int pthread_mutexattr_getpshared(const pthread_mutexattr_t *, int *); -int pthread_mutexattr_gettype(const pthread_mutexattr_t *, int *); -int pthread_mutexattr_init(pthread_mutexattr_t *); -int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int); -int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int); -int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int); -int pthread_mutexattr_settype(pthread_mutexattr_t *, int); -int pthread_once(pthread_once_t *, void (*)(void)); -int pthread_rwlock_destroy(pthread_rwlock_t *); -int pthread_rwlock_init(pthread_rwlock_t *, - const pthread_rwlockattr_t *); -int pthread_rwlock_rdlock(pthread_rwlock_t *); -int pthread_rwlock_tryrdlock(pthread_rwlock_t *); -int pthread_rwlock_trywrlock(pthread_rwlock_t *); -int pthread_rwlock_unlock(pthread_rwlock_t *); -int pthread_rwlock_wrlock(pthread_rwlock_t *); -int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); -int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *, - int *); -int pthread_rwlockattr_init(pthread_rwlockattr_t *); -int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int); -pthread_t - pthread_self(void); -int pthread_setcancelstate(int, int *); -int pthread_setcanceltype(int, int *); -int pthread_setconcurrency(int); -int pthread_setschedparam(pthread_t, int , - const struct sched_param *); -int pthread_setspecific(pthread_key_t, const void *); -void pthread_testcancel(void); - -/* MACROS */ - -#endif /* __PTHREAD_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/pwd.h b/posix/include/pwd.h deleted file mode 100644 index 0c8639bc618..00000000000 --- a/posix/include/pwd.h +++ /dev/null @@ -1,60 +0,0 @@ -/* $Id: pwd.h,v 1.4 2002/10/29 04:45:16 rex Exp $ - */ -/* - * pwd.h - * - * password structure. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __PWD_H_INCLUDED__ -#define __PWD_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ -struct passwd -{ - char *pw_name; /* user's login name */ - uid_t pw_uid; /* numerical user ID */ - gid_t pw_gid; /* numerical group ID */ - char *pw_dir; /* initial working directory */ - char *pw_shell; /* program to use as shell */ -}; - -/* CONSTANTS */ - -/* PROTOTYPES */ -struct passwd *getpwnam(const char *); -struct passwd *getpwuid(uid_t); -int getpwnam_r(const char *, struct passwd *, char *, - size_t, struct passwd **); -int getpwuid_r(uid_t, struct passwd *, char *, - size_t, struct passwd **); -void endpwent(void); -struct passwd *getpwent(void); -void setpwent(void); - -/* MACROS */ - -#endif /* __PWD_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sched.h b/posix/include/sched.h deleted file mode 100644 index d18b2cfab50..00000000000 --- a/posix/include/sched.h +++ /dev/null @@ -1,62 +0,0 @@ -/* $Id: sched.h,v 1.4 2002/10/29 04:45:18 rex Exp $ - */ -/* - * sched.h - * - * execution scheduling (REALTIME). Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SCHED_H_INCLUDED__ -#define __SCHED_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ -struct sched_param -{ - int sched_priority; /* process execution scheduling priority */ -}; - -/* CONSTANTS */ -/* First in-first out (FIFO) scheduling policy */ -#define SCHED_FIFO (1) -/* Round robin scheduling policy */ -#define SCHED_RR (2) -/* Another scheduling policy */ -#define SCHED_OTHER (3) - -/* PROTOTYPES */ -int sched_get_priority_max(int); -int sched_get_priority_min(int); -int sched_getparam(pid_t, struct sched_param *); -int sched_getscheduler(pid_t); -int sched_rr_get_interval(pid_t, struct timespec *); -int sched_setparam(pid_t, const struct sched_param *); -int sched_setscheduler(pid_t, int, const struct sched_param *); -int sched_yield(void); - -/* MACROS */ - -#endif /* __SCHED_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/signal.h b/posix/include/signal.h deleted file mode 100644 index 5f11c57e8fc..00000000000 --- a/posix/include/signal.h +++ /dev/null @@ -1,322 +0,0 @@ -/* $Id: signal.h,v 1.5 2002/10/29 04:45:18 rex Exp $ - */ -/* - * signal.h - * - * signals. Conforming to the Single UNIX(r) Specification Version 2, - * System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SIGNAL_H_INCLUDED__ -#define __SIGNAL_H_INCLUDED__ - -/* INCLUDES */ -#include -#include - -/* OBJECTS */ - -/* TYPES */ -/* pre-declaration of time.h types to suppress warnings caused by circular - dependencies */ -struct timespec; - -typedef int sig_atomic_t; /* Integral type of an object that can be - accessed as an atomic entity, even in the - presence of asynchronous interrupts */ - -typedef unsigned long int sigset_t; /* Integral or structure type of an object - used to represent sets of signals. */ - -union sigval -{ - int sival_int; /* integer signal value */ - void* sival_ptr; /* pointer signal value */ -}; - -struct sigevent -{ - int sigev_notify; /* notification type */ - int sigev_signo; /* signal number */ - union sigval sigev_value; /* signal value */ - void (* sigev_notify_function)(union sigval); /* notification function */ - pthread_attr_t * sigev_notify_attributes; /* notification attributes */ -}; - - -typedef struct __tagsiginfo_t -{ - int si_signo; /* signal number */ - int si_errno; /* if non-zero, an errno value associated with - this signal, as defined in */ - int si_code; /* signal code */ - pid_t si_pid; /* sending process ID */ - uid_t si_uid; /* real user ID of sending process */ - void *si_addr; /* address of faulting instruction */ - int si_status; /* exit value or signal */ - long si_band; /* band event for SIGPOLL */ - union sigval si_value; /* signal value */ -} siginfo_t; - -struct sigaction -{ - void (* sa_handler)(int); /* what to do on receipt of signal */ - sigset_t sa_mask; /* set of signals to be blocked during - execution of the signal handling function */ - int sa_flags; /* special flags */ - void (* sa_sigaction)(int, siginfo_t *, void *); - /* pointer to signal handler function - or one of the macros SIG_IGN or SIG_DFL */ -}; - -typedef struct __tagstack_t -{ - void *ss_sp; /* stack base or pointer */ - size_t ss_size; /* stack size */ - int ss_flags; /* flags */ -} stack_t; - -struct sigstack -{ - int ss_onstack; /* non-zero when signal stack is in use */ - void *ss_sp; /* signal stack pointer */ -}; - -/* CONSTANTS */ -#define SIG_DFL ((void (*)(int))(0xFFFFFFFF)) /* Request for default signal handling. */ -#define SIG_ERR ((void (*)(int))(0x00000000)) /* Return value from signal() in case of error. */ -#define SIG_IGN ((void (*)(int))(0x00000001)) /* Request that signal be ignored. */ -#define SIG_HOLD ((void (*)(int))(0x00000002)) /* Request that signal be held. */ - -#define SIGEV_NONE (0) /* No asynchronous notification will be delivered \ - when the event of interest occurs. */ -#define SIGEV_SIGNAL (1) /* A queued signal, with an application-defined \ - value, will be generated when the event of \ - interest occurs. */ -#define SIGEV_THREAD (2) /* A notification function will be called to perform \ - notification. */ - -/* TODO: realtime features not supported yet */ -#define SIGRTMIN (-1) -#define SIGRTMAX (-1) - -#define SIGABRT ( 1) /* Process abort signal. */ -#define SIGALRM ( 2) /* Alarm clock. */ -#define SIGFPE ( 3) /* Erroneous arithmetic operation. */ -#define SIGHUP ( 4) /* Hangup. */ -#define SIGILL ( 5) /* Illegal instruction. */ -#define SIGINT ( 6) /* Terminal interrupt signal. */ -#define SIGKILL ( 7) /* Kill (cannot be caught or ignored). */ -#define SIGPIPE ( 8) /* Write on a pipe with no one to read it. */ -#define SIGQUIT ( 9) /* Terminal quit signal. */ -#define SIGSEGV (10) /* Invalid memory reference. */ -#define SIGTERM (11) /* Termination signal. */ -#define SIGUSR1 (12) /* User-defined signal 1. */ -#define SIGUSR2 (13) /* User-defined signal 2. */ -#define SIGCHLD (14) /* Child process terminated or stopped. */ -#define SIGCONT (15) /* Continue executing, if stopped. */ -#define SIGSTOP (16) /* Stop executing (cannot be caught or ignored). */ -#define SIGTSTP (17) /* Terminal stop signal. */ -#define SIGTTIN (18) /* Background process attempting read. */ -#define SIGTTOU (19) /* Background process attempting write. */ -#define SIGBUS (20) /* Access to an undefined portion of a memory object. */ -#define SIGPOLL (21) /* Pollable event. */ -#define SIGPROF (22) /* Profiling timer expired. */ -#define SIGSYS (23) /* Bad system call. */ -#define SIGTRAP (24) /* Trace/breakpoint trap. */ -#define SIGURG (25) /* High bandwidth data is available at a socket. */ -#define SIGVTALRM (26) /* Virtual timer expired. */ -#define SIGXCPU (27) /* CPU time limit exceeded. */ -#define SIGXFSZ (28) /* File size limit exceeded. */ - -/* FIXME: the following constants need to be reviewed */ -/* Do not generate SIGCHLD when children stop. */ -#define SA_NOCLDSTOP (0x00000001) -/* The resulting set is the union of the current set and the signal set - pointed to by the argument set. */ -#define SA_ONSTACK (0x00000002) -/* Causes signal dispositions to be set to SIG_DFL on entry to signal - handlers. */ -#define SA_RESETHAND (0x00000004) -/* Causes certain functions to become restartable. */ -#define SA_RESTART (0x00000008) -/* Causes extra information to be passed to signal handlers at the time - of receipt of a signal. */ -#define SA_SIGINFO (0x00000010) -/* Causes implementations not to create zombie processes on child death. */ -#define SA_NOCLDWAIT (0x00000020) -/* Causes signal not to be automatically blocked on entry to signal - handler. */ -#define SA_NODEFER (0x00000040) - -/* FIXME: the following constants need to be reviewed */ -/* The resulting set is the intersection of the current set and the - complement of the signal set pointed to by the argument set. */ -#define SIG_BLOCK (1) -/* The resulting set is the signal set pointed to by the argument - set. */ -#define SIG_UNBLOCK (2) -/* Causes signal delivery to occur on an alternate stack. */ -#define SIG_SETMASK (3) - -/* FIXME: the following constants need to be reviewed */ -/* Process is executing on an alternate signal stack. */ -#define SS_ONSTACK (1) -/* Alternate signal stack is disabled. */ -#define SS_DISABLE (2) - -/* Minimum stack size for a signal handler. */ /* FIXME */ -#define MINSIGSTKSZ (0) -/* Default size in bytes for the alternate signal stack. */ /* FIXME */ -#define SIGSTKSZ (0) - -/* - signal-specific reasons why the signal was generated - */ -/* SIGILL */ -/* illegal opcode */ -#define ILL_ILLOPC (1) -/* illegal operand */ -#define ILL_ILLOPN (2) -/* illegal addressing mode */ -#define ILL_ILLADR (3) -/* illegal trap */ -#define ILL_ILLTRP (4) -/* privileged opcode */ -#define ILL_PRVOPC (5) -/* privileged register */ -#define ILL_PRVREG (6) -/* coprocessor error */ -#define ILL_COPROC (7) -/* internal stack error */ -#define ILL_BADSTK (8) - -/* SIGFPE */ -/* integer divide by zero */ -#define FPE_INTDIV -/* integer overflow */ -#define FPE_INTOVF -/* floating point divide by zero */ -#define FPE_FLTDIV -/* floating point overflow */ -#define FPE_FLTOVF -/* floating point underflow */ -#define FPE_FLTUND -/* floating point inexact result */ -#define FPE_FLTRES -/* invalid floating point operation */ -#define FPE_FLTINV -/* subscript out of range */ -#define FPE_FLTSUB - -/* SIGSEGV */ -/* address not mapped to object */ -#define SEGV_MAPERR -/* invalid permissions for mapped object */ -#define SEGV_ACCERR - -/* SIGBUS */ -/* invalid address alignment */ -#define BUS_ADRALN -/* non-existent physical address */ -#define BUS_ADRERR -/* object specific hardware error */ -#define BUS_OBJERR - -/* SIGTRAP */ -/* process breakpoint */ -#define TRAP_BRKPT -/* process trace trap */ -#define TRAP_TRACE - -/* SIGCHLD */ -/* child has exited */ -#define CLD_EXITED -/* child has terminated abnormally and did not create a core file */ -#define CLD_KILLED -/* child has terminated abnormally and created a core file */ -#define CLD_DUMPED -/* traced child has trapped */ -#define CLD_TRAPPED -/* child has stopped */ -#define CLD_STOPPED -/* stopped child has continued */ -#define CLD_CONTINUED - -/* SIGPOLL */ -/* data input available */ -#define POLL_IN -/* output buffers available */ -#define POLL_OUT -/* input message available */ -#define POLL_MSG -/* I/O error */ -#define POLL_ERR -/* high priority input available */ -#define POLL_PRI -/* device disconnected */ -#define POLL_HUP -/* signal sent by kill() */ -#define SI_USER -/* signal sent by the sigqueue() */ -#define SI_QUEUE -/* signal generated by expiration of a timer set by timer_settime() */ -#define SI_TIMER -/* signal generated by completion of an asynchronous I/O request */ -#define SI_ASYNCIO -/* signal generated by arrival of a message on an empty message queue */ -#define SI_MESGQ - -/* PROTOTYPES */ -void (*bsd_signal(int, void (*)(int)))(int); -int kill(pid_t, int); -int killpg(pid_t, int); -int pthread_kill(pthread_t, int); -int pthread_sigmask(int, const sigset_t *, sigset_t *); -int raise(int); -int sigaction(int, const struct sigaction *, struct sigaction *); -int sigaddset(sigset_t *, int); -int sigaltstack(const stack_t *, stack_t *); -int sigdelset(sigset_t *, int); -int sigemptyset(sigset_t *); -int sigfillset(sigset_t *); -int sighold(int); -int sigignore(int); -int siginterrupt(int, int); -int sigismember(const sigset_t *, int); -void (*signal(int, void (*)(int)))(int); -int sigpause(int); -int sigpending(sigset_t *); -int sigprocmask(int, const sigset_t *, sigset_t *); -int sigqueue(pid_t, int, const union sigval); -int sigrelse(int); -void (*sigset(int, void (*)(int)))(int); -int sigstack(struct sigstack *ss, - struct sigstack *oss); /* LEGACY */ -int sigsuspend(const sigset_t *); -int sigtimedwait(const sigset_t *, siginfo_t *, - const struct timespec *); -int sigwait(const sigset_t *set, int *sig); -int sigwaitinfo(const sigset_t *, siginfo_t *); - -/* MACROS */ - -#endif /* __SIGNAL_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/stdarg.h b/posix/include/stdarg.h deleted file mode 100644 index e9b488991b3..00000000000 --- a/posix/include/stdarg.h +++ /dev/null @@ -1,57 +0,0 @@ -/* $Id: stdarg.h,v 1.4 2002/10/29 04:45:18 rex Exp $ - */ -/* - * stdarg.h - * - * handle variable argument list. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __STDARG_H_INCLUDED__ -#define __STDARG_H_INCLUDED__ - -/* OBJECTS */ - -/* TYPES */ -typedef char* va_list; - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ -/* taken from mingw's stdarg.h */ - -/* Amount of space required in an argument list (ie. the stack) for an - argument of type t. */ -#define __va_argsiz(t) \ - (((sizeof(t) + sizeof(int) - 1) / sizeof(int)) * sizeof(int)) - -#define va_start(ap, pN) \ - ((ap) = ((va_list) (&pN) + __va_argsiz(pN))) - -#define va_end(ap) ((void)0) - -#define va_arg(ap, t) \ - (((ap) = (ap) + __va_argsiz(t)), \ - *((t*) (void*) ((ap) - __va_argsiz(t)))) - -#endif /* __STDARG_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/stddef.h b/posix/include/stddef.h deleted file mode 100644 index e08eb18ce30..00000000000 --- a/posix/include/stddef.h +++ /dev/null @@ -1,63 +0,0 @@ -/* $Id: stddef.h,v 1.5 2003/01/05 18:27:19 robd Exp $ - */ -/* - * stddef.h - * - * standard type definitions. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __STDDEF_H_INCLUDED__ -#define __STDDEF_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ -typedef signed long int ptrdiff_t; - -#ifndef _WCHAR_T_ -#define _WCHAR_T_ -#define _WCHAR_T -#define _WCHAR_T_DEFINED -#ifndef __WCHAR_TYPE__ -#define __WCHAR_TYPE__ short unsigned int -#endif -#ifndef __cplusplus -typedef __WCHAR_TYPE__ wchar_t; -#endif /* C++ */ -#endif /* _WCHAR_T_ */ - -//typedef unsigned short int wchar_t; - -/* CONSTANTS */ -#ifndef NULL -#define NULL ((void *)(0)) /* Null pointer constant. */ -#endif - -/* PROTOTYPES */ - -/* MACROS */ -#define offsetof(t,m) ((size_t) &((t *)0)->m) - -#endif /* __STDDEF_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/stdio.h b/posix/include/stdio.h deleted file mode 100644 index 1ed4a091757..00000000000 --- a/posix/include/stdio.h +++ /dev/null @@ -1,165 +0,0 @@ -/* $Id: stdio.h,v 1.4 2002/10/29 04:45:19 rex Exp $ - */ -/* - * stdio.h - * - * standard buffered input/output. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __STDIO_H_INCLUDED__ -#define __STDIO_H_INCLUDED__ - -/* INCLUDES */ -#include -#include -#include -#include - -/* OBJECTS */ -extern char *optarg; -extern int opterr; -extern int optind; /* LEGACY */ -extern int optopt; - -/* TYPES */ -typedef struct __tagFILE -{ - int _dummy; -} FILE; - -typedef struct __tagfpos_t -{ - int _dummy; -} fpos_t; - - -/* CONSTANTS */ -/* Size of buffers. */ -#define BUFSIZ (0x10000) - -/* Maximum size in bytes of the longest filename string that the implementation - guarantees can be opened. */ -#define FILENAME_MAX (255) - -/* Number of streams which the implementation guarantees can be open - simultaneously. The value will be at least eight. */ -#define FOPEN_MAX (8) - -/* Input/output fully buffered. */ -#define _IOFBF (1) -/* Input/output line buffered. */ -#define _IOLBF (2) -/* Input/output unbuffered. */ -#define _IONBF (3) - -/* Maximum size of character array to hold ctermid() output. */ -#define L_ctermid (255) -/* Maximum size of character array to hold cuserid() output. (LEGACY) */ -#define L_cuserid (255) -/* Maximum size of character array to hold tmpnam() output. */ -#define L_tmpnam (255) - -/* Minimum number of unique filenames generated by tmpnam(). Maximum number - of times an application can call tmpnam() reliably. The value of TMP_MAX - will be at least 10,000. */ -#define TMP_MAX (0xFFFF) - -/* End-of-file return value. */ -#define EOF (-1) - -/* default directory prefix for tempnam() */ -#define P_tmpdir "/tmp/" - -/* Standard error output stream. */ -#define stderr ((FILE *)STDERR_FILENO) -/* Standard input stream. */ -#define stdin ((FILE *)STDIN_FILENO) -/* Standard output stream. */ -#define stdout ((FILE *)STDOUT_FILENO) - -/* PROTOTYPES */ -void clearerr(FILE *); -char *ctermid(char *); -char *cuserid(char *); /* LEGACY */ -int fclose(FILE *); -FILE *fdopen(int, const char *); -int feof(FILE *); -int ferror(FILE *); -int fflush(FILE *); -int fgetc(FILE *); -int fgetpos(FILE *, fpos_t *); -char *fgets(char *, int, FILE *); -int fileno(FILE *); -void flockfile(FILE *); -FILE *fopen(const char *, const char *); -int fprintf(FILE *, const char *, ...); -int fputc(int, FILE *); -int fputs(const char *, FILE *); -size_t fread(void *, size_t, size_t, FILE *); -FILE *freopen(const char *, const char *, FILE *); -int fscanf(FILE *, const char *, ...); -int fseek(FILE *, long int, int); -int fseeko(FILE *, off_t, int); -int fsetpos(FILE *, const fpos_t *); -long int ftell(FILE *); -off_t ftello(FILE *); -int ftrylockfile(FILE *); -void funlockfile(FILE *); -size_t fwrite(const void *, size_t, size_t, FILE *); -int getc(FILE *); -int getchar(void); -int getc_unlocked(FILE *); -int getchar_unlocked(void); -int getopt(int, char * const[], const char *); /* LEGACY */ -char *gets(char *); -int getw(FILE *); -int pclose(FILE *); -void perror(const char *); -FILE *popen(const char *, const char *); -int printf(const char *, ...); -int putc(int, FILE *); -int putchar(int); -int putc_unlocked(int, FILE *); -int putchar_unlocked(int); -int puts(const char *); -int putw(int, FILE *); -int remove(const char *); -int rename(const char *, const char *); -void rewind(FILE *); -int scanf(const char *, ...); -void setbuf(FILE *, char *); -int setvbuf(FILE *, char *, int, size_t); -int snprintf(char *, size_t, const char *, ...); -int sprintf(char *, const char *, ...); -int sscanf(const char *, const char *, int, ...); -char *tempnam(const char *, const char *); -FILE *tmpfile(void); -char *tmpnam(char *); -int ungetc(int, FILE *); -int vfprintf(FILE *, const char *, va_list); -int vprintf(const char *, va_list); -int vsnprintf(char *, size_t, const char *, va_list); -int vsprintf(char *, const char *, va_list); - -/* MACROS */ - -#endif /* __STDIO_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/stdlib.h b/posix/include/stdlib.h deleted file mode 100644 index a69282cd910..00000000000 --- a/posix/include/stdlib.h +++ /dev/null @@ -1,130 +0,0 @@ -/* $Id: stdlib.h,v 1.4 2002/10/29 04:45:19 rex Exp $ - */ -/* - * stdlib.h - * - * standard library definitions. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __STDLIB_H_INCLUDED__ -#define __STDLIB_H_INCLUDED__ - -/* INCLUDES */ -#include -#include -#include -#include - -/* OBJECTS */ - -/* TYPES */ -typedef struct __tagdiv_t -{ - int quot; /* quotient */ - int rem; /* remainder */ -} div_t; - -typedef struct __tagldiv_t -{ - long int quot; /* quotient */ - long int rem; /* remainder */ -} ldiv_t; - -/* CONSTANTS */ -#define EXIT_FAILURE (-1) /* Unsuccessful termination for exit(), evaluates \ - to a non-zero value. */ -#define EXIT_SUCCESS (0) /* Successful termination for exit(), evaluates to 0. */ - -/* FIXME */ -#define RAND_MAX (32767) /* Maximum value returned by rand(), at least 32,767. */ - -/* FIXME */ -#define MB_CUR_MAX (1) /* Integer expression whose value is the maximum number \ - of bytes in a character specified by the current \ - locale. */ - -/* PROTOTYPES */ -long a64l(const char *); -void abort(void); -int abs(int); -int atexit(void (*)(void)); -double atof(const char *); -int atoi(const char *); -long int atol(const char *); -void *bsearch(const void *, const void *, size_t, size_t, - int (*)(const void *, const void *)); -void *calloc(size_t, size_t); -div_t div(int, int); -double drand48(void); -char *ecvt(double, int, int *, int *); -double erand48(unsigned short int[3]); -void exit(int); -char *fcvt (double, int, int *, int *); -void free(void *); -char *gcvt(double, int, char *); -char *getenv(const char *); -int getsubopt(char **, char *const *, char **); -int grantpt(int); -char *initstate(unsigned int, char *, size_t); -long int jrand48(unsigned short int[3]); -char *l64a(long); -long int labs(long int); -void lcong48(unsigned short int[7]); -ldiv_t ldiv(long int, long int); -long int lrand48(void); -void *malloc(size_t); -int mblen(const char *, size_t); -size_t mbstowcs(wchar_t *, const char *, size_t); -int mbtowc(wchar_t *, const char *, size_t); -char *mktemp(char *); -int mkstemp(char *); -long int mrand48(void); -long int nrand48(unsigned short int [3]); -char *ptsname(int); -int putenv(char *); -void qsort(void *, size_t, size_t, int (*)(const void *, - const void *)); -int rand(void); -int rand_r(unsigned int *); -long random(void); -void *realloc(void *, size_t); -char *realpath(const char *, char *); -unsigned short int seed48(unsigned short int[3]); -void setkey(const char *); -char *setstate(const char *); -void srand(unsigned int); -void srand48(long int); -void srandom(unsigned); -double strtod(const char *, char **); -long int strtol(const char *, char **, int); -unsigned long int - strtoul(const char *, char **, int); -int system(const char *); -int ttyslot(void); /* LEGACY */ -int unlockpt(int); -void *valloc(size_t); /* LEGACY */ -size_t wcstombs(char *, const wchar_t *, size_t); -int wctomb(char *, wchar_t); - -/* MACROS */ - -#endif /* __STDLIB_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/string.h b/posix/include/string.h deleted file mode 100644 index f673ca0a165..00000000000 --- a/posix/include/string.h +++ /dev/null @@ -1,69 +0,0 @@ -/* $Id: string.h,v 1.4 2002/10/29 04:45:19 rex Exp $ - */ -/* - * string.h - * - * string operations. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __STRING_H_INCLUDED__ /* replace with the appropriate tag */ -#define __STRING_H_INCLUDED__ /* replace with the appropriate tag */ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ -void *memccpy(void *, const void *, int, size_t); -void *memchr(const void *, int, size_t); -int memcmp(const void *, const void *, size_t); -void *memcpy(void *, const void *, size_t); -void *memmove(void *, const void *, size_t); -void *memset(void *, int, size_t); -char *strcat(char *, const char *); -char *strchr(const char *, int); -int strcmp(const char *, const char *); -int strcoll(const char *, const char *); -char *strcpy(char *, const char *); -size_t strcspn(const char *, const char *); -char *strdup(const char *); -char *strerror(int); -size_t strlen(const char *); -char *strncat(char *, const char *, size_t); -int strncmp(const char *, const char *, size_t); -char *strncpy(char *, const char *, size_t); -char *strpbrk(const char *, const char *); -char *strrchr(const char *, int); -size_t strspn(const char *, const char *); -char *strstr(const char *, const char *); -char *strtok(char *, const char *); -char *strtok_r(char *, const char *, char **); -size_t strxfrm(char *, const char *, size_t); - -/* MACROS */ - -#endif /* __STRING_H_INCLUDED__ */ /* replace with the appropriate tag */ - -/* EOF */ - diff --git a/posix/include/sys/errno.h b/posix/include/sys/errno.h deleted file mode 100644 index 933f925bf85..00000000000 --- a/posix/include/sys/errno.h +++ /dev/null @@ -1,44 +0,0 @@ -/* $Id: errno.h,v 1.3 2002/10/29 04:45:19 rex Exp $ - */ -/* - * sys/errno.h - * - * dummy include file for Microsoft POSIX and Interix compatibility - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __SYS_ERRNO_H_INCLUDED__ -#define __SYS_ERRNO_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __SYS_ERRNO_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/ipc.h b/posix/include/sys/ipc.h deleted file mode 100644 index 7d53fcf4d36..00000000000 --- a/posix/include/sys/ipc.h +++ /dev/null @@ -1,64 +0,0 @@ -/* $Id: ipc.h,v 1.5 2002/10/29 04:45:19 rex Exp $ - */ -/* - * sys/ipc.h - * - * interprocess communication access structure. Conforming to the Single - * UNIX(r) Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_IPC_H_INCLUDED__ -#define __SYS_IPC_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ -struct ipc_perm -{ - uid_t uid; /* owner's user ID */ - gid_t gid; /* owner's group ID */ - uid_t cuid; /* creator's user ID */ - gid_t cgid; /* creator's group ID */ - mode_t mode; /* read/write permission */ -}; - -/* CONSTANTS */ -/* Mode bits */ -#define IPC_CREAT (0x00000200) /* Create entry if key does not exist */ -#define IPC_EXCL (0x00000400) /* Fail if key exists */ -#define IPC_NOWAIT (0x00000800) /* Error if request must wait */ - -/* Keys */ -#define IPC_PRIVATE (0xFFFFFFFF) /* Private key */ - -/* Control commands */ -#define IPC_RMID (1) /* Remove identifier */ -#define IPC_SET (2) /* Set options */ -#define IPC_STAT (3) /* Get options */ - -/* PROTOTYPES */ -key_t ftok(const char *, int); - -/* MACROS */ - -#endif /* __SYS_IPC_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/mman.h b/posix/include/sys/mman.h deleted file mode 100644 index 8008e0bac22..00000000000 --- a/posix/include/sys/mman.h +++ /dev/null @@ -1,43 +0,0 @@ -/* $Id: mman.h,v 1.4 2002/10/29 04:45:20 rex Exp $ - */ -/* - * sys/mman.h - * - * memory management declarations. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_SOCKET_H_INCLUDED__ -#define __SYS_SOCKET_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __SYS_SOCKET_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/msg.h b/posix/include/sys/msg.h deleted file mode 100644 index 1bc5a28cf0d..00000000000 --- a/posix/include/sys/msg.h +++ /dev/null @@ -1,64 +0,0 @@ -/* $Id: msg.h,v 1.5 2002/10/29 04:45:21 rex Exp $ - */ -/* - * sys/msg.h - * - * message queue structures. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_SOCKET_H_INCLUDED__ -#define __SYS_SOCKET_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ -typedef unsigned int msgqnum_t; /* Used for the number of messages in the message queue */ -typedef unsigned int msglen_t; /* Used for the number of bytes allowed in a message queue */ - -struct msqid_ds -{ - struct ipc_perm msg_perm; /* operation permission structure */ - msgqnum_t msg_qnum; /* number of messages currently on queue */ - msglen_t msg_qbytes; /* maximum number of bytes allowed on queue */ - pid_t msg_lspid; /* process ID of last msgsnd() */ - pid_t msg_lrpid; /* process ID of last msgrcv() */ - time_t msg_stime; /* time of last msgsnd() */ - time_t msg_rtime; /* time of last msgrcv() */ - time_t msg_ctime; /* time of last change */ -}; - -/* CONSTANTS */ -/* Message operation flag */ -#define MSG_NOERROR (0x00001000) /* No error if big message */ - -/* PROTOTYPES */ -int msgctl(int, int, struct msqid_ds *); -int msgget(key_t, int); -ssize_t msgrcv(int, void *, size_t, long int, int); -int msgsnd(int, const void *, size_t, int); - -/* MACROS */ - -#endif /* __SYS_SOCKET_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/resource.h b/posix/include/sys/resource.h deleted file mode 100644 index 43c7c975492..00000000000 --- a/posix/include/sys/resource.h +++ /dev/null @@ -1,49 +0,0 @@ -/* $Id: resource.h,v 1.5 2002/10/29 04:45:21 rex Exp $ - */ -/* - * sys/resource.h - * - * definitions for XSI resource operations. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_RESOURCE_H_INCLUDED__ -#define __SYS_RESOURCE_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ -struct rusage -{ - struct timeval ru_utime; /* user time used */ - struct timeval ru_stime; /* system time used */ -}; - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __SYS_RESOURCE_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/sem.h b/posix/include/sys/sem.h deleted file mode 100644 index e7dbcf06c67..00000000000 --- a/posix/include/sys/sem.h +++ /dev/null @@ -1,72 +0,0 @@ -/* $Id: sem.h,v 1.5 2002/10/29 04:45:21 rex Exp $ - */ -/* - * sys/sem.h - * - * semaphore facility. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_SEM_H_INCLUDED__ -#define __SYS_SEM_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ -struct semid_ds -{ - struct ipc_perm sem_perm; /* operation permission structure */ - unsigned short int sem_nsems; /* number of semaphores in set */ - time_t sem_otime; /* last semop time */ - time_t sem_ctime; /* last time changed by semctl() */ -}; - -struct sembuf -{ - unsigned short int sem_num; /* semaphore number */ - short int sem_op; /* semaphore operation */ - short int sem_flg; /* operation flags */ -}; - -/* CONSTANTS */ -/* Semaphore operation flags */ -#define SEM_UNDO (0x00001000) /* Set up adjust on exit entry */ - -/* Command definitions for the function semctl() */ -#define GETNCNT (1) /* Get semncnt */ -#define GETPID (2) /* Get sempid */ -#define GETVAL (3) /* Get semval */ -#define GETALL (4) /* Get all cases of semval */ -#define GETZCNT (5) /* Get semzcnt */ -#define SETVAL (6) /* Set semval */ -#define SETALL (7) /* Set all cases of semval */ - -/* PROTOTYPES */ -int semctl(int, int, int, ...); -int semget(key_t, int, int); -int semop(int, struct sembuf *, size_t); - -/* MACROS */ - -#endif /* __SYS_SEM_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/shm.h b/posix/include/sys/shm.h deleted file mode 100644 index 90f97559c10..00000000000 --- a/posix/include/sys/shm.h +++ /dev/null @@ -1,64 +0,0 @@ -/* $Id: shm.h,v 1.5 2002/10/29 04:45:21 rex Exp $ - */ -/* - * sys/shm.h - * - * shared memory facility. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_SHM_H_INCLUDED__ -#define __SYS_SHM_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ -typedef unsigned short shmatt_t; - -struct shmid_ds -{ - struct ipc_perm shm_perm; /* operation permission structure */ - size_t shm_segsz; /* size of segment in bytes */ - pid_t shm_lpid; /* process ID of last shared memory operation */ - pid_t shm_cpid; /* process ID of creator */ - shmatt_t shm_nattch; /* number of current attaches */ - time_t shm_atime; /* time of last shmat() */ - time_t shm_dtime; /* time of last shmdt() */ - time_t shm_ctime; /* time of last change by shmctl() */ -}; - -/* CONSTANTS */ -#define SHM_RDONLY (0x00000200) /* Attach read-only (else read-write). */ -#define SHM_RND (0x00000400) /* Round attach address to SHMLBA. */ - -#define SHMLBA (4096) /* Segment low boundary address multiple. */ - -/* PROTOTYPES */ -void *shmat(int, const void *, int); -int shmctl(int, int, struct shmid_ds *); -int shmdt(const void *); -int shmget(key_t, size_t, int); - -/* MACROS */ - -#endif /* __SYS_SHM_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/socket.h b/posix/include/sys/socket.h deleted file mode 100644 index 193a76a07bd..00000000000 --- a/posix/include/sys/socket.h +++ /dev/null @@ -1,43 +0,0 @@ -/* $Id: socket.h,v 1.4 2002/10/29 04:45:21 rex Exp $ - */ -/* - * sys/socket.h - * - * Internet Protocol family. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_SOCKET_H_INCLUDED__ -#define __SYS_SOCKET_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __SYS_SOCKET_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/stat.h b/posix/include/sys/stat.h deleted file mode 100644 index a033f6d6797..00000000000 --- a/posix/include/sys/stat.h +++ /dev/null @@ -1,124 +0,0 @@ -/* $Id: stat.h,v 1.5 2002/10/29 04:45:21 rex Exp $ - */ -/* - * sys/stat.h - * - * data returned by the stat() function. Conforming to the Single - * UNIX(r) Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_STAT_H_INCLUDED__ -#define __SYS_STAT_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ -struct stat -{ - mode_t st_mode; /* mode of file (see below) */ - ino_t st_ino; /* file serial number */ - dev_t st_dev; /* ID of device containing file */ - nlink_t st_nlink; /* number of links to the file */ - uid_t st_uid; /* user ID of file */ - gid_t st_gid; /* group ID of file */ - off_t st_size; /* file size in bytes (if file is a regular file) */ - time_t st_atime; /* time of last access */ - time_t st_mtime; /* time of last data modification */ - time_t st_ctime; /* time of last status change */ - dev_t st_rdev; /* device ID (if file is character or block special) */ - blksize_t st_blksize; /* a filesystem-specific preferred I/O block size for - this object. In some filesystem types, this may - vary from file to file */ - blkcnt_t st_blocks; /* number of blocks allocated for this object */ -}; - -/* CONSTANTS */ -/* - file type - */ -#define S_IFIFO (000010000) /* FIFO special */ -#define S_IFCHR (000020000) /* character special */ -#define S_IFDIR (000040000) /* directory */ -#define S_IFBLK (000060000) /* block special */ -#define S_IFREG (000100000) /* regular */ -#define S_IFLNK (000200000) /* symbolic link */ -#define S_IFSOCK (000400000) /* socket */ - -/* type of file */ -#define S_IFMT (000770000) - -/* - file mode bits - */ -#define S_IRUSR (000000400) /* read permission, owner */ -#define S_IWUSR (000000200) /* write permission, owner */ -#define S_IXUSR (000000100) /* execute/search permission, owner */ -#define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) /* read, write, execute/search by owner */ - -#define S_IRGRP (000000040) /* read permission, group */ -#define S_IWGRP (000000020) /* write permission, group */ -#define S_IXGRP (000000010) /* execute/search permission, group */ -#define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) /* read, write, execute/search by group */ - -#define S_IROTH (000000004) /* read permission, others */ -#define S_IWOTH (000000002) /* write permission, others */ -#define S_IXOTH (000000001) /* execute/search permission, others */ -#define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) /* read, write, execute/search by others */ - -#define S_ISUID (000004000) /* set-user-ID on execution */ -#define S_ISGID (000002000) /* set-group-ID on execution */ - -#define S_ISVTX (000010000) /* on directories, restricted deletion flag */ - -/* - the following macros will test whether a file is of the specified type - */ -#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) -#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) -#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) -#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) -#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) -#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) -#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) - -/* shared memory, semaphores and message queues are unlikely to be ever - implemented as files */ -#define S_TYPEISMQ(buf) (0) /* Test for a message queue */ -#define S_TYPEISSEM(buf) (0) /* Test for a semaphore */ -#define S_TYPEISSHM(buf) (0) /* Test for a shared memory object */ - -/* PROTOTYPES */ -int chmod(const char *, mode_t); -int fchmod(int, mode_t); -int fstat(int, struct stat *); -int lstat(const char *, struct stat *); -int mkdir(const char *, mode_t); -int mkfifo(const char *, mode_t); -int mknod(const char *, mode_t, dev_t); -int stat(const char *, struct stat *); -mode_t umask(mode_t); - -/* MACROS */ - -#endif /* __SYS_STAT_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/statvfs.h b/posix/include/sys/statvfs.h deleted file mode 100644 index 7811325a7ce..00000000000 --- a/posix/include/sys/statvfs.h +++ /dev/null @@ -1,43 +0,0 @@ -/* $Id: statvfs.h,v 1.4 2002/10/29 04:45:21 rex Exp $ - */ -/* - * sys/statvfs.h - * - * VFS Filesystem information structure. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_STATVFS_H_INCLUDED__ -#define __SYS_STATVFS_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __SYS_STATVFS_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/time.h b/posix/include/sys/time.h deleted file mode 100644 index 6949c2699ed..00000000000 --- a/posix/include/sys/time.h +++ /dev/null @@ -1,48 +0,0 @@ -/* $Id: time.h,v 1.5 2002/10/29 04:45:22 rex Exp $ - */ -/* - * sys/time.h - * - * time types. Conforming to the Single UNIX(r) Specification Version 2, - * System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_TIME_H_INCLUDED__ -#define __SYS_TIME_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ -struct timeval -{ - time_t tv_sec; /* seconds */ - suseconds_t tv_usec; /* microseconds */ -}; - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __SYS_TIME_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/timeb.h b/posix/include/sys/timeb.h deleted file mode 100644 index 4f1a4a5675b..00000000000 --- a/posix/include/sys/timeb.h +++ /dev/null @@ -1,43 +0,0 @@ -/* $Id: timeb.h,v 1.4 2002/10/29 04:45:22 rex Exp $ - */ -/* - * sys/timeb.h - * - * additional definitions for date and time. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_TIMEB_H_INCLUDED__ -#define __SYS_TIMEB_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __SYS_TIMEB_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/times.h b/posix/include/sys/times.h deleted file mode 100644 index cffb8ce19b2..00000000000 --- a/posix/include/sys/times.h +++ /dev/null @@ -1,43 +0,0 @@ -/* $Id: times.h,v 1.4 2002/10/29 04:45:22 rex Exp $ - */ -/* - * sys/times.h - * - * file access and modification times structure. Conforming to the Single - * UNIX(r) Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_TIMES_H_INCLUDED__ -#define __SYS_TIMES_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __SYS_TIMES_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/types.h b/posix/include/sys/types.h deleted file mode 100644 index 10bd5d37cc8..00000000000 --- a/posix/include/sys/types.h +++ /dev/null @@ -1,100 +0,0 @@ -/* $Id: types.h,v 1.6 2002/10/29 04:45:22 rex Exp $ - */ -/* - * sys/types.h - * - * data types. Conforming to the Single UNIX(r) Specification Version 2, - * System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_TYPES_H_INCLUDED__ -#define __SYS_TYPES_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ -/* FIXME: all these types need to be checked */ -typedef unsigned long int blkcnt_t; /* Used for file block counts */ -typedef unsigned long int blksize_t; /* Used for block sizes */ -typedef long long clock_t; /* Used for system times in clock ticks or CLOCKS_PER_SEC */ -typedef int clockid_t; /* Used for clock ID type in the clock and timer functions. */ -typedef unsigned long int dev_t; /* Used for device IDs. */ -typedef unsigned long int fsblkcnt_t; /* Used for file system block counts */ -typedef unsigned long int fsfilcnt_t; /* Used for file system file counts */ -typedef unsigned long int gid_t; /* Used for group IDs. */ -typedef int id_t; /* Used as a general identifier; can be used to contain at least a - pid_t, uid_t or a gid_t. */ -typedef unsigned long int ino_t; /* Used for file serial numbers. */ -typedef int key_t; /* Used for interprocess communication. */ -typedef unsigned long int mode_t; /* Used for some file attributes. */ -typedef unsigned long int nlink_t; /* Used for link counts. */ -typedef long off_t; /* Used for file sizes. */ -typedef long int pid_t; /* Used for process IDs and process group IDs. */ - -/* pthread types */ -typedef void * pthread_cond_t; /* Used for condition variables. */ -typedef void * pthread_condattr_t; /* Used to identify a condition attribute object. */ -typedef void * pthread_key_t; /* Used for thread-specific data keys. */ -typedef void * pthread_attr_t; /* Used to identify a thread attribute object. */ - -typedef void * pthread_mutex_t; -typedef void * pthread_mutexattr_t; - -typedef void * pthread_once_t; /* Used for dynamic package initialisation. */ -typedef void * pthread_rwlock_t; /* Used for read-write locks. */ -typedef void * pthread_rwlockattr_t; /* Used for read-write lock attributes. */ -typedef unsigned long int pthread_t; /* Used to identify a thread. */ - -typedef unsigned int size_t; /* Used for sizes of objects. */ -typedef signed int ssize_t; /* Used for a count of bytes or an error indication. */ -typedef long long suseconds_t; /* Used for time in microseconds */ -typedef long int time_t; /* Used for time in seconds. */ -typedef void * timer_t; /* Used for timer ID returned by timer_create(). */ -typedef int uid_t; /* Used for user IDs. */ -typedef unsigned long long useconds_t; /* Used for time in microseconds. */ - -/* - additional types for sockets and streams - for compatibility with Microsoft POSIX - */ -typedef unsigned char u_char; -typedef unsigned short int u_short; -typedef unsigned short int ushort; -typedef unsigned int u_int; -typedef unsigned long int u_long; - -typedef unsigned int uint; -typedef unsigned long ulong; -typedef unsigned char unchar; - -typedef char *caddr_t; - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ -/* for compatibility with Microsoft POSIX */ -#define _CRTAPI1 __cdecl -#define _CRTAPI2 __cdecl - -#endif /* __SYS_TYPES_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/uio.h b/posix/include/sys/uio.h deleted file mode 100644 index 672e60b9dba..00000000000 --- a/posix/include/sys/uio.h +++ /dev/null @@ -1,43 +0,0 @@ -/* $Id: uio.h,v 1.4 2002/10/29 04:45:23 rex Exp $ - */ -/* - * sys/uio.h - * - * definitions for vector I/O operations. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_UIO_H_INCLUDED__ -#define __SYS_UIO_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __SYS_UIO_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/un.h b/posix/include/sys/un.h deleted file mode 100644 index 776a619659d..00000000000 --- a/posix/include/sys/un.h +++ /dev/null @@ -1,43 +0,0 @@ -/* $Id: un.h,v 1.4 2002/10/29 04:45:23 rex Exp $ - */ -/* - * sys/un.h - * - * declarations for definitions for UNIX-domain sockets. Conforming to the - * Single UNIX(r) Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_UN_H_INCLUDED__ -#define __SYS_UN_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __SYS_UN_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/utsname.h b/posix/include/sys/utsname.h deleted file mode 100644 index 67413d02720..00000000000 --- a/posix/include/sys/utsname.h +++ /dev/null @@ -1,54 +0,0 @@ -/* $Id: utsname.h,v 1.4 2002/10/29 04:45:23 rex Exp $ - */ -/* - * sys/utsname.h - * - * system name structure. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_UTSNAME_H_INCLUDED__ -#define __SYS_UTSNAME_H_INCLUDED__ - -/* INCLUDES */ - -/* OBJECTS */ - -/* TYPES */ -struct utsname -{ - char sysname[255]; /* name of this implementation of the operating system */ - char nodename[255]; /* name of this node within an implementation-dependent - communications network */ - char release[255]; /* current release level of this implementation */ - char version[255]; /* current version level of this release */ - char machine[255]; /* name of the hardware type on which the system is - running */ -}; - -/* CONSTANTS */ - -/* PROTOTYPES */ -int uname(struct utsname *); - -/* MACROS */ - -#endif /* __SYS_UTSNAME_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/sys/wait.h b/posix/include/sys/wait.h deleted file mode 100644 index 3e1750ccd01..00000000000 --- a/posix/include/sys/wait.h +++ /dev/null @@ -1,71 +0,0 @@ -/* $Id: wait.h,v 1.5 2002/10/29 04:45:23 rex Exp $ - */ -/* - * sys/wait.h - * - * declarations for waiting. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __SYS_WAIT_H_INCLUDED__ -#define __SYS_WAIT_H_INCLUDED__ - -/* INCLUDES */ -#include -#include - -/* OBJECTS */ - -/* TYPES */ -typedef enum __tagidtype_t -{ - P_ALL, - P_PID, - P_PGID -} idtype_t; - -/* CONSTANTS */ -/* Possible values for the options argument to waitid() */ -#define WEXITED (0x00000001) /* Wait for processes that have exited */ -#define WSTOPPED (0x00000002) /* Status will be returned for any child that has stopped upon receipt of a signal */ -#define WNOWAIT (0x00000004) /* Keep the process whose status is returned in infop in a waitable state */ - -#define WCONTINUED (0x00000008) /* Status will be returned for any child that was stopped and has been continued */ -#define WNOHANG (0x00000010) /* Return immediately if there are no children to wait for */ -#define WUNTRACED (0x00000020) /* Report status of stopped child process */ - -/* PROTOTYPES */ -pid_t wait(int *); -pid_t wait3(int *, int, struct rusage *); -int waitid(idtype_t, id_t, siginfo_t *, int); -pid_t waitpid(pid_t, int *, int); - -/* MACROS */ -/* Macros for analysis of process status values */ -#define WEXITSTATUS(__STATUS__) (1) /* Return exit status */ -#define WIFCONTINUED(__STATUS__) (1) /* True if child has been continued */ -#define WIFEXITED(__STATUS__) (1) /* True if child exited normally */ -#define WIFSIGNALED(__STATUS__) (1) /* True if child exited due to uncaught signal */ -#define WIFSTOPPED(__STATUS__) (1) /* True if child is currently stopped */ -#define WSTOPSIG(__STATUS__) (1) /* Return signal number that caused process to stop */ -#define WTERMSIG(__STATUS__) (1) /* Return signal number that caused process to terminate */ - -#endif /* __SYS_WAIT_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/time.h b/posix/include/time.h deleted file mode 100644 index e428378c18f..00000000000 --- a/posix/include/time.h +++ /dev/null @@ -1,114 +0,0 @@ -/* $Id: time.h,v 1.5 2002/10/29 04:45:25 rex Exp $ - */ -/* - * time.h - * - * time types. Conforming to the Single UNIX(r) Specification Version 2, - * System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __TIME_H_INCLUDED__ -#define __TIME_H_INCLUDED__ - -/* INCLUDES */ -#include -#include - -/* OBJECTS */ -/* extern static int getdate_err; */ /* FIXME */ -extern int daylight; -extern long int timezone; -extern char *tzname[]; - -/* TYPES */ -/* pre-declaration of signal.h types to suppress warnings caused by circular - dependencies */ -struct sigevent; - -struct tm -{ - int tm_sec; /* seconds [0,61] */ - int tm_min; /* minutes [0,59] */ - int tm_hour; /* hour [0,23] */ - int tm_mday; /* day of month [1,31] */ - int tm_mon; /* month of year [0,11] */ - int tm_year; /* years since 1900 */ - int tm_wday; /* day of week [0,6] (Sunday = 0) */ - int tm_yday; /* day of year [0,365] */ - int tm_isdst; /* daylight savings flag */ -}; - -struct timespec -{ - time_t tv_sec; /* seconds */ - long tv_nsec; /* nanoseconds */ -}; - -struct itimerspec -{ - struct timespec it_interval; /* timer period */ - struct timespec it_value; /* timer expiration */ -}; - -/* CONSTANTS */ -/* FIXME: all the constants are wrong */ -/* Number of clock ticks per second returned by the times() function (LEGACY). */ -#define CLK_TCK (1) -/* A number used to convert the value returned by the clock() function into - seconds. */ -#define CLOCKS_PER_SEC (1) -/* The identifier of the systemwide realtime clock. */ -#define CLOCK_REALTIME (0) -/* Flag indicating time is absolute with respect to the clock associated with a - timer. */ -#define TIMER_ABSTIME (1) - -/* PROTOTYPES */ -char *asctime(const struct tm *); -char *asctime_r(const struct tm *, char *); -clock_t clock(void); -int clock_getres(clockid_t, struct timespec *); -int clock_gettime(clockid_t, struct timespec *); -int clock_settime(clockid_t, const struct timespec *); -char *ctime(const time_t *); -char *ctime_r(const time_t *, char *); -double difftime(time_t, time_t); -struct tm *getdate(const char *); -struct tm *gmtime(const time_t *); -struct tm *gmtime_r(const time_t *, struct tm *); -struct tm *localtime(const time_t *); -struct tm *localtime_r(const time_t *, struct tm *); -time_t mktime(struct tm *); -int nanosleep(const struct timespec *, struct timespec *); -size_t strftime(char *, size_t, const char *, const struct tm *); -char *strptime(const char *, const char *, struct tm *); -time_t time(time_t *); -int timer_create(clockid_t, struct sigevent *, timer_t *); -int timer_delete(timer_t); -int timer_gettime(timer_t, struct itimerspec *); -int timer_getoverrun(timer_t); -int timer_settime(timer_t, int, const struct itimerspec *, - struct itimerspec *); -void tzset(void); - -/* MACROS */ - -#endif /* __TIME_H_INCLUDED__ */ /* replace with the appropriate tag */ - -/* EOF */ - diff --git a/posix/include/types.h b/posix/include/types.h deleted file mode 100644 index 4379f3b830f..00000000000 --- a/posix/include/types.h +++ /dev/null @@ -1,44 +0,0 @@ -/* $Id: types.h,v 1.3 2002/10/29 04:45:25 rex Exp $ - */ -/* - * types.h - * - * dummy include file for Microsoft POSIX and Interix compatibility - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __TYPES_H_INCLUDED__ -#define __TYPES_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ - -/* CONSTANTS */ - -/* PROTOTYPES */ - -/* MACROS */ - -#endif /* __TYPES_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/ucontext.h b/posix/include/ucontext.h deleted file mode 100644 index 18340f88aaf..00000000000 --- a/posix/include/ucontext.h +++ /dev/null @@ -1,62 +0,0 @@ -/* $Id: ucontext.h,v 1.4 2002/10/29 04:45:25 rex Exp $ - */ -/* - * ucontext.h - * - * user context. Conforming to the Single UNIX(r) Specification Version 2, - * System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __UCONTEXT_H_INCLUDED__ -#define __UCONTEXT_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ -typedef void * mcontext_t; - -typedef struct __tagucontext_t ucontext_t; - -struct __tagucontext_t -{ - ucontext_t *uc_link; /* pointer to the context that will be resumed - when this context returns */ - sigset_t uc_sigmask; /* the set of signals that are blocked when this - context is active */ - stack_t uc_stack; /* the stack used by this context */ - mcontext_t uc_mcontext; /* a machine-specific representation of the saved - context */ -}; - -/* CONSTANTS */ - -/* PROTOTYPES */ -int getcontext(ucontext_t *); -int setcontext(const ucontext_t *); -void makecontext(ucontext_t *, (void *)(), int, ...); -int swapcontext(ucontext_t *, const ucontext_t *); - -/* MACROS */ - -#endif /* __UCONTEXT_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/unistd.h b/posix/include/unistd.h deleted file mode 100644 index 6b8b786ee26..00000000000 --- a/posix/include/unistd.h +++ /dev/null @@ -1,508 +0,0 @@ -/* $Id: unistd.h,v 1.5 2002/10/29 04:45:25 rex Exp $ - */ -/* - * unistd.h - * - * standard symbolic constants and types. Conforming to the Single UNIX(r) - * Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __UNISTD_H_INCLUDED__ -#define __UNISTD_H_INCLUDED__ - -/* INCLUDES */ -#include -#include -#include - -/* OBJECTS */ -extern char *optarg; -extern int optind, opterr, optopt; - -/* TYPES */ - -/* CONSTANTS */ -/* FIXME: set these constants appropriately */ -/* Integer value indicating version of the ISO POSIX-1 standard (C - language binding). */ -#define _POSIX_VERSION (0) - -/* Integer value indicating version of the ISO POSIX-2 standard - (Commands). */ -#define _POSIX2_VERSION (0) - -/* Integer value indicating version of the ISO POSIX-2 standard (C - language binding). */ -#define _POSIX2_C_VERSION (0) - -/* Integer value indicating version of the X/Open Portability Guide to - which the implementation conforms. */ -#define _XOPEN_VERSION (500) - -/* The version of the XCU specification to which the implementation - conforms */ -/* TODO: set to an appropriate value when commands and utilities will - be available */ -#define _XOPEN_XCU_VERSION (-1) - -#if _XOPEN_XCU_VERSION != -1 -#error TODO: define these constants -#define _POSIX2_C_BIND -#define _POSIX2_C_VERSION -#define _POSIX2_CHAR_TERM -#define _POSIX2_LOCALEDEF -#define _POSIX2_UPE -#define _POSIX2_VERSION -#endif - -#if 0 -/* TODO: check for conformance to the following specs */ -#define _XOPEN_XPG2 -#define _XOPEN_XPG3 -#define _XOPEN_XPG4 -#define _XOPEN_UNIX -#endif - -#if 0 -/* TODO: don't forget these features */ -/* The use of chown() is restricted to a process with appropriate - privileges, and to changing the group ID of a file only to the - effective group ID of the process or to one of its supplementary - group IDs. */ -#define _POSIX_CHOWN_RESTRICTED - -/* Terminal special characters defined in can be disabled - using this character value. */ -#define _POSIX_VDISABLE - -/* Each process has a saved set-user-ID and a saved set-group-ID. */ -#define _POSIX_SAVED_IDS - -/* Implementation supports job control. */ -#define _POSIX_JOB_CONTROL - -#endif - -/* Pathname components longer than {NAME_MAX} generate an error. */ -#define _POSIX_NO_TRUNC (1) - -/* The implementation supports the threads option. */ -#define _POSIX_THREADS (1) - -/* FIXME: none of the following is strictly true yet */ -/* The implementation supports the thread stack address attribute - option. */ /* FIXME: not currently implemented. Should be trivial */ -#define _POSIX_THREAD_ATTR_STACKADDR (1) - -/* The implementation supports the thread stack size attribute - option. */ /* FIXME: not currently implemented. Should be trivial */ -#define _POSIX_THREAD_ATTR_STACKSIZE (1) - -/* The implementation supports the process-shared synchronisation - option. */ /* FIXME? not sure */ -#define _POSIX_THREAD_PROCESS_SHARED (1) - -/* The implementation supports the thread-safe functions option. */ -/* FIXME: fix errno (currently not thread-safe) */ -#define _POSIX_THREAD_SAFE_FUNCTIONS (1) - -/* -  Constants for Options and Feature Groups - */ - -/* Implementation supports the C Language Binding option. This will - always have a value other than -1. */ -#define _POSIX2_C_BIND (1) - -/* Implementation supports the C Language Development Utilities - option. */ /* FIXME: please change this when C compiler and - utilities are ported */ -#define _POSIX2_C_DEV (-1) - -/* Implementation supports at least one terminal type. */ /* FIXME: - please change this when terminal emulation is complete */ -#define _POSIX2_CHAR_TERM (-1) - -/* Implementation supports the FORTRAN Development Utilities option. */ -/* FIXME: please change this when Fortran compiler and utilities are - ported */ -#define _POSIX2_FORT_DEV (-1) - -/* Implementation supports the FORTRAN Run-time Utilities option. */ -/* FIXME: please change this when Fortran runtimes are ported */ -#define _POSIX2_FORT_RUN (-1) - -/* Implementation supports the creation of locales by the localedef - utility. */ /* FIXME: please change this when locales are ready */ -#define _POSIX2_LOCALEDEF (-1) - -/* Implementation supports the Software Development Utilities option. */ -/* FIXME? */ -#define _POSIX2_SW_DEV (-1) - -/* The implementation supports the User Portability Utilities option. */ -/* FIXME? */ -#define _POSIX2_UPE (-1) - -/* The implementation supports the X/Open Encryption Feature Group. */ -/* FIXME: please change this when encryption is ready */ -#define _XOPEN_CRYPT (-1) - -/* The implementation supports the Issue 4, Version 2 Enhanced - Internationalisation Feature Group. This is always set to a value - other than -1. */ /* TODO: high priority. Support for this feature is - needed for a conforming implementation */ -#define _XOPEN_ENH_I18N (-1) - -/* The implementation supports the Legacy Feature Group. */ -#define _XOPEN_LEGACY (1) - -/* The implementation supports the X/Open Realtime Feature Group. */ -/* FIXME? unlikely to be ever supported */ -#define _XOPEN_REALTIME (-1) - -/* The implementation supports the X/Open Realtime Threads Feature - Group. */ /* FIXME? really unlikely to be ever supported */ -#define _XOPEN_REALTIME_THREADS (-1) - -/* The implementation supports the Issue 4, Version 2 Shared Memory - Feature Group. This is always set to a value other than -1. */ /* TODO: - high priority. Support for this feature is needed for a conforming - implementation */ -#define _XOPEN_SHM (-1) - -/* Implementation provides a C-language compilation environment with - 32-bit int, long, pointer and off_t types. */ -#define _XBS5_ILP32_OFF32 (1) - -/* Implementation provides a C-language compilation environment with - 32-bit int, long and pointer types and an off_t type using at - least 64 bits. */ /* FIXME? check the off_t type */ -#define _XBS5_ILP32_OFFBIG (1) - -/* Implementation provides a C-language compilation environment with - 32-bit int and 64-bit long, pointer and off_t types. */ /* FIXME: on - some architectures this may be true */ -#define _XBS5_LP64_OFF64 (-1) - -/* Implementation provides a C-language compilation environment with - an int type using at least 32 bits and long, pointer and off_t - types using at least 64 bits. */ /* FIXME: on some architectures - this may be true */ -#define _XBS5_LPBIG_OFFBIG (-1) - -/* Implementation supports the File Synchronisation option. */ -/* TODO: high priority. Implement this */ -#define _POSIX_FSYNC - -/* Implementation supports the Memory Mapped Files option. */ -/* TODO: high priority. Implement this */ -#define _POSIX_MAPPED_FILES - -/* Implementation supports the Memory Protection option. */ -/* TODO: high priority. Implement this */ -#define _POSIX_MEMORY_PROTECTION - -#if 0 -/* Implementation supports the Prioritized Input and Output option. */ -/* FIXME? unlikely to be ever supported */ -#define _POSIX_PRIORITIZED_IO -#endif - -/* FIXME: these should be implemented */ -/* Asynchronous input or output operations may be performed for the - associated file. */ -#define _POSIX_ASYNC_IO (-1) - -/* Prioritized input or output operations may be performed for the - associated file. */ -#define _POSIX_PRIO_IO (-1) - -/* Synchronised input or output operations may be performed for the - associated file. */ -#define _POSIX_SYNC_IO (-1) - -/* - null pointer - */ -#ifndef NULL -/* NULL seems to be defined pretty much everywhere - we prevent - redefinition */ -#define NULL ((void *)(0)) -#endif - -/* - constants for the access() function - */ - -#define R_OK (0x00000004) /* Test for read permission. */ -#define W_OK (0x00000002) /* Test for write permission. */ -#define X_OK (0x00000001) /* Test for execute (search) permission. */ -#define F_OK (0) /* Test for existence of file. */ - -/* - constants for the confstr() function - */ -#define _CS_PATH (1) -#define _CS_XBS5_ILP32_OFF32_CFLAGS (2) -#define _CS_XBS5_ILP32_OFF32_LDFLAGS (3) -#define _CS_XBS5_ILP32_OFF32_LIBS (4) -#define _CS_XBS5_ILP32_OFF32_LINTFLAGS (5) -#define _CS_XBS5_ILP32_OFFBIG_CFLAGS (6) -#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS (7) -#define _CS_XBS5_ILP32_OFFBIG_LIBS (8) -#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS (9) -#define _CS_XBS5_LP64_OFF64_CFLAGS (10) -#define _CS_XBS5_LP64_OFF64_LDFLAGS (11) -#define _CS_XBS5_LP64_OFF64_LIBS (12) -#define _CS_XBS5_LP64_OFF64_LINTFLAGS (13) -#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS (14) -#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS (15) -#define _CS_XBS5_LPBIG_OFFBIG_LIBS (16) -#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS (17) - -/* - constants for the lseek() and fcntl() functions - */ - -#define SEEK_SET (0) /* Set file offset to offset. */ -#define SEEK_CUR (1) /* Set file offset to current plus offset. */ -#define SEEK_END (2) /* Set file offset to EOF plus offset. */ - -/* - constants for pathconf() - */ -/* constants 1 to 9 are the same as in Microsoft POSIX */ -#define _PC_LINK_MAX ( 1) -#define _PC_MAX_CANON ( 2) -#define _PC_MAX_INPUT ( 3) -#define _PC_NAME_MAX ( 4) -#define _PC_PATH_MAX ( 5) -#define _PC_PIPE_BUF ( 6) -#define _PC_CHOWN_RESTRICTED ( 7) -#define _PC_NO_TRUNC ( 8) -#define _PC_VDISABLE ( 9) -/* from this point, constants are in no particular order */ -#define _PC_ALLOC_SIZE_MIN ( 10) -#define _PC_ASYNC_IO ( 11) -#define _PC_FILESIZEBITS ( 12) -#define _PC_PRIO_IO ( 13) -#define _PC_REC_INCR_XFER_SIZE ( 14) -#define _PC_REC_MAX_XFER_SIZE ( 15) -#define _PC_REC_MIN_XFER_SIZE ( 16) -#define _PC_REC_XFER_ALIGN ( 17) -#define _PC_SYNC_IO ( 18) - -/* - constants for sysconf() - */ -/* constants 1 to 10 are the same as in Microsoft POSIX */ -#define _SC_ARG_MAX ( 1) -#define _SC_CHILD_MAX ( 2) -#define _SC_CLK_TCK ( 3) -#define _SC_NGROUPS_MAX ( 4) -#define _SC_OPEN_MAX ( 5) -#define _SC_JOB_CONTROL ( 6) -#define _SC_SAVED_IDS ( 7) -#define _SC_STREAM_MAX ( 8) -#define _SC_TZNAME_MAX ( 9) -#define _SC_VERSION ( 10) -/* from this point, constants are in no particular order */ -#define _SC_2_C_BIND ( 11) -#define _SC_2_C_DEV ( 12) -#define _SC_2_C_VERSION ( 13) -#define _SC_2_FORT_DEV ( 14) -#define _SC_2_FORT_RUN ( 15) -#define _SC_2_LOCALEDEF ( 16) -#define _SC_2_SW_DEV ( 17) -#define _SC_2_UPE ( 18) -#define _SC_2_VERSION ( 19) -#define _SC_AIO_LISTIO_MAX ( 20) -#define _SC_AIO_MAX ( 21) -#define _SC_AIO_PRIO_DELTA_MAX ( 22) -#define _SC_ASYNCHRONOUS_IO ( 23) -#define _SC_ATEXIT_MAX ( 24) -#define _SC_BC_BASE_MAX ( 25) -#define _SC_BC_DIM_MAX ( 26) -#define _SC_BC_SCALE_MAX ( 27) -#define _SC_BC_STRING_MAX ( 28) -#define _SC_COLL_WEIGHTS_MAX ( 29) -#define _SC_DELAYTIMER_MAX ( 30) -#define _SC_EXPR_NEST_MAX ( 31) -#define _SC_FSYNC ( 32) -#define _SC_GETGR_R_SIZE_MAX ( 33) -#define _SC_GETPW_R_SIZE_MAX ( 34) -#define _SC_IOV_MAX ( 35) -#define _SC_LINE_MAX ( 36) -#define _SC_LOGIN_NAME_MAX ( 37) -#define _SC_MAPPED_FILES ( 38) -#define _SC_MEMLOCK ( 39) -#define _SC_MEMLOCK_RANGE ( 40) -#define _SC_MEMORY_PROTECTION ( 41) -#define _SC_MESSAGE_PASSING ( 42) -#define _SC_MQ_OPEN_MAX ( 43) -#define _SC_MQ_PRIO_MAX ( 44) -#define _SC_PAGE_SIZE ( 45) -#define _SC_PASS_MAX ( 46) /* LEGACY */ -#define _SC_PRIORITIZED_IO ( 47) -#define _SC_PRIORITY_SCHEDULING ( 48) -#define _SC_RE_DUP_MAX ( 49) -#define _SC_REALTIME_SIGNALS ( 50) -#define _SC_RTSIG_MAX ( 51) -#define _SC_SEMAPHORES ( 52) -#define _SC_SEM_NSEMS_MAX ( 53) -#define _SC_SEM_VALUE_MAX ( 54) -#define _SC_SHARED_MEMORY_OBJECTS ( 55) -#define _SC_SIGQUEUE_MAX ( 56) -#define _SC_SYNCHRONIZED_IO ( 57) -#define _SC_THREADS ( 58) -#define _SC_THREAD_ATTR_STACKADDR ( 59) -#define _SC_THREAD_ATTR_STACKSIZE ( 60) -#define _SC_THREAD_DESTRUCTOR_ITERATIONS ( 61) -#define _SC_THREAD_KEYS_MAX ( 62) -#define _SC_THREAD_PRIORITY_SCHEDULING ( 63) -#define _SC_THREAD_PRIO_INHERIT ( 64) -#define _SC_THREAD_PRIO_PROTECT ( 65) -#define _SC_THREAD_PROCESS_SHARED ( 66) -#define _SC_THREAD_SAFE_FUNCTIONS ( 67) -#define _SC_THREAD_STACK_MIN ( 68) -#define _SC_THREAD_THREADS_MAX ( 69) -#define _SC_TIMERS ( 70) -#define _SC_TIMER_MAX ( 71) -#define _SC_TTY_NAME_MAX ( 72) -#define _SC_XOPEN_VERSION ( 73) -#define _SC_XOPEN_CRYPT ( 74) -#define _SC_XOPEN_ENH_I18N ( 75) -#define _SC_XOPEN_SHM ( 76) -#define _SC_XOPEN_UNIX ( 77) -#define _SC_XOPEN_XCU_VERSION ( 78) -#define _SC_XOPEN_LEGACY ( 79) -#define _SC_XOPEN_REALTIME ( 80) -#define _SC_XOPEN_REALTIME_THREADS ( 81) -#define _SC_XBS5_ILP32_OFF32 ( 82) -#define _SC_XBS5_ILP32_OFFBIG ( 83) -#define _SC_XBS5_LP64_OFF64 ( 84) -#define _SC_XBS5_LPBIG_OFFBIG ( 85) - - -#define _SC_PAGESIZE _SC_PAGE_SIZE - -/* possible values for the function argument to the lockf() function */ -#define F_LOCK (1) /* Lock a section for exclusive use. */ -#define F_ULOCK (2) /* Unlock locked sections. */ -#define F_TEST (3) /* Test section for locks by other processes. */ -#define F_TLOCK (4) /* Test and lock a section for exclusive use. */ - -#define STDIN_FILENO (0) /* File number of stdin. */ -#define STDOUT_FILENO (1) /* File number of stdout. */ -#define STDERR_FILENO (2) /* File number of stderr. */ - -/* PROTOTYPES */ -int access(const char *, int); -unsigned int alarm(unsigned int); -int brk(void *); -int chdir(const char *); -int chroot(const char *); /* LEGACY */ -int chown(const char *, uid_t, gid_t); -int close(int); -size_t confstr(int, char *, size_t); -char *crypt(const char *, const char *); -char *ctermid(char *); -char *cuserid(char *s); /* LEGACY */ -int dup(int); -int dup2(int, int); -void encrypt(char[64], int); -int execl(const char *, const char *, ...); -int execle(const char *, const char *, ...); -int execlp(const char *, const char *, ...); -int execv(const char *, char *const []); -int execve(const char *, char *const [], char *const []); -int execvp(const char *, char *const []); -void _exit(int); -int fchown(int, uid_t, gid_t); -int fchdir(int); -int fdatasync(int); -pid_t fork(void); -long int fpathconf(int, int); -int fsync(int); -int ftruncate(int, off_t); -char *getcwd(char *, size_t); -int getdtablesize(void); /* LEGACY */ -gid_t getegid(void); -uid_t geteuid(void); -gid_t getgid(void); -int getgroups(int, gid_t []); -long gethostid(void); -char *getlogin(void); -int getlogin_r(char *, size_t); -int getopt(int, char * const [], const char *); -int getpagesize(void); /* LEGACY */ -char *getpass(const char *); /* LEGACY */ -pid_t getpgid(pid_t); -pid_t getpgrp(void); -pid_t getpid(void); -pid_t getppid(void); -pid_t getsid(pid_t); -uid_t getuid(void); -char *getwd(char *); -int isatty(int); -int lchown(const char *, uid_t, gid_t); -int link(const char *, const char *); -int lockf(int, int, off_t); -off_t lseek(int, off_t, int); -int nice(int); -long int pathconf(const char *, int); -int pause(void); -int pipe(int [2]); -ssize_t pread(int, void *, size_t, off_t); -int pthread_atfork(void (*)(void), void (*)(void), - void(*)(void)); -ssize_t pwrite(int, const void *, size_t, off_t); -ssize_t read(int, void *, size_t); -int readlink(const char *, char *, size_t); -int rmdir(const char *); -void *sbrk(intptr_t); -int setgid(gid_t); -int setpgid(pid_t, pid_t); -pid_t setpgrp(void); -int setregid(gid_t, gid_t); -int setreuid(uid_t, uid_t); -pid_t setsid(void); -int setuid(uid_t); -unsigned int sleep(unsigned int); -void swab(const void *, void *, ssize_t); -int symlink(const char *, const char *); -void sync(void); -long int sysconf(int); -pid_t tcgetpgrp(int); -int tcsetpgrp(int, pid_t); -int truncate(const char *, off_t); -char *ttyname(int); -int ttyname_r(int, char *, size_t); -useconds_t ualarm(useconds_t, useconds_t); -int unlink(const char *); -int usleep(useconds_t); -pid_t vfork(void); -ssize_t write(int, const void *, size_t); - -/* MACROS */ - -#endif /* __UNISTD_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/utime.h b/posix/include/utime.h deleted file mode 100644 index c78ab039631..00000000000 --- a/posix/include/utime.h +++ /dev/null @@ -1,50 +0,0 @@ -/* $Id: utime.h,v 1.4 2002/10/29 04:45:26 rex Exp $ - */ -/* - * utime.h - * - * access and modification times structure. Conforming to the Single - * UNIX(r) Specification Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __UTIME_H_INCLUDED__ -#define __UTIME_H_INCLUDED__ - -/* INCLUDES */ -#include - -/* OBJECTS */ - -/* TYPES */ -struct utimbuf -{ - time_t actime; /* access time */ - time_t modtime; /* modification time */ -}; - -/* CONSTANTS */ - -/* PROTOTYPES */ -int utime(const char *, const struct utimbuf *); - -/* MACROS */ - -#endif /* __UTIME_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/include/wchar.h b/posix/include/wchar.h deleted file mode 100644 index 42269ada306..00000000000 --- a/posix/include/wchar.h +++ /dev/null @@ -1,139 +0,0 @@ -/* $Id: wchar.h,v 1.4 2002/10/29 04:45:26 rex Exp $ - */ -/* - * wchar.h - * - * wide-character types. Conforming to the Single UNIX(r) Specification - * Version 2, System Interface & Headers Issue 5 - * - * This file is part of the ReactOS Operating System. - * - * Contributors: - * Created by KJK::Hyperion - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ -#ifndef __WCHAR_H_INCLUDED__ -#define __WCHAR_H_INCLUDED__ - -/* INCLUDES */ -#include -#include -#include -#include -#include -#include - -/* OBJECTS */ - -/* TYPES */ -typedef wchar_t wint_t; /* An integral type capable of storing any valid - value of wchar_t, or WEOF */ -typedef long int wctype_t; /* A scalar type of a data object that can hold - values which represent locale-specific - character classification. */ -typedef void * mbstate_t; /* An object type other than an array type that - can hold the conversion state information - necessary to convert between sequences of - (possibly multibyte) characters and - wide-characters */ - -/* CONSTANTS */ - -/* PROTOTYPES */ -wint_t btowc(int); -int fwprintf(FILE *, const wchar_t *, ...); -int fwscanf(FILE *, const wchar_t *, ...); -int iswalnum(wint_t); -int iswalpha(wint_t); -int iswcntrl(wint_t); -int iswdigit(wint_t); -int iswgraph(wint_t); -int iswlower(wint_t); -int iswprint(wint_t); -int iswpunct(wint_t); -int iswspace(wint_t); -int iswupper(wint_t); -int iswxdigit(wint_t); -int iswctype(wint_t, wctype_t); -wint_t fgetwc(FILE *); -wchar_t *fgetws(wchar_t *, int, FILE *); -wint_t fputwc(wchar_t, FILE *); -int fputws(const wchar_t *, FILE *); -int fwide(FILE *, int); -wint_t getwc(FILE *); -wint_t getwchar(void); -int mbsinit(const mbstate_t *); -size_t mbrlen(const char *, size_t, mbstate_t *); -size_t mbrtowc(wchar_t *, const char *, size_t, - mbstate_t *); -size_t mbsrtowcs(wchar_t *, const char **, size_t, - mbstate_t *); -wint_t putwc(wchar_t, FILE *); -wint_t putwchar(wchar_t); -int swprintf(wchar_t *, size_t, const wchar_t *, ...); -int swscanf(const wchar_t *, const wchar_t *, ...); -wint_t towlower(wint_t); -wint_t towupper(wint_t); -wint_t ungetwc(wint_t, FILE *); -int vfwprintf(FILE *, const wchar_t *, va_list); -int vwprintf(const wchar_t *, va_list); -int vswprintf(wchar_t *, size_t, const wchar_t *, - va_list); -size_t wcrtomb(char *, wchar_t, mbstate_t *); -wchar_t *wcscat(wchar_t *, const wchar_t *); -wchar_t *wcschr(const wchar_t *, wchar_t); -int wcscmp(const wchar_t *, const wchar_t *); -int wcscoll(const wchar_t *, const wchar_t *); -wchar_t *wcscpy(wchar_t *, const wchar_t *); -size_t wcscspn(const wchar_t *, const wchar_t *); -size_t wcsftime(wchar_t *, size_t, const wchar_t *, - const struct tm *); -size_t wcslen(const wchar_t *); -wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t); -int wcsncmp(const wchar_t *, const wchar_t *, size_t); -wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t); -wchar_t *wcspbrk(const wchar_t *, const wchar_t *); -wchar_t *wcsrchr(const wchar_t *, wchar_t); -size_t wcsrtombs(char *, const wchar_t **, size_t, - mbstate_t *); -size_t wcsspn(const wchar_t *, const wchar_t *); -wchar_t *wcsstr(const wchar_t *, const wchar_t *); -double wcstod(const wchar_t *, wchar_t **); -wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **); -long int wcstol(const wchar_t *, wchar_t **, int); -unsigned long int wcstoul(const wchar_t *, wchar_t **, int); -wchar_t *wcswcs(const wchar_t *, const wchar_t *); -int wcswidth(const wchar_t *, size_t); -size_t wcsxfrm(wchar_t *, const wchar_t *, size_t); -int wctob(wint_t); -wctype_t wctype(const char *); -int wcwidth(wchar_t); -wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); -int wmemcmp(const wchar_t *, const wchar_t *, size_t); -wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t); -wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); -wchar_t *wmemset(wchar_t *, wchar_t, size_t); -int wprintf(const wchar_t *, ...); -int wscanf(const wchar_t *, ...); - -/* MACROS */ -#define WCHAR_MAX (0xFFFF) -#define WCHAR_MIN (0x0000) - -/* FIXME? */ -#define WEOF (0xFFFF) - -#endif /* __WCHAR_H_INCLUDED__ */ - -/* EOF */ - diff --git a/posix/install.bat b/posix/install.bat deleted file mode 100644 index 4380b9a2f24..00000000000 --- a/posix/install.bat +++ /dev/null @@ -1,22 +0,0 @@ -@echo off -if "%1" == "" goto NoParameter -set ROS_INSTALL=%1 -goto Install -:NoParameter -set ROS_INSTALL=c:\reactos -:Install -echo Installing to %ROS_INSTALL% -@echo off - -md %ROS_INSTALL% -md %ROS_INSTALL%\bin -md %ROS_INSTALL%\symbols -md %ROS_INSTALL%\system32 - -copy ..\posix\apps\baresh\baresh.exe %ROS_INSTALL%\bin -copy ..\posix\apps\posixw32\posixw32.exe %ROS_INSTALL%\bin -copy ..\posix\server\psxss.exe %ROS_INSTALL%\system32 -copy ..\posix\lib\psxdll\psxdll.dll %ROS_INSTALL%\system32 -copy ..\posix\lib\psxdll\psxdll.map %ROS_INSTALL%\symbols -copy ..\posix\lib\psxx\psxx.dll %ROS_INSTALL%\system32 -copy ..\posix\lib\psxx\psxx.map %ROS_INSTALL%\symbols diff --git a/posix/lib/.cvsignore b/posix/lib/.cvsignore deleted file mode 100644 index 7e878167e8e..00000000000 --- a/posix/lib/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -*.o -*.d -*.exe -*.coff -*.sym diff --git a/posix/lib/crt0w32.c b/posix/lib/crt0w32.c deleted file mode 100644 index ffd3eb732be..00000000000 --- a/posix/lib/crt0w32.c +++ /dev/null @@ -1,46 +0,0 @@ -/* $Id: crt0w32.c,v 1.4 2002/10/29 04:45:26 rex Exp $ - * - * PROJECT : ReactOS / POSIX+ personality - * FILE : subsys/psx/lib/crt0w32.c - * DESCRIPTION: startup code for POSIX+ applications. - * DATE : 2002-01-18 - * AUTHOR : Emanuele Aliberti - */ - -extern void __stdcall __PdxInitializeData(int*,char***); -extern int main (int,char**,char**); -extern void exit(int); - -/* ANSI ENVIRONMENT */ - -char **_environ = (char**) 0; - -int errno = 0; - -#ifdef __SUBSYSTEM_WINDOWS__ -void WinMainCRTStartup (void) -#else -void mainCRTStartup (void) -#endif -{ - char * argv[2] = {"none", 0}; - - /* TODO: parse the command line */ - exit(main(1,argv,0)); -} - -void __main () -{ - /* - * Store in PSXDLL.DLL two well known global symbols - * references. - */ - __PdxInitializeData (& errno, & _environ); /* PSXDLL.__PdxInitializeData */ - /* CRT initialization. */ -#ifdef __SUBSYSTEM_WINDOWS__ - WinMainCRTStartup (); -#else - mainCRTStartup (); -#endif -} -/* EOF */ diff --git a/posix/lib/psxdll/.cvsignore b/posix/lib/psxdll/.cvsignore deleted file mode 100644 index 541cdb996ea..00000000000 --- a/posix/lib/psxdll/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -*.o -*.d -*.a -*.exe -*.dll -*.coff -*.sym diff --git a/posix/lib/psxdll/Makefile b/posix/lib/psxdll/Makefile deleted file mode 100644 index 0dab020b7eb..00000000000 --- a/posix/lib/psxdll/Makefile +++ /dev/null @@ -1,172 +0,0 @@ -# $Id: Makefile,v 1.14 2003/01/05 18:27:19 robd Exp $ - -PATH_TO_TOP = ../../../reactos - -PATH_TO_PSX_TOP = ../.. - -TARGET_TYPE = dynlink - -TARGET_NAME = psxdll - -TARGET_LIBPATH = $(PATH_TO_TOP)/dk/psx/lib - -TARGET_SDKLIBS = ntdll.a - -TARGET_BASE = 0x68EB0000 - -TARGET_ENTRY = _DllMain@12 - -TARGET_CFLAGS =\ - -Wall \ - -nostdinc \ - -nostdlib \ - -fno-builtin \ - -I$(PATH_TO_PSX_TOP)/include \ - -I$(PATH_TO_TOP)/include \ - -D__PSXDLL__ \ - -D__PSX_DEBUG_WANT_ALL__ - -TARGET_LFLAGS = -nostartfiles - -OBJECTS_MISC = \ - misc/main.o \ - misc/init.o \ - misc/heap.o \ - misc/interlock.o \ - misc/safeobj.o \ - misc/spawn.o \ - misc/path.o \ - misc/pdata.o \ - misc/fdtable.o \ - misc/tls.o - -OBJECTS_DIRENT = \ - dirent/opendir.o \ - dirent/readdir.o \ - dirent/closedir.o - -OBJECTS_DLFCN = \ - dlfcn/dlopen.o \ - dlfcn/dlclose.o \ - dlfcn/dlsym.o \ - dlfcn/dlerror.o - -OBJECTS_ERRNO = \ - errno/errno.o - -OBJECTS_FCNTL = \ - fcntl/open.o \ - fcntl/fcntl.o - -OBJECTS_LIBGEN = \ - libgen/basename.o - -OBJECTS_SCHED = \ - sched/yield.o - -OBJECTS_SIGNAL = \ - pthread/kill.o \ - signal/raise.o - -OBJECTS_STDLIB = \ - stdlib/abort.o \ - stdlib/malloc.o \ - stdlib/exit.o - -OBJECTS_STRING = \ - string/strdup.o \ - string/strerror.o - -OBJECTS_PTHREAD = \ - pthread/create.o \ - pthread/exit.o \ - pthread/join.o \ - pthread/mutex.o \ - pthread/self.o - -OBJECTS_SYS_STAT = \ - sys/stat/chmod.o \ - sys/stat/mkdir.o \ - sys/stat/mkfifo.o \ - sys/stat/mknod.o \ - sys/stat/stat.o \ - sys/stat/umask.o - -OBJECTS_SYS_UTSNAME = \ - sys/utsname/uname.o - -OBJECTS_UNISTD = \ - unistd/access.o \ - unistd/close.o \ - unistd/dup.o \ - unistd/fork.o \ - unistd/getcwd.o \ - unistd/getpid.o \ - unistd/getppid.o \ - unistd/read.o \ - unistd/sleep.o \ - unistd/write.o - -OBJECTS = \ - $(OBJECTS_MISC) \ - $(OBJECTS_DIRENT) \ - $(OBJECTS_DLFCN) \ - $(OBJECTS_ERRNO) \ - $(OBJECTS_FCNTL) \ - $(OBJECTS_LIBGEN) \ - $(OBJECTS_SCHED) \ - $(OBJECTS_SIGNAL) \ - $(OBJECTS_STDLIB) \ - $(OBJECTS_STRING) \ - $(OBJECTS_PTHREAD) \ - $(OBJECTS_SYS_STAT) \ - $(OBJECTS_SYS_UTSNAME) \ - $(OBJECTS_UNISTD) - -#TARGET_OBJECTS = $(TARGET_NAME).o - -TARGET_OBJECTS = \ - $(OBJECTS_MISC) \ - $(OBJECTS_DIRENT) \ - $(OBJECTS_DLFCN) \ - $(OBJECTS_ERRNO) \ - $(OBJECTS_FCNTL) \ - $(OBJECTS_LIBGEN) \ - $(OBJECTS_SCHED) \ - $(OBJECTS_SIGNAL) \ - $(OBJECTS_STDLIB) \ - $(OBJECTS_STRING) \ - $(OBJECTS_PTHREAD) \ - $(OBJECTS_SYS_STAT) \ - $(OBJECTS_SYS_UTSNAME) \ - $(OBJECTS_UNISTD) - -#TARGET_CLEAN = $(OBJECTS) csrapi.a - -include $(PATH_TO_TOP)/rules.mak - -include $(TOOLS_PATH)/helper.mk - - -#DEP_OBJECTS = $(OBJECTS) - -#include $(TOOLS_PATH)/depend.mk - -#DTFLAGS = -k -l $@ - -#$(TARGET_NAME).a: $(TARGET_NAME).def -# $(DLLTOOL) \ -# $(DTFLAGS) \ -# -D $(TARGET_NAME).dll \ -# -d $(TARGET_NAME).def - -#csrapi.a: csrapi.def -# $(DLLTOOL) \ -# $(DTFLAGS) \ -# -D ntdll.dll \ -# -d csrapi.def - -#$(TARGET_NAME).o: csrapi.a $(OBJECTS) -# $(LD) -r $(OBJECTS) -o $(TARGET_NAME).o - -# EOF diff --git a/posix/lib/psxdll/csrapi.def b/posix/lib/psxdll/csrapi.def deleted file mode 100644 index 18c3a9783c0..00000000000 --- a/posix/lib/psxdll/csrapi.def +++ /dev/null @@ -1,6 +0,0 @@ -; $Id: csrapi.def,v 1.3 2002/10/29 04:45:26 rex Exp $ - -LIBRARY NTDLL.DLL -EXPORTS - -CsrClientCallServer@16 \ No newline at end of file diff --git a/posix/lib/psxdll/dirent/.cvsignore b/posix/lib/psxdll/dirent/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/dirent/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/dirent/closedir.c b/posix/lib/psxdll/dirent/closedir.c deleted file mode 100644 index 677c06638e2..00000000000 --- a/posix/lib/psxdll/dirent/closedir.c +++ /dev/null @@ -1,36 +0,0 @@ -/* $Id: closedir.c,v 1.4 2002/10/29 04:45:28 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/dirent/closedir.c - * PURPOSE: Close a directory stream - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 01/02/2002: Created - * 13/02/2002: KJK::Hyperion: modified to use file descriptors - */ - -#include -#include -#include -#include -#include -#include - -int closedir(DIR *dirp) -{ - /* check the "magic" signature */ - if(!__safeobj_validate(dirp, __IDIR_MAGIC)) - { - errno = EBADF; - return (-1); - } - - /* this will close the handle, deallocate the internal object and - invalidate the descriptor */ - return (close(((struct __internal_DIR *)dirp)->fildes)); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/dirent/opendir.c b/posix/lib/psxdll/dirent/opendir.c deleted file mode 100644 index 43efd4d23d8..00000000000 --- a/posix/lib/psxdll/dirent/opendir.c +++ /dev/null @@ -1,100 +0,0 @@ -/* $Id: opendir.c,v 1.4 2002/10/29 04:45:28 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/dirent/opendir.c - * PURPOSE: Open a directory - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 27/01/2002: Created - * 13/02/2002: KJK::Hyperion: modified to use file descriptors - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -DIR *opendir(const char *dirname) -{ - ANSI_STRING strDirName; - UNICODE_STRING wstrDirName; - DIR *pdData; - - RtlInitAnsiString(&strDirName, (PCSZ)dirname); - RtlAnsiStringToUnicodeString(&wstrDirName, &strDirName, TRUE); - - pdData = (DIR *)_Wopendir(wstrDirName.Buffer); - - RtlFreeUnicodeString(&wstrDirName); - - return (pdData); - -} - -DIR *_Wopendir(const wchar_t *dirname) -{ - struct __internal_DIR *pidData; - int nFileNo; - - /* allocate internal object */ - pidData = __malloc(sizeof(*pidData)); - - /* allocation failed */ - if(pidData == 0) - { - errno = ENOMEM; - return (0); - } - - /* open the directory */ - nFileNo = _Wopen(dirname, O_RDONLY | _O_DIRFILE); - - /* failure */ - if(nFileNo < 0) - { - __free(pidData); - return (0); - } - - /* directory file descriptors must be closed on exec() */ - if(fcntl(nFileNo, F_SETFD, FD_CLOEXEC) == -1) - WARN - ( - "couldn't set FD_CLOEXEC flag on file number %u, errno %u", - nFileNo, - errno - ); - - /* associate the internal data to the file descriptor */ - if(fcntl(nFileNo, F_SETXP, pidData) == -1) - WARN - ( - "couldn't associate the object at 0x%X to the file number %u, errno %u", - pidData, - nFileNo, - errno - ); - - if(fcntl(nFileNo, F_SETXS, sizeof(*pidData)) == -1) - WARN - ( - "couldn't set the extra data size of the file number %u, errno %u", - nFileNo, - errno - ); - - pidData->signature = __IDIR_MAGIC; - - /* success */ - return ((DIR *)pidData); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/dirent/readdir.c b/posix/lib/psxdll/dirent/readdir.c deleted file mode 100644 index 0e120050e69..00000000000 --- a/posix/lib/psxdll/dirent/readdir.c +++ /dev/null @@ -1,209 +0,0 @@ -/* $Id: readdir.c,v 1.7 2002/10/29 04:45:28 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/dirent/readdir.c - * PURPOSE: Read directory - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 27/01/2002: Created - * 13/02/2002: KJK::Hyperion: modified to use file descriptors - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -struct dirent *readdir(DIR *dirp) -{ - struct _Wdirent *lpwdReturn; - struct __internal_DIR *pidData; - ANSI_STRING strFileName; - UNICODE_STRING wstrFileName; - NTSTATUS nErrCode; - - /* call Unicode function */ - lpwdReturn = _Wreaddir(dirp); - - /* failure */ - if(lpwdReturn == 0) - return (0); - - /* get the internal data object */ - pidData = ((struct __internal_DIR *)dirp); - - /* create NT Unicode string from the Unicode dirent's buffer */ - RtlInitUnicodeString(&wstrFileName, pidData->ent.de_unicode.d_name); - - /* HACK: make the ANSI string point to the same buffer where the Unicode string is stored */ - strFileName.Buffer = (PCSZ)&pidData->info.FileName[0]; - strFileName.Length = 0; - strFileName.MaximumLength = MAX_PATH; - - /* convert the filename to ANSI */ - nErrCode = RtlUnicodeStringToAnsiString(&strFileName, &wstrFileName, FALSE); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - errno = __status_to_errno(nErrCode); - return (0); - } - - /* make the ANSI dirent filename point to the ANSI buffer */ - pidData->ent.de_ansi.d_name = strFileName.Buffer; - - /* null-terminate the ANSI name */ - pidData->ent.de_ansi.d_name[strFileName.Length] = 0; - - /* success */ - return (&(pidData->ent.de_ansi)); -} - -int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result) -{ - errno = ENOSYS; - return (0); -} - -struct _Wdirent *_Wreaddir(DIR *dirp) -{ - HANDLE hFile; - HANDLE hDir; - OBJECT_ATTRIBUTES oaFileAttribs; - UNICODE_STRING wstrFileName; - FILE_INTERNAL_INFORMATION fiiInfo; - IO_STATUS_BLOCK isbStatus; - NTSTATUS nErrCode; - struct __internal_DIR *pidData; - - /* check the "magic" signature */ - if(!__safeobj_validate(dirp, __IDIR_MAGIC)) - { - errno = EINVAL; - return (0); - } - - /* get internal data */ - pidData = (struct __internal_DIR *)dirp; - - /* get handle */ - hDir = (HANDLE)fcntl(pidData->fildes, F_GETFH); - - /* failure */ - if(((int)hDir) == -1) - return (0); - - /* read next directory entry */ - nErrCode = NtQueryDirectoryFile - ( - hDir, - NULL, - NULL, - NULL, - &isbStatus, - (PVOID)&pidData->info, - sizeof(pidData->info) + sizeof(WCHAR) * (MAX_PATH - 1), - FileDirectoryInformation, - TRUE, - NULL, - FALSE - ); - - /* failure or EOF */ - if(!NT_SUCCESS(nErrCode)) - { - if(nErrCode == (NTSTATUS)STATUS_NO_MORE_FILES) - return (0); - else - { - ERR("NtQueryDirectoryFile() failed with status 0x%08X", nErrCode); - errno = __status_to_errno(nErrCode); - return (0); - } - } - - /* null-terminate the filename, just in case */ - pidData->info.FileName[pidData->info.FileNameLength / sizeof(WCHAR)] = 0; - - INFO("this entry: %ls", pidData->info.FileName); - - /* file inodes are not returned by NtQueryDirectoryFile, we have to open every file */ - /* set file's object attributes */ - wstrFileName.Length = pidData->info.FileNameLength; - wstrFileName.MaximumLength = sizeof(WCHAR) * MAX_PATH; - wstrFileName.Buffer = &pidData->info.FileName[0]; - - oaFileAttribs.Length = sizeof(OBJECT_ATTRIBUTES); - oaFileAttribs.RootDirectory = hDir; - oaFileAttribs.ObjectName = &wstrFileName; - oaFileAttribs.Attributes = 0; - oaFileAttribs.SecurityDescriptor = NULL; - oaFileAttribs.SecurityQualityOfService = NULL; - - /* open the file */ - nErrCode = NtOpenFile - ( - &hFile, - FILE_READ_ATTRIBUTES | SYNCHRONIZE, - &oaFileAttribs, - &isbStatus, - 0, - FILE_SYNCHRONOUS_IO_NONALERT - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtOpenFile() failed with status %#X", nErrCode); - errno = __status_to_errno(nErrCode); - return (0); - } - - /* get the internal information for the file */ - nErrCode = NtQueryInformationFile - ( - hFile, - &isbStatus, - &fiiInfo, - sizeof(FILE_INTERNAL_INFORMATION), - FileInternalInformation - ); - - /* close the handle (not needed anymore) */ - NtClose(hFile); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtQueryInformationFile() failed with status %#X", nErrCode); - errno = __status_to_errno(nErrCode); - return (0); - } - - /* return file inode */ - pidData->ent.de_unicode.d_ino = (ino_t)fiiInfo.IndexNumber.QuadPart; - - /* return file name */ - pidData->ent.de_unicode.d_name = &pidData->info.FileName[0]; - - /* success */ - return &(pidData->ent.de_unicode); -} - -int _Wreaddir_r(DIR *dirp, struct _Wdirent *entry, struct _Wdirent **result) -{ - errno = ENOSYS; - return (0); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/dlfcn/.cvsignore b/posix/lib/psxdll/dlfcn/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/dlfcn/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/dlfcn/dlclose.c b/posix/lib/psxdll/dlfcn/dlclose.c deleted file mode 100644 index 6fdad8ba35f..00000000000 --- a/posix/lib/psxdll/dlfcn/dlclose.c +++ /dev/null @@ -1,60 +0,0 @@ -/* $Id: dlclose.c,v 1.4 2002/10/29 04:45:28 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/dlfcn/dlclose.c - * PURPOSE: Close a dlopen() object - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 19/12/2001: Created - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -int dlclose(void *handle) -{ - if(handle == 0) - { - ERR("invalid handle passed to dlclose"); - - __dl_set_last_error(EFAULT); /* FIXME? maybe EINVAL? */ - return (-1); - } - - if(((struct __dlobj *)handle)->global) - { - TODO("global symbol matching not implemented"); - - __dl_set_last_error(EINVAL); - return (-1); - } - else - { - NTSTATUS nErrCode = LdrUnloadDll(((struct __dlobj *)handle)->handle); - - if(!NT_SUCCESS(nErrCode)) - { - ERR("LdrUnloadDll(%#x) failed with status %d", ((struct __dlobj *)handle)->handle, nErrCode); - - free(handle); - __dl_set_last_error(__status_to_errno(nErrCode)); - return (-1); - } - } - - free(handle); - - return (0); - -} - -/* EOF */ - diff --git a/posix/lib/psxdll/dlfcn/dlerror.c b/posix/lib/psxdll/dlfcn/dlerror.c deleted file mode 100644 index 221aaaea79e..00000000000 --- a/posix/lib/psxdll/dlfcn/dlerror.c +++ /dev/null @@ -1,36 +0,0 @@ -/* $Id: dlerror.c,v 1.4 2002/10/29 04:45:28 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/dlfcn/dlerror.c - * PURPOSE: Gain access to an executable object file - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 19/12/2001: Created - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -static int __dl_last_error = 0; - -void __dl_set_last_error(int err) -{ - FIXME("dlfcn error handling not thread safe"); - __dl_last_error = err; -} - -char *dlerror(void) -{ - return strerror(__dl_last_error); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/dlfcn/dlopen.c b/posix/lib/psxdll/dlfcn/dlopen.c deleted file mode 100644 index f127a7d7c27..00000000000 --- a/posix/lib/psxdll/dlfcn/dlopen.c +++ /dev/null @@ -1,129 +0,0 @@ -/* $Id: dlopen.c,v 1.4 2002/10/29 04:45:28 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/dlfcn/dlopen.c - * PURPOSE: Gain access to an executable object file - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 19/12/2001: Created - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -void *__wdlopen(const wchar_t *, int); - -void *dlopen(const char *file, int mode) -{ - /* TODO: ANSI-to-Unicode stubs like this need to be standardized in some way */ - void * pRetVal; - ANSI_STRING strFile; - UNICODE_STRING wstrFile; - - RtlInitAnsiString(&strFile, (LPSTR)file); - RtlAnsiStringToUnicodeString (&wstrFile, &strFile, TRUE); - - pRetVal = __wdlopen((wchar_t *)wstrFile.Buffer, mode); - - free(wstrFile.Buffer); - - return pRetVal; - -} - -void *__wdlopen(const wchar_t *file, int mode) -{ - NTSTATUS nErrCode; - UNICODE_STRING wstrNativePath; - struct __dlobj * pdloObject; - - if(file == 0) - { - /* POSIX dynamic linking allows for global symbol matching */ - pdloObject = (struct __dlobj *)malloc(sizeof(struct __dlobj)); - - TODO("\ -move the global symbol matching semantics into the PE Loader \ -(NTDLL Ldr family of calls), and just return a pointer to the module \ -image\ -"); - - pdloObject->global = 1; - return (pdloObject); - } - - FIXME("\ -LdrLoadDll() only accepts DOS paths - probably because the POSIX \ -standard didn't specify dynamic linking interfaces at the time Windows NT \ -was born \ -"); - -#if 0 - /* TODO: LdrLoadNtDll() or LdrLoadDllEx() (the former is preferrable, since - the latter is more likely to be implemented with different purposes from - Microsoft), accepting native NT paths */ - - if(wcschr(file, '/'L) != NULL) - { - /* TODO: RtlPosixPathNameToNtPathName_U */ - if(!RtlPosixPathNameToNtPathName_U((LPWSTR)file, &wstrNativePath, NULL, NULL)) - { - __dl_set_last_error(ENOENT); - return (NULL); - } - } - else - { - RtlInitUnicodeString(&wstrNativePath, (LPWSTR)file); - } -#endif - - RtlInitUnicodeString(&wstrNativePath, (LPWSTR)file); - - pdloObject = (struct __dlobj *)malloc(sizeof(struct __dlobj)); - pdloObject->global = 0; - - WARN("\ -mode flags are not fully supported by Windows NT, due to the \ -completely different semantics of dynamical linking (for \ -example the global symbol matching is unsupported). This \ -implementation will then behave as if mode was set to \ -(RTLD_NOW | RTLD_GLOBAL), and fail if other flags are set.\ -"); - - if(__dl_get_scope_flag(mode) == RTLD_LOCAL) - { - __dl_set_last_error(EINVAL); - return (NULL); - } - - /* load the DLL */ - nErrCode = LdrLoadDll - ( - NULL, - 0, - &wstrNativePath, - (PVOID*)&pdloObject->handle - ); - - if(!NT_SUCCESS(nErrCode)) - { - __dl_set_last_error(__status_to_errno(nErrCode)); - return (NULL); - } - - return (pdloObject); - -} - -/* EOF */ - diff --git a/posix/lib/psxdll/dlfcn/dlsym.c b/posix/lib/psxdll/dlfcn/dlsym.c deleted file mode 100644 index 31f9c326dfa..00000000000 --- a/posix/lib/psxdll/dlfcn/dlsym.c +++ /dev/null @@ -1,92 +0,0 @@ -/* $Id: dlsym.c,v 1.4 2002/10/29 04:45:30 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/dlfcn/dlsym.c - * PURPOSE: Obtain the address of a symbol from a dlopen() object - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 19/12/2001: Created - */ - -#include -#include -#include -#include -#include -#include -#include - -void *__dlsymn(void *, unsigned long int); -void *__dlsym(void *, int, const char *, unsigned long int); - -void *dlsym(void *handle, const char *name) -{ - return (__dlsym(handle, 1, name, 0)); -} - -void *__dlsymn(void *handle, unsigned long int ordinal) -{ - return (__dlsym(handle, 0, 0, ordinal)); -} - -void *__dlsym(void *handle, int by_name, const char *name, unsigned long int ordinal) -{ - struct __dlobj * pdloObject; - - void * pProcAddr; - NTSTATUS nErrCode; - - if(handle == RTLD_NEXT) - { - FIXME("implement RTLD_NEXT semantics"); - return (NULL); - } - - pdloObject = (struct __dlobj *) handle; - - if(pdloObject->global) - { - FIXME("implement global symbol matching"); - return (NULL); - } - - if(by_name) - { - ANSI_STRING strName; - - RtlInitAnsiString(&strName, (LPSTR)name); - - nErrCode = LdrGetProcedureAddress - ( - pdloObject->handle, - &strName, - 0, - (PVOID *)&pProcAddr - ); - - } - else - { - nErrCode = LdrGetProcedureAddress - ( - pdloObject->handle, - NULL, - ordinal, - (PVOID *)&pProcAddr - ); - } - - if(!NT_SUCCESS(nErrCode)) - { - __dl_set_last_error(__status_to_errno(nErrCode)); - return (NULL); - } - - return pProcAddr; - -} - -/* EOF */ - diff --git a/posix/lib/psxdll/errno/.cvsignore b/posix/lib/psxdll/errno/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/errno/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/errno/errno.c b/posix/lib/psxdll/errno/errno.c deleted file mode 100644 index aca467c797b..00000000000 --- a/posix/lib/psxdll/errno/errno.c +++ /dev/null @@ -1,57 +0,0 @@ -/* $Id: errno.c,v 1.6 2003/08/22 13:55:15 ea Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/errno/errno.c - * PURPOSE: Internal errno implementation - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 27/12/2001: Created - */ - -#include -#include -#include -#include - -int * __PdxGetThreadErrNum(void) -{ - return &(((__PPDX_TDATA) (NtCurrentTeb()->TlsSlots[__PdxGetProcessData()->TlsIndex]) )->ErrNum); -} - -/********************************************************************** - * NAME EXPORTED - * RtlNtStatusToPsxErrno - * - * DESCRIPTION - * Convert an Executive status ID into a POSIX error number - * (errno.h). - * - * NOTE - * Not present in the legacy WNT (a ReactOS extension to support - * the POSIX+ subsystem). - * - * ARGUMENTS - * Status The Executive status ID to convert. - * - * RETURN VALUE - * errno as in errno.h - * - * REVISIONS - * 1999-11-30 ea - * 2003-08-22 ea: moved here from NTDLL - */ -INT STDCALL -RtlNtStatusToPsxErrno(IN NTSTATUS Status) -{ -#if 0 - switch (Status) - { - } -#endif - return -1; /* generic POSIX error */ -} - -/* EOF */ - diff --git a/posix/lib/psxdll/fcntl/.cvsignore b/posix/lib/psxdll/fcntl/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/fcntl/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/fcntl/fcntl.c b/posix/lib/psxdll/fcntl/fcntl.c deleted file mode 100644 index 159eba6fae9..00000000000 --- a/posix/lib/psxdll/fcntl/fcntl.c +++ /dev/null @@ -1,351 +0,0 @@ -/* $Id: fcntl.c,v 1.7 2002/10/29 04:45:31 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/fcntl/fcntl.c - * PURPOSE: File control - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 13/02/2002: Created - * 15/02/2002: Implemented fcntl() (KJK::Hyperion) - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -int fcntl(int fildes, int cmd, ...) -{ - __fdtable_t *pftFdTable; - __fildes_t *pfdDescriptor; - NTSTATUS nErrCode; - int nRetVal; - int nThirdArg; - void *pThirdArg; - va_list vlArgs; - - /* lock the environment */ - __PdxAcquirePdataLock(); - INFO("environment locked"); - - /* get the file descriptors table */ - pftFdTable = &__PdxGetProcessData()->FdTable; - INFO("file descriptors table at 0x%08X", pftFdTable); - - /* fildes is an invalid descriptor, or it's a closed or uninitialized - descriptor and the requested operation is not the creation of a new - descriptor */ - if - ( - fildes < 0 || - fildes >= OPEN_MAX || - ( - (cmd != F_NEWFD) && - ( - __fdtable_entry_isavail(pftFdTable, fildes) == 0 || - __fdtable_entry_get(pftFdTable, fildes) == 0 - ) - ) - ) - { - INFO("invalid file descriptor"); - errno = EBADF; - __PdxReleasePdataLock(); - return (-1); - } - - /* get the file descriptor referenced by fildes */ - pfdDescriptor = __fdtable_entry_get(pftFdTable, fildes); - INFO("file descriptor %d at 0x%08X", fildes, pftFdTable); - - /* get third argument as integer */ - va_start(vlArgs, cmd); - nThirdArg = va_arg(vlArgs, int); - va_end(vlArgs); - - /* get third argument as pointer */ - va_start(vlArgs, cmd); - pThirdArg = va_arg(vlArgs, void *); - va_end(vlArgs); - - /* initialize return value */ - nRetVal = -1; - - switch(cmd) - { - case F_DUPFD: - { - int nDupFileNo; - __fildes_t *pfdDupDescriptor; - - INFO("requested operation: F_DUPFD"); - - /* allocate the duplicated descriptor */ - nDupFileNo = __fdtable_entry_add(pftFdTable, nThirdArg, 0, &pfdDupDescriptor); - - if(nDupFileNo) - { - ERR("__fdtable_entry_add() failed, errno %d", errno); - break; - } - - /* copy the open flags */ - pfdDupDescriptor->OpenFlags = pfdDescriptor->OpenFlags; - - /* clear the FD_CLOEXEC flag */ - pfdDupDescriptor->FdFlags = pfdDescriptor->FdFlags & ~FD_CLOEXEC; - - /* duplicate the extra data */ - if(pfdDescriptor->ExtraDataSize != 0 && pfdDescriptor->ExtraData != 0) - { - /* allocate space for the duplicated extra data */ - pfdDupDescriptor->ExtraDataSize = pfdDescriptor->ExtraDataSize; - pfdDupDescriptor->ExtraData = __malloc(pfdDupDescriptor->ExtraDataSize); - - /* failure */ - if(pfdDupDescriptor->ExtraData == 0) - { - errno = ENOMEM; - break; - } - - /* copy the extra data */ - memcpy(pfdDupDescriptor->ExtraData, pfdDescriptor->ExtraData, pfdDupDescriptor->ExtraDataSize); - INFO - ( - "copied %u bytes from 0x%08X into 0x%08X", - pfdDupDescriptor->ExtraDataSize, - pfdDescriptor->ExtraData, - pfdDupDescriptor->ExtraData - ); - } - - /* duplicate the handle */ - nErrCode = NtDuplicateObject - ( - NtCurrentProcess(), - pfdDescriptor->FileHandle, - NtCurrentProcess(), - &pfdDupDescriptor->FileHandle, - 0, - 0, - DUPLICATE_SAME_ACCESS /* | DUPLICATE_SAME_ATTRIBUTES */ - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - __free(pfdDupDescriptor->ExtraData); - errno = __status_to_errno(nErrCode); - break; - } - - INFO - ( - "duplicated handle 0x%08X into handle 0x%08X", - pfdDescriptor->FileHandle, - pfdDupDescriptor->FileHandle - ); - - /* return the duplicated file number */ - nRetVal = nDupFileNo; - break; - } - - case F_GETFD: - { - INFO("requested operation: F_GETFD"); - nRetVal = pfdDescriptor->FdFlags; - break; - } - - case F_SETFD: - { - INFO("requested operation: F_SETFD"); - pfdDescriptor->FdFlags = nThirdArg; - nRetVal = 0; - break; - } - - case F_GETFL: - { - INFO("requested operation: F_GETFL"); - nRetVal = pfdDescriptor->OpenFlags; - break; - } - - case F_SETFL: - { - INFO("requested operation: F_SETFL"); - pfdDescriptor->OpenFlags = nThirdArg; - nRetVal = 0; - break; - } - - case F_GETLK: - { - INFO("requested operation: F_GETLK"); - errno = EINVAL; - break; - } - - case F_SETLK: - { - INFO("requested operation: F_SETLK"); - errno = EINVAL; - break; - } - - case F_SETLKW: - { - INFO("requested operation: F_SETLKW"); - errno = EINVAL; - break; - } - - case F_NEWFD: - { - INFO("requested operation: F_NEWFD"); - /* allocate a new descriptor */ - nRetVal = __fdtable_entry_add(pftFdTable, fildes, (__fildes_t *)pThirdArg, 0); - break; - } - - case F_DELFD: - { - INFO("requested operation: F_DELFD"); - /* invalid return pointer */ - if(pThirdArg == 0) - { - errno = EINVAL; - break; - } - - memcpy((__fildes_t *)pThirdArg, pfdDescriptor, sizeof(*pfdDescriptor)); - - /* remove file descriptor */ - nRetVal = __fdtable_entry_remove(pftFdTable, fildes); - - } - - case F_GETALL: - { - INFO("requested operation: F_GETALL"); - /* invalid return pointer */ - if(pThirdArg == 0) - { - errno = EINVAL; - break; - } - - /* return a copy of the file descriptor */ - memcpy((__fildes_t *)pThirdArg, pfdDescriptor, sizeof(*pfdDescriptor)); - nRetVal = 0; - - break; - } - - case F_SETALL: - { - INFO("requested operation: F_SETALL"); - /* invalid file descriptor to copy attributes from */ - if(pThirdArg == 0) - { - errno = EINVAL; - break; - } - - /* copy the attributes of file descriptor from the provided descriptor */ - memcpy(pfdDescriptor, pThirdArg, sizeof(*pfdDescriptor)); - nRetVal = 0; - - break; - } - - case F_GETXP: - { - INFO("requested operation: F_GETXP"); - /* invalid return pointer */ - if(pThirdArg == 0) - { - errno = EINVAL; - break; - } - - /* return a pointer to the extra data associated to the descriptor */ - *((void **)pThirdArg) = pfdDescriptor->ExtraData; - nRetVal = 0; - - break; - } - - case F_SETXP: - { - INFO("requested operation: F_SETXP"); - /* set the pointer to the extra data associated */ - pfdDescriptor->ExtraData = pThirdArg; - nRetVal = 0; - break; - } - - case F_GETXS: - { - INFO("requested operation: F_GETXS"); - nRetVal = pfdDescriptor->ExtraDataSize; - break; - } - - case F_SETXS: - { - INFO("requested operation: F_SETXS"); - pfdDescriptor->ExtraDataSize = nThirdArg; - nRetVal = 0; - break; - } - - case F_GETFH: - { - INFO("requested operation: F_GETFH"); - /* invalid return pointer */ - if(pThirdArg == 0) - { - errno = EINVAL; - break; - } - - /* return the handle associated to the descriptor */ - *((void **)pThirdArg) = pfdDescriptor->FileHandle; - nRetVal = 0; - break; - } - - case F_SETFH: - { - INFO("requested operation: F_SETFH"); - pfdDescriptor->FileHandle = pThirdArg; - nRetVal = 0; - break; - } - - default: - INFO("invalid operation requested"); - errno = EINVAL; - } - - /* unlock the environment */ - __PdxReleasePdataLock(); - INFO("environment unlocked"); - - return (nRetVal); -} - -/* EOF */ \ No newline at end of file diff --git a/posix/lib/psxdll/fcntl/open.c b/posix/lib/psxdll/fcntl/open.c deleted file mode 100644 index 735d238915a..00000000000 --- a/posix/lib/psxdll/fcntl/open.c +++ /dev/null @@ -1,180 +0,0 @@ -/* $Id: open.c,v 1.5 2002/10/29 04:45:31 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/fcntl/open.c - * PURPOSE: Open a file - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 04/02/2002: Created - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -int open(const char *path, int oflag, ...) -{ - ANSI_STRING strPath; - UNICODE_STRING wstrPath; - int nRetVal; - - RtlInitAnsiString(&strPath, (PCSZ)path); - RtlAnsiStringToUnicodeString(&wstrPath, &strPath, TRUE); - - nRetVal = _Wopen(wstrPath.Buffer, oflag); - - RtlFreeUnicodeString(&wstrPath); - - return (nRetVal); -} - -int _Wopen(const wchar_t *path, int oflag, ...) -{ - OBJECT_ATTRIBUTES oaFileAttribs; - IO_STATUS_BLOCK isbStatus; - UNICODE_STRING wstrNativePath; - NTSTATUS nErrCode; - ULONG nDesiredAccess; - ULONG nCreateDisposition; - ULONG nCreateOptions; - HANDLE hFile; -#if 0 - mode_t mFileMode; -#endif - int nFileNo; - __fildes_t fdDescriptor; - - /* translate file access flag */ - switch(oflag & O_ACCMODE) - { - case O_RDONLY: - { - nDesiredAccess = FILE_READ_ACCESS; - nCreateOptions = 0; - break; - } - - case O_WRONLY: - { - nDesiredAccess = FILE_WRITE_ACCESS; - nCreateOptions = FILE_NON_DIRECTORY_FILE; /* required by the specification */ - break; - } - - case O_RDWR: - { - nDesiredAccess = FILE_READ_ACCESS | FILE_WRITE_ACCESS; - nCreateOptions = FILE_NON_DIRECTORY_FILE; /* required by the specification */ - break; - } - - default: - { - errno = EINVAL; - return (-1); - } - - } - - /* miscellaneous flags */ - if((oflag & _O_DIRFILE) == _O_DIRFILE) - nCreateOptions |= FILE_DIRECTORY_FILE; - - /* creation disposition */ - if((oflag & O_CREAT) == O_CREAT) - if((oflag & O_EXCL) == O_EXCL) - nCreateDisposition = FILE_CREATE; /* O_CREAT + O_EXCL: create file, fail if file exists */ - else - nCreateDisposition = FILE_OPEN_IF; /* O_CREAT: open file, create if file doesn't exist */ - else if((oflag & O_TRUNC) == O_TRUNC) - nCreateDisposition = FILE_OVERWRITE; /* O_TRUNC: truncate existing file */ - else - nCreateDisposition = FILE_OPEN; /* normal: open file, fail if file doesn't exist */ - - /* lock the environment */ - __PdxAcquirePdataLock(); - - /* convert the path into a native path */ - if(!__PdxPosixPathNameToNtPathName((LPWSTR)path, __PdxGetNativePathBuffer(), __PdxGetCurDir(), NULL)) - { - __PdxReleasePdataLock(); - return (-1); - } - - /* set file generic object attributes */ - oaFileAttribs.Length = sizeof(oaFileAttribs); - oaFileAttribs.RootDirectory = __PdxGetRootHandle(); - oaFileAttribs.ObjectName = &wstrNativePath; - oaFileAttribs.Attributes = OBJ_INHERIT; /* child processes inherit all file descriptors */ - oaFileAttribs.SecurityDescriptor = NULL; - oaFileAttribs.SecurityQualityOfService = NULL; - - /* open or create the file */ - nErrCode = NtCreateFile - ( - &hFile, - nDesiredAccess | SYNCHRONIZE, - &oaFileAttribs, - &isbStatus, - NULL, - 0, - FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, - nCreateDisposition, - nCreateOptions | FILE_SYNCHRONOUS_IO_NONALERT, - NULL, - 0 - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtCreateFile() failed with status 0x%08X", nErrCode); - __PdxReleasePdataLock(); - errno = __status_to_errno(nErrCode); - return (-1); - } - - /* initialize descriptor constructor */ - memset(&fdDescriptor, 0, sizeof(fdDescriptor)); - fdDescriptor.FileHandle = hFile; - fdDescriptor.OpenFlags = oflag; - - /* allocate a new file descriptor */ - nFileNo = fcntl(0, F_NEWFD, &fdDescriptor); - - /* unlock the environment */ - __PdxReleasePdataLock(); - - /* could not allocate the file descriptor */ - if(nFileNo < 0) - { - NtClose(hFile); - return (-1); - } - - /* return the file number */ - return (nFileNo); -} - -int creat(const char *path, mode_t mode) -{ - return (open(path, O_WRONLY | O_CREAT | O_TRUNC, mode)); -} - -int _Wcreat(const wchar_t *path, mode_t mode) -{ - return (_Wopen(path, O_WRONLY | O_CREAT | O_TRUNC, mode)); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/libgen/.cvsignore b/posix/lib/psxdll/libgen/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/libgen/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/libgen/basename.c b/posix/lib/psxdll/libgen/basename.c deleted file mode 100644 index 8db0b49a738..00000000000 --- a/posix/lib/psxdll/libgen/basename.c +++ /dev/null @@ -1,114 +0,0 @@ -/* $Id: basename.c,v 1.4 2002/10/29 04:45:31 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/libgen/basename.c - * PURPOSE: Return the last component of a pathname - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/02/2002: Created - */ - -#include -#include -#include -#include - -static const char *__basename_dot = "."; -static const wchar_t *__Wbasename_dot = L"."; - -char *basename(char *path) -{ - char *pcTail; - size_t nStrLen; - - /* null or empty string */ - if(path == 0 && ((nStrLen = strlen(path)) == 0)) - return ((char *)__basename_dot); - - if(nStrLen == 1) - { - /* path is "/", return "/" */ - if(IS_CHAR_DELIMITER_A(path[0])) - { - path[0] = '/'; - path[1] = 0; - return (path); - } - /* path is a single character, return it */ - else - { - return (path); - } - } - - /* tail of the string (null terminator excluded) */ - pcTail = &path[nStrLen - 1]; - - /* skip trailing slashes */ - while(pcTail > path && IS_CHAR_DELIMITER_A(*pcTail)) - pcTail --; - - pcTail[1] = 0; - - /* go backwards until a delimiter char or the beginning of the string */ - while(pcTail >= path) - /* delimiter found, return the basename */ - if(IS_CHAR_DELIMITER_A(*pcTail)) - return (&pcTail[1]); - else - pcTail --; - - /* return all the path */ - return (path); -} - -wchar_t *_Wbasename(wchar_t *path) -{ - wchar_t *pwcTail; - size_t nStrLen; - - /* null or empty string */ - if(path == 0 && ((nStrLen = wcslen(path)) == 0)) - return ((wchar_t *)__Wbasename_dot); - - if(nStrLen == 1) - { - /* path is "/", return "/" */ - if(IS_CHAR_DELIMITER_U(path[0])) - { - path[0] = L'/'; - path[1] = 0; - return (path); - } - /* path is a single character, return it */ - else - { - return (path); - } - } - - /* tail of the string (null terminator excluded) */ - pwcTail = &path[nStrLen - 1]; - - /* skip trailing slashes */ - while(pwcTail > path && IS_CHAR_DELIMITER_U(*pwcTail)) - pwcTail --; - - pwcTail[1] = 0; - - /* go backwards until a delimiter char or the beginning of the string */ - while(pwcTail >= path) - /* delimiter found, return the basename */ - if(IS_CHAR_DELIMITER_U(*pwcTail)) - return (&pwcTail[1]); - else - pwcTail --; - - /* return all the path */ - return (path); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/misc/.cvsignore b/posix/lib/psxdll/misc/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/misc/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/misc/fdtable.c b/posix/lib/psxdll/misc/fdtable.c deleted file mode 100644 index 76aa0fa3b28..00000000000 --- a/posix/lib/psxdll/misc/fdtable.c +++ /dev/null @@ -1,238 +0,0 @@ -/* $Id: fdtable.c,v 1.6 2002/10/29 04:45:31 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/misc/fdtable.c - * PURPOSE: File descriptors table functions - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 12/02/2002: Created - */ - -#include -#include -#include -#include -#include -#include - -int __fdtable_init(__fdtable_t * fdtable) -{ - if(fdtable == 0) - { - errno = EINVAL; - return (-1); - } - - memset(fdtable, 0, sizeof(*fdtable)); - - fdtable->Signature = __FDTABLE_MAGIC; - - return (0); -} - -int __fdtable_free(__fdtable_t * fdtable) -{ - if(fdtable == 0) - { - errno = EINVAL; - return (-1); - } - - __free(&fdtable->Descriptors); - - memset(fdtable, 0, sizeof(*fdtable)); - - fdtable->Signature = MAGIC('B', 'A', 'A', 'D'); - - return (0); -} - -int __fdtable_entry_isavail(__fdtable_t * fdtable, int fileno) -{ - return ((fdtable->DescriptorsBitmap[fileno / 32] >> (fileno % 32)) % 2); -} - -int __fdtable_entry_nextavail(__fdtable_t * fdtable, int fileno) -{ - int nCurMapIndex; - int nUnusedIndex; - uint32_t nCurMapCell; - - nUnusedIndex = fileno; - - /* The file descriptors bitmap is an array of 32 bit unsigned integers (32 bit - integers were chosen for proper data alignment without padding). The array is - big enough to hold at least OPEN_MAX bits, that is it has OPEN_MAX / 32 cells - (see also the __fdtable_t definition in psx/fdtable.h). Bits correspond to - file numbers: if a bit is 1, the corresponding file number is in use, else - it's unused. Bit numbering is right-to-left wise, that is the rightmost (least - significative) bit of cell 0 corresponds to file number 0, the leftmost (most - significative) bit of cell 0 to file number 7, the leftmost bit of cell 1 to - file number 8, and so on - */ - /* NOTE: I'm sure the algorytm can be greatly optimized, but I prefer to privilege - readability - it allows for more maintenable code. Please don't pretend to - outsmart the compiler: such optimizations as performing divisions as bit shifts - are useless */ - - /* index of the bitmap cell containing nUnusedIndex */ - nCurMapIndex = nUnusedIndex / 32; - - /* get a copy of the bitmap cell containg nUnusedIndex, and shift it to the right - so that the rightmost (least significative) bit is the one referencing nUnusedIndex */ - nCurMapCell = fdtable->DescriptorsBitmap[nCurMapIndex] >> (nUnusedIndex % 32); - - while(1) - { - /* if the least significative bit of the current cell is 0, we've found an unused - fileno, and we return it */ - if((nCurMapCell % 2) == 0) - return (nUnusedIndex); - - /* on to next fileno */ - nUnusedIndex ++; - - /* this is NOT a failure. -1 with undefined errno means that no unused file - number exists */ - if(nUnusedIndex >= OPEN_MAX) - return (-1); - - /* this fileno is referenced in the next cell */ - if((nUnusedIndex % 32) == 0) - { - nCurMapIndex ++; - nCurMapCell = fdtable->DescriptorsBitmap[nCurMapIndex]; - } - /* on to next fileno (bit) in the current cell */ - else - nCurMapCell >>= 1; - } - - return (-1); -} - -int __fdtable_entry_add(__fdtable_t * fdtable, int fileno, __fildes_t * fildes, __fildes_t ** newfd) -{ - int nFileNo; - - /* descriptors count reached OPEN_MAX */ - if(fdtable->UsedDescriptors >= OPEN_MAX) - { - ERR("file descriptor table full"); - errno = EMFILE; - return (-1); - } - - /* base fileno less than zero: use the lowest unused fileno */ - if(fileno < 0) - nFileNo = fdtable->LowestUnusedFileNo; - /* base fileno greater than or equal to zero: use the next available fileno */ - else - nFileNo = __fdtable_entry_nextavail(fdtable, fileno); - - INFO("lowest unused file number is %d", nFileNo); - - /* descriptors count reached OPEN_MAX */ - if(nFileNo < 0) - { - ERR("nFileNo is less than zero"); - errno = EMFILE; - return (-1); - } - - /* if the table doesn't have enough space for the next entry ... */ - if(nFileNo >= fdtable->AllocatedDescriptors) - { - void * pTemp; - - INFO - ( - "growing the array from %lu to %lu bytes", - fdtable->AllocatedDescriptors * sizeof(*fdtable->Descriptors), - (nFileNo + 1) * sizeof(*fdtable->Descriptors) - ); - - /* ... try to increase the size of the table */ - if(fdtable->AllocatedDescriptors * sizeof(*fdtable->Descriptors) == 0) - pTemp = __malloc((nFileNo + 1) * sizeof(*fdtable->Descriptors)); - else - pTemp = __realloc - ( - fdtable->Descriptors, - (nFileNo + 1) * sizeof(*fdtable->Descriptors) - ); - - /* reallocation failed */ - if(pTemp == 0) - { - ERR("__realloc() failed"); - errno = ENOMEM; - return (-1); - } - - /* update the table */ - fdtable->AllocatedDescriptors = nFileNo + 1; - fdtable->Descriptors = pTemp; - } - - /* initialize descriptor */ - if(fildes == 0) - memset(&fdtable->Descriptors[nFileNo], 0, sizeof(__fildes_t)); - else - memcpy(&fdtable->Descriptors[nFileNo], fildes, sizeof(__fildes_t)); - - if(newfd != 0) - *newfd = &fdtable->Descriptors[nFileNo]; - - INFO - ( - "file number %d: handle 0x%08X, open flags 0x%08X, flags 0x%08X, extra data size %u, extra data at 0x%08X", - nFileNo, - fdtable->Descriptors[nFileNo].FileHandle, - fdtable->Descriptors[nFileNo].OpenFlags, - fdtable->Descriptors[nFileNo].FdFlags, - fdtable->Descriptors[nFileNo].ExtraDataSize, - fdtable->Descriptors[nFileNo].ExtraData - ); - - INFO - ( - "incrementing used descriptors count from %u to %u", - fdtable->UsedDescriptors, - fdtable->UsedDescriptors + 1 - ); - fdtable->UsedDescriptors ++; - - INFO - ( - "setting bit %u of cell %u of the bitmap to 1", - nFileNo % 32, - nFileNo / 32 - ); - fdtable->DescriptorsBitmap[nFileNo / 32] |= (1 << (nFileNo % 32)); - - fdtable->LowestUnusedFileNo = __fdtable_entry_nextavail(fdtable, nFileNo); - INFO("setting the lowest unused file number to %d", fdtable->LowestUnusedFileNo); - - return (nFileNo); -} - -int __fdtable_entry_remove(__fdtable_t * fdtable, int fileno) -{ - return (-1); -} - -__fildes_t *__fdtable_entry_get(__fdtable_t * fdtable, int fileno) -{ - /* this fileno hasn't been allocated */ - if(fileno >= fdtable->AllocatedDescriptors) - return (0); - - /* TODO: check the fileno against the bitmap */ - return (&fdtable->Descriptors[fileno]); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/misc/heap.c b/posix/lib/psxdll/misc/heap.c deleted file mode 100644 index 722de19730b..00000000000 --- a/posix/lib/psxdll/misc/heap.c +++ /dev/null @@ -1,17 +0,0 @@ -/* $Id: heap.c,v 1.3 2002/10/29 04:45:33 rex Exp $ - * - * FILE: reactos/subsys/psx/lib/psxdll/misc/heap.c - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * PURPOSE: Support routines for crt0.c - * UPDATE HISTORY: - * 2001-05-06 - */ -#define NTOS_MODE_USER -#include -#include -HANDLE STDCALL GetProcessHeap (VOID) -{ - return (HANDLE)NtCurrentPeb()->ProcessHeap; -} -/* EOF */ diff --git a/posix/lib/psxdll/misc/init.c b/posix/lib/psxdll/misc/init.c deleted file mode 100644 index 990e27eb6f9..00000000000 --- a/posix/lib/psxdll/misc/init.c +++ /dev/null @@ -1,65 +0,0 @@ -/* $Id: init.c,v 1.5 2002/10/29 04:45:33 rex Exp $ - * - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: reactos/subsys/psx/lib/psxdll/misc/init.c - * PURPOSE: Client initialization - * PROGRAMMER: Emanuele Aliberti - * UPDATE HISTORY: - * 2001-05-06 - */ -#define NTOS_MODE_USER -#include -#include - -/* DLL GLOBALS */ -int * errno = NULL; -char *** _environ = NULL; -HANDLE ApiPort = INVALID_HANDLE_VALUE; -/* - * Called by startup code in crt0.o, where real - * errno and _environ are actually defined. - */ -VOID STDCALL __PdxInitializeData (int * errno_arg, char *** environ_arg) -{ - errno = errno_arg; - _environ = environ_arg; -} -/* - * Called by DLL's entry point when reason==PROCESS_ATTACH. - */ -NTSTATUS STDCALL PsxConnectApiPort (VOID) -{ - UNICODE_STRING usApiPortName; - LPWSTR wsApiPortName = L"\\"PSX_NS_SUBSYSTEM_DIRECTORY_NAME"\\"PSX_NS_API_PORT_NAME; - SECURITY_QUALITY_OF_SERVICE Sqos; - ULONG MaxMessageSize = 0; - NTSTATUS Status; - PSX_CONNECT_PORT_DATA ConnectData; - ULONG ConnectDataLength = sizeof ConnectData; - - RtlInitUnicodeString (& usApiPortName, wsApiPortName); - RtlZeroMemory (& Sqos, sizeof Sqos); - ConnectData.ConnectionType = PSX_CONNECTION_TYPE_PROCESS; - ConnectData.Version = PSX_LPC_PROTOCOL_VERSION; - ConnectData.PortIdentifier = 0; - Status = NtConnectPort ( - & ApiPort, - & usApiPortName, - & Sqos, - NULL, - NULL, - & MaxMessageSize, - & ConnectData, - & ConnectDataLength - ); - if (!NT_SUCCESS(Status)) - { - /* TODO: emit a diagnostic message */ - return Status; - } - /* TODO: save returned data */ - return STATUS_SUCCESS; -} -/* EOF */ - diff --git a/posix/lib/psxdll/misc/interlock.c b/posix/lib/psxdll/misc/interlock.c deleted file mode 100644 index 983dd71f789..00000000000 --- a/posix/lib/psxdll/misc/interlock.c +++ /dev/null @@ -1,83 +0,0 @@ -/* $Id: interlock.c,v 1.4 2002/10/29 04:45:33 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/misc/interlock.c - * PURPOSE: inter-locked increments/decrements - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 20/01/2002: Adapted from lib/kernel32/synch/intrlck.c - */ - -/* - * NOTE by KJK::Hyperion: I do not understand what's behind these functions. - * Don't ask me how they work, or to fix errors in them. - * Please refer to the authors referenced in the original - * file, lib/kernel32/synch/intrlck.c - */ - -/* TODO? move these in some shared library */ - -#include - -int __interlock_inc(int * addend) -{ - int ret = 0; - - __asm__ - ( - " lock\n" /* for SMP systems */ - " incl (%1)\n" - " je 2f\n" - " jl 1f\n" - " incl %0\n" - " jmp 2f\n" - "1: dec %0\n" - "2:\n" - :"=r" (ret):"r" (addend), "0" (0): "memory" - ); - - return (ret); -} - -int __interlock_dec(int * addend) -{ - int ret = 0; - - __asm__ - ( - " lock\n" /* for SMP systems */ - " decl (%1)\n" - " je 2f\n" - " jl 1f\n" - " incl %0\n" - " jmp 2f\n" - "1: dec %0\n" - "2:\n" - :"=r" (ret):"r" (addend), "0" (0): "memory" - ); - - return (ret); - -} - -int __interlock_add(int * addend, int increment) -{ - int ret = 0; - - __asm__ - ( - " lock\n" /* for SMP systems */ - " xaddl %0,(%1)" - :"=r" (ret) - :"r" (addend), "0" (increment) - :"memory" - ); - - return (ret); - -} - -/* EOF */ - diff --git a/posix/lib/psxdll/misc/main.c b/posix/lib/psxdll/misc/main.c deleted file mode 100644 index fd3085c13bd..00000000000 --- a/posix/lib/psxdll/misc/main.c +++ /dev/null @@ -1,149 +0,0 @@ -/* $Id: main.c,v 1.6 2002/10/29 04:45:33 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/misc/main.c - * PURPOSE: psxdll.dll entry point - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 27/12/2001: Created - */ - -#include -#include -#include -#include -#include -#include -#include - -#define DLL_PROCESS_ATTACH 1 -#define DLL_THREAD_ATTACH 2 -#define DLL_THREAD_DETACH 3 -#define DLL_PROCESS_DETACH 0 - -/* WARNING: PRELIMINARY CODE FOR DEBUGGING PURPOSES ONLY - DO NOT CHANGE */ -static __PDX_PDATA __PdxPdata; -static WCHAR __tempPathBuf[32768]; -static char * __tempSelf = "-sh"; -static char * __tempArgv[2] = {0, 0}; - -VOID __PdxSetProcessData(__PPDX_PDATA NewPdata) -{ - memcpy(&__PdxPdata, NewPdata, sizeof(__PdxPdata)); -} - -__PPDX_PDATA __PdxGetProcessData(VOID) -{ - return &__PdxPdata; -} - -BOOL STDCALL DllMain(PVOID pDllInstance, DWORD nReason, PVOID pUnknown) -{ - ULONG nJunk; - - switch(nReason) - { - /* process created, first thread created */ - case DLL_PROCESS_ATTACH: - { - __PPDX_TDATA ThreadData; - int i; - - INFO("new process and new thread created"); - - __PdxPdata.Spawned = 1; - - __PdxPdata.ArgCount = 1; - __tempArgv[0] = __tempSelf; - __PdxPdata.ArgVect = __tempArgv; - - __PdxPdata.NativePathBuffer.Length = 0; - __PdxPdata.NativePathBuffer.MaximumLength = sizeof(__tempPathBuf); - __PdxPdata.NativePathBuffer.Buffer = __tempPathBuf; - - INFO("about to initialize process data lock"); - RtlInitializeCriticalSection(&__PdxPdata.Lock); - - INFO("about to allocate TLS slot"); - __PdxPdata.TlsIndex = RtlFindClearBitsAndSet(NtCurrentPeb()->TlsBitmap, 1, 0); - - if(__PdxPdata.TlsIndex == -1) - { - DbgBreakPoint(); - NtRaiseHardError(STATUS_NO_MEMORY, 0, 0, 0, 1, (ULONG)&nJunk); - return (FALSE); - } - - INFO("allocated TLS slot %d", __PdxPdata.TlsIndex); - - INFO("about to allocate thread data"); - ThreadData = __malloc(sizeof(*ThreadData)); - - if(ThreadData == 0) - { - DbgBreakPoint(); - NtRaiseHardError(STATUS_NO_MEMORY, 0, 0, 0, 1, (ULONG)&nJunk); - return (FALSE); - } - - NtCurrentTeb()->TlsSlots[__PdxPdata.TlsIndex] = ThreadData; - - INFO("about to initialize file descriptors table"); - __fdtable_init(&__PdxPdata.FdTable); - - INFO("end of initialization"); - return (TRUE); - } - - /* process about to exit */ - case DLL_PROCESS_DETACH: - { - INFO("process about to exit"); - - INFO("about to deallocate thread data"); - __free(NtCurrentTeb()->TlsSlots[__PdxPdata.TlsIndex]); - - return (TRUE); - } - - /* thread created */ - case DLL_THREAD_ATTACH: - { - __PPDX_TDATA ThreadData; - - INFO("new thread created"); - - INFO("about to allocate thread data"); - ThreadData = __malloc(sizeof(*ThreadData)); - - if(ThreadData == 0) - { - DbgBreakPoint(); - NtRaiseHardError(STATUS_NO_MEMORY, 0, 0, 0, 1, (ULONG)&nJunk); - return (FALSE); - } - - NtCurrentTeb()->TlsSlots[__PdxPdata.TlsIndex] = ThreadData; - - return (TRUE); - } - - /* thread exited */ - case DLL_THREAD_DETACH: - { - INFO("thread about to exit"); - - INFO("about to deallocate thread data"); - __free(NtCurrentTeb()->TlsSlots[__PdxPdata.TlsIndex]); - - return (TRUE); - } - } - - return (FALSE); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/misc/path.c b/posix/lib/psxdll/misc/path.c deleted file mode 100644 index bc9405920b2..00000000000 --- a/posix/lib/psxdll/misc/path.c +++ /dev/null @@ -1,460 +0,0 @@ -/* $Id: path.c,v 1.4 2002/10/29 04:45:33 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/misc/path.c - * PURPOSE: POSIX subsystem path utilities - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 31/01/2002: Created - */ - -#include -#include -#include -#include -#include -#include - -BOOLEAN -__PdxPosixPathGetNextComponent_U -( - IN UNICODE_STRING PathName, - IN OUT PUNICODE_STRING PathComponent, - OUT PBOOLEAN TrailingDelimiter OPTIONAL -) -{ - int i, j; - USHORT l = PathName.Length / sizeof(WCHAR); - - if(PathComponent->Buffer == 0) - i = 0; - else - i = ((ULONG)PathComponent->Buffer - (ULONG)PathName.Buffer + PathComponent->Length) / sizeof(WCHAR); - - /* skip leading empty components */ - while(1) - if(i >= l) - { - PathComponent->Length = PathComponent->MaximumLength = 0; - return (FALSE); - } - else if(IS_CHAR_DELIMITER_U(PathName.Buffer[i])) - i ++; - else - break; - - if(i > l) - { - PathComponent->Length = PathComponent->MaximumLength = 0; - return (FALSE); - } - - PathComponent->Buffer = &PathName.Buffer[i]; - - j = i + 1; - - /* advance until the end of the string, or the next delimiter */ - while(1) - { - if(j >= l) - { - - if(TrailingDelimiter != 0) - *TrailingDelimiter = FALSE; - - break; - } - else if (IS_CHAR_DELIMITER_U(PathName.Buffer[j])) - { - - if(TrailingDelimiter != 0) - *TrailingDelimiter = TRUE; - - break; - } - else - j ++; - } - - PathComponent->Length = PathComponent->MaximumLength = (j - i) * sizeof(WCHAR); - - return (TRUE); - -} - -BOOLEAN -__PdxPosixPathResolve_U -( - IN UNICODE_STRING PathName, - OUT PUNICODE_STRING ResolvedPathName, - IN WCHAR PathDelimiter OPTIONAL -) -{ - UNICODE_STRING wstrThisComponent = {0, 0, NULL}; - PWCHAR pwcCurPos; - PWCHAR pwcStartPos; - BOOLEAN bIsDirectory; - - if(PathDelimiter == 0) - PathDelimiter = L'/'; - - /* start from the beginning of the return buffer */ - pwcCurPos = ResolvedPathName->Buffer; - - /* path begins with a delimiter (absolute path) */ - if(IS_CHAR_DELIMITER_U(PathName.Buffer[0])) - { - /* put a delimiter in front of the return buffer */ - *pwcCurPos = PathDelimiter; - /* move to next character */ - pwcCurPos ++; - } - - pwcStartPos = pwcCurPos; - - /* repeat until the end of the path string */ - while(__PdxPosixPathGetNextComponent_U(PathName, &wstrThisComponent, &bIsDirectory)) - { - /* ".": skip */ - if(IS_COMPONENT_DOT_U(wstrThisComponent)) - continue; - /* "..": go back to the last component */ - else if(IS_COMPONENT_DOTDOT_U(wstrThisComponent)) - { - if(pwcCurPos == pwcStartPos) - continue; - - /* skip the last (undefined) character */ - pwcCurPos --; - /* down to the previous path delimiter */ - do{ pwcCurPos --; }while(!IS_CHAR_DELIMITER_U(*pwcCurPos)); - /* include the delimiter */ - pwcCurPos ++; - } - else - { - /* copy this component into the return string */ - memcpy - ( - pwcCurPos, - wstrThisComponent.Buffer, - wstrThisComponent.Length - ); - - /* move the current position to the end of the string */ - pwcCurPos = (PWCHAR)((PBYTE)pwcCurPos + wstrThisComponent.Length); - - /* component had a trailing delimiter */ - if(bIsDirectory) - { - /* append a delimiter */ - *pwcCurPos = PathDelimiter; - /* on to next character */ - pwcCurPos ++; - } - } - } - - /* set the return string's length as the byte offset between the initial buffer - position and the current position */ - ResolvedPathName->Length = ((ULONG)pwcCurPos - (ULONG)ResolvedPathName->Buffer); - - return (TRUE); - -} - -BOOLEAN -__PdxPosixPathGetNextComponent_A -( - IN ANSI_STRING PathName, - IN OUT PANSI_STRING PathComponent, - OUT PBOOLEAN TrailingDelimiter OPTIONAL -) -{ - int i, j; - - if(PathComponent->Buffer == 0) - i = 0; - else - i = ((ULONG)PathComponent->Buffer - (ULONG)PathName.Buffer + PathComponent->Length); - - /* skip leading empty components */ - while(1) - if(i >= PathName.Length) - { - PathComponent->Length = PathComponent->MaximumLength = 0; - return (FALSE); - } - else if(IS_CHAR_DELIMITER_A(PathName.Buffer[i])) - i ++; - else - break; - - if(i > PathName.Length) - { - PathComponent->Length = PathComponent->MaximumLength = 0; - return (FALSE); - } - - PathComponent->Buffer = &PathName.Buffer[i]; - - j = i + 1; - - /* advance until the end of the string, or the next delimiter */ - while(1) - { - if(j >= PathName.Length) - { - - if(TrailingDelimiter != 0) - *TrailingDelimiter = FALSE; - - break; - } - else if (IS_CHAR_DELIMITER_A(PathName.Buffer[j])) - { - - if(TrailingDelimiter != 0) - *TrailingDelimiter = TRUE; - - break; - } - else - j ++; - } - - PathComponent->Length = PathComponent->MaximumLength = j - i; - - return (TRUE); - -} - -BOOLEAN -__PdxPosixPathResolve_A -( - IN ANSI_STRING PathName, - OUT PANSI_STRING ResolvedPathName, - IN CHAR PathDelimiter OPTIONAL -) -{ - ANSI_STRING strThisComponent = {0, 0, NULL}; - PCHAR pcCurPos; - PCHAR pcStartPos; - BOOLEAN bIsDirectory; - - if(PathDelimiter == 0) - PathDelimiter = '/'; - - /* start from the beginning of the return buffer */ - pcCurPos = ResolvedPathName->Buffer; - - /* path begins with a delimiter (absolute path) */ - if(IS_CHAR_DELIMITER_A(PathName.Buffer[0])) - { - /* put a delimiter in front of the return buffer */ - *pcCurPos = PathDelimiter; - /* move to next character */ - pcCurPos ++; - } - - pcStartPos = pcCurPos; - - /* repeat until the end of the path string */ - while(__PdxPosixPathGetNextComponent_A(PathName, &strThisComponent, &bIsDirectory)) - { - /* ".": skip */ - if(IS_COMPONENT_DOT_A(strThisComponent)) - continue; - /* "..": go back to the last component */ - else if(IS_COMPONENT_DOTDOT_A(strThisComponent)) - { - if(pcCurPos == pcStartPos) - continue; - - /* skip the last (undefined) character */ - pcCurPos --; - /* down to the previous path delimiter */ - do{ pcCurPos --; }while(!IS_CHAR_DELIMITER_A(*pcCurPos)); - /* include the delimiter */ - pcCurPos ++; - } - else - { - /* copy this component into the return string */ - strncpy - ( - pcCurPos, - strThisComponent.Buffer, - strThisComponent.Length - ); - - /* move the current position to the end of the string */ - pcCurPos = (PCHAR)((PBYTE)pcCurPos + strThisComponent.Length); - - /* component had a trailing delimiter */ - if(bIsDirectory) - { - /* append a delimiter */ - *pcCurPos = PathDelimiter; - /* on to next character */ - pcCurPos ++; - } - } - } - - /* set the return string's length as the byte offset between the initial buffer - position and the current position */ - ResolvedPathName->Length = ((ULONG)pcCurPos - (ULONG)ResolvedPathName->Buffer); - - return (TRUE); - -} - -BOOLEAN -__PdxPosixPathNameToNtPathName -( - IN PWCHAR PosixPath, - OUT PUNICODE_STRING NativePath, - IN PUNICODE_STRING CurDir OPTIONAL, - IN PUNICODE_STRING RootDir OPTIONAL -) -{ - UNICODE_STRING wstrPosixPath; - UNICODE_STRING wstrTempString; - - /* parameter validation */ - if - ( - PosixPath == 0 || - NativePath == 0 || - NativePath->Buffer == 0 || - NativePath->MaximumLength == 0 || - (RootDir != 0 && RootDir->Buffer == 0) - ) - { - errno = EINVAL; - return (FALSE); - } - - RtlInitUnicodeString(&wstrPosixPath, PosixPath); - - /* path is null */ - if(0 == wstrPosixPath.Length) - { - errno = EINVAL; - return (FALSE); - } - - /* first, copy the root path into the return buffer */ - /* if no root dir passed by the caller... */ - if(RootDir == 0) - /* return buffer too small */ - if(NativePath->MaximumLength < sizeof(WCHAR)) - { - errno = ENOBUFS; - return (FALSE); - } - /* set the first character to a backslash, and set length accordingly */ - else - { - NativePath->Buffer[0] = L'\\'; - NativePath->Length = sizeof(WCHAR); - } - /* ... else copy the root dir into the return buffer */ - else - /* return buffer too small */ - if(NativePath->MaximumLength < RootDir->Length) - { - errno = ENOBUFS; - return (FALSE); - } - /* copy the root directory into the return buffer, and set length */ - else - { - memcpy(NativePath->Buffer, RootDir->Buffer, RootDir->Length); - NativePath->Length = RootDir->Length; - } - - /* path is "/" - our work is done */ - if(sizeof(WCHAR) == wstrPosixPath.Length && IS_CHAR_DELIMITER_U(wstrPosixPath.Buffer[0])) - return (TRUE); - - /* temp string pointing to the tail of the return buffer */ - wstrTempString.Length = 0; - wstrTempString.MaximumLength = NativePath->MaximumLength - NativePath->Length; - wstrTempString.Buffer = (PWCHAR)(((PBYTE)(NativePath->Buffer)) + NativePath->Length); - - /* path begins with '/': absolute path. Append the resolved path to the return buffer */ - if(IS_CHAR_DELIMITER_U(wstrPosixPath.Buffer[0])) - { - /* copy the resolved path in the return buffer */ - __PdxPosixPathResolve_U(wstrPosixPath, &wstrTempString, L'\\'); - - return (TRUE); - } - else - { - UNICODE_STRING wstrAbsolutePath; - - if(CurDir == 0) - CurDir = __PdxGetCurDir(); - - /* initialize the buffer for the absolute path */ - wstrAbsolutePath.Length = 0; - wstrAbsolutePath.MaximumLength = 0xFFFF; - wstrAbsolutePath.Buffer = __malloc(0xFFFF); - - /* if the current directory is not null... */ - if(!(CurDir->Buffer == 0 || CurDir->Length == 0)) - { - /* copy it into the absolute path buffer */ - memcpy(wstrAbsolutePath.Buffer, CurDir->Buffer, CurDir->Length); - wstrAbsolutePath.Length += CurDir->Length; - } - - /* not enough space to append an extra slash */ - if((wstrAbsolutePath.MaximumLength - wstrAbsolutePath.Length) < (USHORT)sizeof(WCHAR)) - { - __free(wstrAbsolutePath.Buffer); - NativePath->Length = 0; - errno = ENOBUFS; - return (FALSE); - } - - /* append an extra slash */ - wstrAbsolutePath.Buffer[wstrAbsolutePath.Length / sizeof(WCHAR)] = L'/'; - wstrAbsolutePath.Length += sizeof(WCHAR); - - /* not enough space to copy the relative path */ - if((wstrAbsolutePath.MaximumLength - wstrAbsolutePath.Length) < wstrPosixPath.Length) - { - __free(wstrAbsolutePath.Buffer); - NativePath->Length = 0; - errno = ENOBUFS; - return (FALSE); - } - - /* append the relative path to the absolute path */ - memcpy( - (PWCHAR)(((PBYTE)wstrAbsolutePath.Buffer) + wstrAbsolutePath.Length), - wstrPosixPath.Buffer, - wstrPosixPath.Length - ); - wstrAbsolutePath.Length += wstrPosixPath.Length; - - /* resolve the path */ - __PdxPosixPathResolve_U(wstrAbsolutePath, &wstrTempString, L'\\'); - - __free(wstrAbsolutePath.Buffer); - - return (TRUE); - } - - return (FALSE); - -} - -/* EOF */ - diff --git a/posix/lib/psxdll/misc/pdata.c b/posix/lib/psxdll/misc/pdata.c deleted file mode 100644 index a61a9b0cdf0..00000000000 --- a/posix/lib/psxdll/misc/pdata.c +++ /dev/null @@ -1,607 +0,0 @@ -/* $Id: pdata.c,v 1.6 2002/12/26 18:14:36 robd Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/misc/pdata.c - * PURPOSE: Process data management - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 06/03/2002: Created - * 07/03/2002: Added __PdxUnserializeProcessData() (KJK::Hyperion - * ) - * 11/03/2002: Added __PdxProcessDataToProcessParameters() - * (KJK::Hyperion ) - */ - -#include -#include -#include -#include -#include -#include -#include - -NTSTATUS -STDCALL -__PdxProcessDataToProcessParameters -( - OUT PRTL_USER_PROCESS_PARAMETERS *ProcessParameters, - IN __PPDX_PDATA ProcessData, - IN PUNICODE_STRING ImageFile -) -{ - NTSTATUS nErrCode; - UNICODE_STRING wstrEmpty = {0, 0, NULL}; - UNICODE_STRING wstrCommandLine = {0, 0, NULL}; - __fildes_t * fdDescriptor; - int i; - - /* RtlInitUnicodeString(&wstrEmpty, L""); */ - /* TODO: error checking */ - - /* build the command line string from argument count and argument vector */ - if(ProcessData->ArgVect) - { - BOOL bQuoteArg; - BOOL bFirstArg; - ANSI_STRING strArgument; - PWCHAR pwcBufferTail; - - for(i = 0; i < ProcessData->ArgCount; i ++) - { - RtlInitAnsiString(&strArgument, ProcessData->ArgVect[i]); - - bFirstArg = (i == 0); - bQuoteArg = (strchr(strArgument.Buffer, ' ') != 0); - - /* allocate buffer space for the argument, a blank space if the argument is - not the first, and two quotes if the argument contains a space */ - /* TODO: check this operation for overflow */ - wstrCommandLine.MaximumLength += - (strArgument.Length + (bFirstArg ? 0 : 1) + (bQuoteArg ? 2 : 0)) * - sizeof(WCHAR); - - if(bFirstArg) - { - wstrCommandLine.Buffer = __malloc(wstrCommandLine.MaximumLength); - } - else - { - wstrCommandLine.Buffer = - __realloc(wstrCommandLine.Buffer, wstrCommandLine.MaximumLength); - } - - /* buffer tail */ - pwcBufferTail = - (PWCHAR)((ULONG)wstrCommandLine.Buffer + wstrCommandLine.Length); - - /* append the separator if the argument isn't the first */ - if(!bFirstArg) - { - *pwcBufferTail = L' '; - pwcBufferTail ++; - } - - /* append the opening quote if the argument contains spaces */ - if(bQuoteArg) - { - *pwcBufferTail = L'"'; - pwcBufferTail ++; - } - - mbstowcs(pwcBufferTail, strArgument.Buffer, strArgument.Length); - - /* append closing quote */ - if(bQuoteArg) - { - pwcBufferTail = (PWCHAR)((ULONG)pwcBufferTail + strArgument.Length * sizeof(WCHAR)); - *pwcBufferTail = L'"'; - } - - wstrCommandLine.Length = wstrCommandLine.MaximumLength; - } - } - - nErrCode = RtlCreateProcessParameters - ( - ProcessParameters, - ImageFile, - NULL, - &wstrEmpty, - &wstrCommandLine, - 0, - &wstrEmpty, - &wstrEmpty, - &wstrEmpty, - &wstrEmpty - ); - - /* standard input handle */ - fdDescriptor = __fdtable_entry_get(&ProcessData->FdTable, STDIN_FILENO); - - if(fdDescriptor != NULL) - (*ProcessParameters)->hStdInput = fdDescriptor->FileHandle; - - /* standard output handle */ - fdDescriptor = __fdtable_entry_get(&ProcessData->FdTable, STDOUT_FILENO); - - if(fdDescriptor != NULL) - (*ProcessParameters)->hStdOutput = fdDescriptor->FileHandle; - - /* standard error handle */ - fdDescriptor = __fdtable_entry_get(&ProcessData->FdTable, STDERR_FILENO); - - if(fdDescriptor != NULL) - (*ProcessParameters)->hStdError = fdDescriptor->FileHandle; - - /* POSIX+ and NT environments are incompatible, we set the environment to - nothing */ - (*ProcessParameters)->Environment = NULL; - -/* -typedef struct _RTL_USER_PROCESS_PARAMETERS { - ULONG AllocationSize; - ULONG Size; - ULONG Flags; - ULONG DebugFlags; - HANDLE hConsole; - ULONG ProcessGroup; - HANDLE hStdInput; - HANDLE hStdOutput; - HANDLE hStdError; - UNICODE_STRING CurrentDirectoryName; - HANDLE CurrentDirectoryHandle; - UNICODE_STRING DllPath; - UNICODE_STRING ImagePathName; - UNICODE_STRING CommandLine; - PWSTR Environment; - ULONG dwX; - ULONG dwY; - ULONG dwXSize; - ULONG dwYSize; - ULONG dwXCountChars; - ULONG dwYCountChars; - ULONG dwFillAttribute; - ULONG dwFlags; - ULONG wShowWindow; - UNICODE_STRING WindowTitle; - UNICODE_STRING DesktopInfo; - UNICODE_STRING ShellInfo; - UNICODE_STRING RuntimeInfo; -} RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS; - */ - (*ProcessParameters)->hConsole = (PVOID)-1; - (*ProcessParameters)->Flags = 0; - - return (STATUS_SUCCESS); -} - -/* serialize a process data block in a contiguous, page-aligned block, suitable - for transfer across processes */ -NTSTATUS -STDCALL -__PdxSerializeProcessData -( - IN __PPDX_PDATA ProcessData, - OUT __PPDX_SERIALIZED_PDATA *SerializedProcessData -) -{ - __PPDX_SERIALIZED_PDATA pspdProcessData = 0; - NTSTATUS nErrCode; - PBYTE pBufferTail; - ULONG ulAllocSize = sizeof(__PDX_SERIALIZED_PDATA) - 1; - size_t *pnArgLengths; - size_t *pnEnvVarsLengths; - int nEnvVarsCount; - int i; - - /* calculate buffer length */ - /* FIXME please! this is the most inefficient way to do it */ - - /* argv */ - INFO("serializing arguments\n"); - - if(ProcessData->ArgVect != 0) - { - pnArgLengths = __malloc(ProcessData->ArgCount * sizeof(size_t)); - - for(i = 0; i < ProcessData->ArgCount; i ++) - { - int nStrLen; - - if(ProcessData->ArgVect[i] == 0) - { - INFO("argument %d is NULL\n", i); - pnArgLengths[i] = 0; - continue; - } - - nStrLen = strlen(ProcessData->ArgVect[i]) + 1; - ulAllocSize += nStrLen; - pnArgLengths[i] = nStrLen; - - INFO - ( - "argument %d: \"%s\", length %d\n", - i, - ProcessData->ArgVect[i], - nStrLen - ); - } - - } - else - INFO("arguments vector is NULL\n"); - - /* environ */ - pnEnvVarsLengths = NULL; - nEnvVarsCount = 0; - - if(ProcessData->Environment == 0) - INFO("pointer to environ is NULL\n"); - else if((ProcessData->Environment) == 0) - INFO("environ is NULL\n"); - else - { - for(i = 0; *(ProcessData->Environment)[i] != 0; i++) - { - int nStrLen = strlen(*(ProcessData->Environment)[i]) + 1; - ulAllocSize += nStrLen; - - nEnvVarsCount ++; - __realloc(pnEnvVarsLengths, nEnvVarsCount * sizeof(size_t)); - pnEnvVarsLengths[i] = nStrLen; - - INFO - ( - "environment variable %d: \"%s\", length %d\n", - i, - *(ProcessData->Environment)[i], - nStrLen - ); - } - - INFO("(%d environment variables were found)\n", nEnvVarsCount); - } - - /* current directory */ - ulAllocSize += ProcessData->CurDir.Length; - - INFO - ( - "current directory: \"%.*ls\"\n", - ProcessData->CurDir.Length / sizeof(WCHAR), - ProcessData->CurDir.Buffer - ); - - /* root directory */ - ulAllocSize += ProcessData->RootPath.Length; - - INFO - ( - "root directory: \"%.*ls\"\n", - ProcessData->RootPath.Length / sizeof(WCHAR), - ProcessData->RootPath.Buffer - ); - - /* file descriptors table */ - ulAllocSize += sizeof(__fildes_t) * ProcessData->FdTable.AllocatedDescriptors; - INFO - ( - "descriptors table contains %d allocated descriptors, combined length %d\n", - ProcessData->FdTable.AllocatedDescriptors, - sizeof(__fildes_t) * ProcessData->FdTable.AllocatedDescriptors - ); - - /* extra descriptors data */ - for(i = 0; ProcessData->FdTable.AllocatedDescriptors; i ++) - if(ProcessData->FdTable.Descriptors[i].ExtraData != NULL) - { - ulAllocSize += ProcessData->FdTable.Descriptors[i].ExtraDataSize; - - INFO - ( - "descriptor %d has %d bytes of associated data\n", - i, - ProcessData->FdTable.Descriptors[i].ExtraDataSize - ); - - } - - /* allocate return block */ - INFO("about to allocate %d bytes\n", ulAllocSize); - - nErrCode = NtAllocateVirtualMemory - ( - NtCurrentProcess(), - (PVOID *)&pspdProcessData, - 0, - &ulAllocSize, - MEM_COMMIT, - PAGE_READWRITE - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtAllocateVirtualMemory() failed with status 0x%08X\n", nErrCode); - __free(pnArgLengths); - __free(pnEnvVarsLengths); - *SerializedProcessData = 0; - return nErrCode; - } - - INFO("%d bytes actually allocated\n", ulAllocSize); - pspdProcessData->AllocSize = ulAllocSize; - - /* copy data */ - /* static data */ - memcpy(&pspdProcessData->ProcessData, ProcessData, sizeof(__PDX_PDATA)); - - /* buffers */ - pBufferTail = &pspdProcessData->Buffer[0]; - INFO("buffer tail begins at 0x%08X\n", pBufferTail); - - /* argv */ - pspdProcessData->ProcessData.ArgVect = 0; - - for(i = 0; i < ProcessData->ArgCount; i ++) - { - INFO - ( - "copying %d bytes of argument %d (\"%s\") to 0x%08X\n", - pnArgLengths[i], - i, - ProcessData->ArgVect[i], - pBufferTail - ); - - strncpy(pBufferTail, ProcessData->ArgVect[i], pnArgLengths[i]); - pBufferTail += pnArgLengths[i]; - - INFO - ( - "buffer tail increased by %d bytes, new tail at 0x%08X\n", - pnArgLengths[i], - pBufferTail - ); - - } - - __free(pnArgLengths); - - /* environ */ - pspdProcessData->ProcessData.Environment = (char ***)nEnvVarsCount; - - for(i = 0; i < nEnvVarsCount; i ++) - { - INFO - ( - "copying %d bytes of environment variable %d (\"%s\") to 0x%08X\n", - pnEnvVarsLengths[i], - i, - ProcessData->Environment[i], - pBufferTail - ); - - strncpy(pBufferTail, *ProcessData->Environment[i], pnEnvVarsLengths[i]); - pBufferTail += pnEnvVarsLengths[i]; - - INFO - ( - "buffer tail increased by %d bytes, new tail at 0x%08X\n", - pnEnvVarsLengths[i], - pBufferTail - ); - } - - __free(pnEnvVarsLengths); - - /* current directory */ - INFO - ( - "copying %d bytes of current directory (\"%.*ls\") to 0x%08X\n", - ProcessData->CurDir.Length, - ProcessData->CurDir.Length / sizeof(WCHAR), - ProcessData->CurDir.Buffer, - pBufferTail - ); - - memcpy(pBufferTail, ProcessData->CurDir.Buffer, ProcessData->CurDir.Length); - pBufferTail += ProcessData->CurDir.Length; - - INFO - ( - "buffer tail increased by %d bytes, new tail at 0x%08X\n", - ProcessData->CurDir.Length, - pBufferTail - ); - - /* root directory */ - INFO - ( - "copying %d bytes of root directory (\"%.*ls\") to 0x%08X\n", - ProcessData->RootPath.Length, - ProcessData->RootPath.Length / sizeof(WCHAR), - ProcessData->RootPath.Buffer, - pBufferTail - ); - - memcpy - ( - pBufferTail, - ProcessData->RootPath.Buffer, - ProcessData->RootPath.Length - ); - - pBufferTail += ProcessData->RootPath.Length; - - INFO - ( - "buffer tail increased by %d bytes, new tail at 0x%08X\n", - ProcessData->RootPath.Length, - pBufferTail - ); - - /* file descriptors table */ - /* save the offset to the descriptors array */ - pspdProcessData->ProcessData.FdTable.Descriptors = - (PVOID)((ULONG)pBufferTail - (ULONG)pspdProcessData); - - INFO - ( - "descriptors table contains %d allocated descriptors, combined length %d\n", - ProcessData->FdTable.AllocatedDescriptors, - sizeof(__fildes_t) * ProcessData->FdTable.AllocatedDescriptors - ); - - memcpy - ( - pBufferTail, - ProcessData->FdTable.Descriptors, - sizeof(__fildes_t) * ProcessData->FdTable.AllocatedDescriptors - ); - - pBufferTail += - sizeof(__fildes_t) * ProcessData->FdTable.AllocatedDescriptors; - - INFO - ( - "buffer tail increased by %d bytes, new tail at 0x%08X\n", - sizeof(__fildes_t) * ProcessData->FdTable.AllocatedDescriptors, - pBufferTail - ); - - /* extra descriptors data */ - for(i = 0; ProcessData->FdTable.AllocatedDescriptors; i ++) - if(ProcessData->FdTable.Descriptors[i].ExtraData != 0) - { - INFO - ( - "descriptor %d has %d bytes of associated data\n", - i, - ProcessData->FdTable.Descriptors[i].ExtraDataSize - ); - - memcpy - ( - pBufferTail, - ProcessData->FdTable.Descriptors[i].ExtraData, - ProcessData->FdTable.Descriptors[i].ExtraDataSize - ); - - pBufferTail += ProcessData->FdTable.Descriptors[i].ExtraDataSize; - - INFO - ( - "buffer tail increased by %d bytes, new tail at 0x%08X\n", - ProcessData->FdTable.Descriptors[i].ExtraDataSize, - pBufferTail - ); - } - - /* success */ - *SerializedProcessData = pspdProcessData; - - return (STATUS_SUCCESS); -} - -/* unserialize a process data block. Dynamic data will be moved into the default - heap */ -NTSTATUS -STDCALL -__PdxUnserializeProcessData -( - IN OUT __PPDX_SERIALIZED_PDATA *SerializedProcessData, - OUT __PPDX_PDATA *ProcessData OPTIONAL -) -{ - int i; - int nEnvVarsCount; - __PPDX_PDATA ppdReturnBlock; - BOOLEAN bInPlace; - PBYTE pBufferTail; - - /* no return buffer */ - if(NULL == ProcessData) - { - /* perform an in-place conversion */ - ppdReturnBlock = &((*SerializedProcessData)->ProcessData); - bInPlace = TRUE; - } - else - { - /* use the provided return buffer */ - ppdReturnBlock = *ProcessData; - bInPlace = FALSE; - } - - /* non in-place conversion: copy static data */ - if(!bInPlace) - { - memcpy(ppdReturnBlock, *SerializedProcessData, sizeof(*ppdReturnBlock)); - } - - pBufferTail = &((*SerializedProcessData)->Buffer[0]); - - /* allocate arguments array */ - ppdReturnBlock->ArgVect = __malloc(ppdReturnBlock->ArgCount * sizeof(char *)); - - /* duplicate arguments */ - for(i = 0; i < ppdReturnBlock->ArgCount; i ++) - { - int nStrLen = strlen(pBufferTail) + 1; - ppdReturnBlock->ArgVect[i] = __malloc(nStrLen); - strncpy(ppdReturnBlock->ArgVect[i], pBufferTail, nStrLen); - pBufferTail += nStrLen; - } - - /* allocate environment array */ - nEnvVarsCount = ppdReturnBlock->Environment; - ppdReturnBlock->Environment = __malloc(nEnvVarsCount * sizeof(char *)); - - /* duplicate environment */ - for(i = 0; i < nEnvVarsCount; i ++) - { - int nStrLen = strlen(pBufferTail) + 1; - ppdReturnBlock->Environment[i] = __malloc(nStrLen); - strncpy(ppdReturnBlock->Environment[i], pBufferTail, nStrLen); - pBufferTail += nStrLen; - } - - /* static buffer for path conversions */ - ppdReturnBlock->NativePathBuffer.Buffer = __malloc(0xFFFF); - ppdReturnBlock->NativePathBuffer.Length = 0; - ppdReturnBlock->NativePathBuffer.MaximumLength = 0xFFFF; - - /* current directory */ - ppdReturnBlock->CurDir.Buffer = __malloc(ppdReturnBlock->CurDir.Length); - ppdReturnBlock->CurDir.MaximumLength = ppdReturnBlock->CurDir.Length; - memcpy(ppdReturnBlock->CurDir.Buffer, pBufferTail, ppdReturnBlock->CurDir.Length); - pBufferTail += ppdReturnBlock->CurDir.Length; - - /* root directory */ - ppdReturnBlock->RootPath.Buffer = __malloc(ppdReturnBlock->RootPath.Length); - ppdReturnBlock->RootPath.MaximumLength = ppdReturnBlock->RootPath.Length; - memcpy(ppdReturnBlock->RootPath.Buffer, pBufferTail, ppdReturnBlock->RootPath.Length); - pBufferTail += ppdReturnBlock->RootPath.Length; - - /* file descriptors table */ - ppdReturnBlock->FdTable.Descriptors = __malloc(ppdReturnBlock->FdTable.AllocatedDescriptors * sizeof(__fildes_t)); - memcpy(ppdReturnBlock->FdTable.Descriptors, pBufferTail, ppdReturnBlock->FdTable.AllocatedDescriptors * sizeof(__fildes_t)); - pBufferTail += ppdReturnBlock->FdTable.AllocatedDescriptors * sizeof(__fildes_t); - - for(i = 0; i < ppdReturnBlock->FdTable.AllocatedDescriptors; i ++) - { - if(ppdReturnBlock->FdTable.Descriptors[i].ExtraData != 0) - { - ppdReturnBlock->FdTable.Descriptors[i].ExtraData = __malloc(ppdReturnBlock->FdTable.Descriptors[i].ExtraDataSize); - memcpy(ppdReturnBlock->FdTable.Descriptors[i].ExtraData, pBufferTail, ppdReturnBlock->FdTable.Descriptors[i].ExtraDataSize); - pBufferTail += ppdReturnBlock->FdTable.Descriptors[i].ExtraDataSize; - } - } -} - -/* EOF */ - diff --git a/posix/lib/psxdll/misc/safeobj.c b/posix/lib/psxdll/misc/safeobj.c deleted file mode 100644 index 8c4193648fd..00000000000 --- a/posix/lib/psxdll/misc/safeobj.c +++ /dev/null @@ -1,45 +0,0 @@ -/* $Id: safeobj.c,v 1.4 2002/10/29 04:45:33 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/misc/safeobj.c - * PURPOSE: safe checking of user-provided objects - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 09/01/2002: Created - */ - -#include -#include - -int __safeobj_validate(void *obj, __magic_t refsignature) -{ - if(obj == 0) - return (0); - else - { - /* cast the object to a magic number */ - __magic_t mSignature = *((__magic_t *)obj); - - ERRIF - ( - mSignature != refsignature, - "invalid object at %X: signature is \"%c%c%c%c\", should be \"%c%c%c%c\"", - obj, - MAGIC_DECOMPOSE(refsignature), - MAGIC_DECOMPOSE(mSignature) - ); - - if(mSignature == refsignature) - /* signatures match: ok */ - return (-1); - else - /* signatures mismatch: fail */ - return (0); - - } -} - -/* EOF */ - diff --git a/posix/lib/psxdll/misc/spawn.c b/posix/lib/psxdll/misc/spawn.c deleted file mode 100644 index 4ac8e6c4ade..00000000000 --- a/posix/lib/psxdll/misc/spawn.c +++ /dev/null @@ -1,630 +0,0 @@ -/* $Id: spawn.c,v 1.9 2002/12/26 18:14:36 robd Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/misc/spawn.c - * PURPOSE: Create the first POSIX+ process - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 25/02/2002: Created - */ - -/* - * NOTE by KJK::Hyperion: - * The __PdxSpawnPosixProcess() call solves the chicken-egg dilemma of - * creating the first POSIX+ process in a group without the ability to - * fork+exec (for example from inside a Win32 process). Processes created by - * __PdxSpawnPosixProcess() will *not* inherit anything from the parent, not - * even handles: all creation parameters have to be specified explicitely - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -typedef struct _PORT_MESSAGE { - USHORT DataSize; - USHORT MessageSize; - USHORT MessageType; - USHORT VirtualRangesOffset; - CLIENT_ID ClientId; - ULONG MessageId; - ULONG SectionSize; - // UCHAR Data[]; -} PORT_MESSAGE, *PPORT_MESSAGE; - -NTSTATUS STDCALL CsrClientCallServer( - IN PVOID Message, - IN PVOID Unknown, - IN ULONG Opcode, - IN ULONG Size -); - -NTSTATUS STDCALL __PdxSpawnPosixProcess -( - OUT PHANDLE ProcessHandle, - OUT PHANDLE ThreadHandle, - IN POBJECT_ATTRIBUTES FileObjectAttributes, - IN POBJECT_ATTRIBUTES ProcessObjectAttributes, - IN HANDLE InheritFromProcessHandle, - IN __PPDX_PDATA ProcessData -) -{ - struct CSRSS_MESSAGE { - ULONG Unknown1; - ULONG Opcode; - ULONG Status; - ULONG Unknown2; - }; - - struct __tagcsrmsg{ - PORT_MESSAGE PortMessage; - struct CSRSS_MESSAGE CsrssMessage; - PROCESS_INFORMATION ProcessInformation; - CLIENT_ID Debugger; - ULONG CreationFlags; - ULONG VdmInfo[2]; - } csrmsg; - - __PPDX_SERIALIZED_PDATA pspdProcessData; - IO_STATUS_BLOCK isbStatus; - PROCESS_BASIC_INFORMATION pbiProcessInfo; - INITIAL_TEB itInitialTeb; - PRTL_USER_PROCESS_PARAMETERS pppProcessParameters; - SECTION_IMAGE_INFORMATION siiInfo; - CONTEXT ctxThreadContext; - CLIENT_ID ciClientId; - NTSTATUS nErrCode; - HANDLE hExeFile; - HANDLE hExeImage; - HANDLE hProcess; - PVOID pPdataBuffer = 0; - PVOID pParamsBuffer = 0; - ULONG nDestBufferSize; - ULONG nCurFilDesOffset; - ULONG nVirtualSize; - ULONG nCommitSize; - PVOID pCommitBottom; - ULONG nOldProtect; - int i; - - /* STEP 1: map executable image in memory */ - /* 1.1: open the file for execution */ - nErrCode = NtOpenFile - ( - &hExeFile, - SYNCHRONIZE | FILE_EXECUTE, - FileObjectAttributes, - &isbStatus, - FILE_SHARE_READ | FILE_SHARE_DELETE, - FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtOpenFile() failed with status 0x%08X\n", nErrCode); - return (nErrCode); - } - - /* 1.2: create an image section for the file */ - nErrCode = NtCreateSection - ( - &hExeImage, - SECTION_ALL_ACCESS, - NULL, - 0, - PAGE_EXECUTE, - SEC_IMAGE, - hExeFile - ); - - /* close file handle (not needed anymore) */ - NtClose(hExeFile); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtCreateSection() failed with status 0x%08X\n", nErrCode); - return (nErrCode); - } - - /* 1.3: get section image information */ - nErrCode = NtQuerySection - ( - hExeImage, - SectionImageInformation, - &siiInfo, - sizeof(siiInfo), - NULL - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtCreateSection() failed with status 0x%08X\n", nErrCode); - NtClose(hExeImage); - return (nErrCode); - } - - /* STEP 2: create process */ - nErrCode = NtCreateProcess - ( - &hProcess, - PROCESS_ALL_ACCESS, - ProcessObjectAttributes, - InheritFromProcessHandle, - FALSE, - hExeImage, - NULL, - NULL - ); - - /* close image handle (not needed anymore) */ - NtClose(hExeImage); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtCreateProcess() failed with status 0x%08X\n", nErrCode); - return (nErrCode); - } - - /* STEP 3: write process environment and process parameters */ - /* 3.1: convert process data into process parameters */ - __PdxProcessDataToProcessParameters - ( - &pppProcessParameters, - ProcessData, - FileObjectAttributes->ObjectName - ); - - /* 3.2: serialize the process data for transfer */ - /* FIXME: the serialized data can be allocated and written directly in the - destination process */ - __PdxSerializeProcessData(ProcessData, &pspdProcessData); - - /* 3.2.1: adjust some fields */ - pspdProcessData->ProcessData.Spawned = TRUE; - - /* 3.3: allocate memory in the destination process */ - /* 3.3.1: process data */ - nDestBufferSize = pspdProcessData->AllocSize; - - nErrCode = NtAllocateVirtualMemory - ( - hProcess, - &pPdataBuffer, - 0, - &nDestBufferSize, - MEM_COMMIT, - PAGE_READWRITE - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtAllocateVirtualMemory() failed with status 0x%08X\n", nErrCode); - goto undoPData; - } - - /* 3.3.2: process parameters */ - nDestBufferSize = pppProcessParameters->Size; - - nErrCode = NtAllocateVirtualMemory - ( - hProcess, - &pParamsBuffer, - 0, - &nDestBufferSize, - MEM_COMMIT, - PAGE_READWRITE - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtAllocateVirtualMemory() failed with status 0x%08X\n", nErrCode); - goto undoPData; - } - - /* 3.4: get pointer to the PEB */ - nErrCode = NtQueryInformationProcess - ( - hProcess, - ProcessBasicInformation, - &pbiProcessInfo, - sizeof(pbiProcessInfo), - NULL - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtQueryInformationProcess() failed with status 0x%08X\n", nErrCode); - goto undoPData; - } - - /* 3.5: write pointers in the PEB */ - /* 3.5.1: process data */ - nErrCode = NtWriteVirtualMemory - ( - hProcess, - (PVOID)((ULONG)pbiProcessInfo.PebBaseAddress + offsetof(PEB, SubSystemData)), - &pPdataBuffer, - sizeof(PVOID), - NULL - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtWriteVirtualMemory() failed with status 0x%08X\n", nErrCode); - goto undoPData; - } - - /* 3.5.2: process parameters */ - nErrCode = NtWriteVirtualMemory - ( - hProcess, - (PVOID)((ULONG)pbiProcessInfo.PebBaseAddress + offsetof(PEB, ProcessParameters)), - &pParamsBuffer, - sizeof(PVOID), - NULL - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtWriteVirtualMemory() failed with status 0x%08X\n", nErrCode); - goto undoPData; - } - - /* 3.6: write data */ - /* 3.6.1: process data */ - nErrCode = NtWriteVirtualMemory - ( - hProcess, - pPdataBuffer, - pspdProcessData, - pspdProcessData->AllocSize, - NULL - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtWriteVirtualMemory() failed with status 0x%08X\n", nErrCode); - goto undoPData; - } - - /* 3.6.2 process parameters */ - nErrCode = NtWriteVirtualMemory - ( - hProcess, - pParamsBuffer, - pppProcessParameters, - pppProcessParameters->Size, - NULL - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtWriteVirtualMemory() failed with status 0x%08X\n", nErrCode); - goto undoPData; - } - -undoPData: - /* deallocate the temporary data block in the current process */ - NtFreeVirtualMemory - ( - NtCurrentProcess(), - (PVOID *)&pspdProcessData, - 0, - MEM_RELEASE - ); - - /* destroy process parameters */ - RtlDestroyProcessParameters(pppProcessParameters); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - goto failProcess; - - /* STEP 4: duplicate handles */ - /* 4.1: handles in the structure itself */ - /* 4.1.1: root directory */ - nErrCode = NtDuplicateObject - ( - NtCurrentProcess(), - ProcessData->RootHandle, - hProcess, - (PHANDLE)((ULONG)pPdataBuffer + offsetof(__PDX_PDATA, RootHandle)), - 0, - 0, - DUPLICATE_SAME_ACCESS | 4 /* | DUPLICATE_SAME_ATTRIBUTES */ /* FIXME */ - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtDuplicateObject() failed with status 0x%08X\n", nErrCode); - goto failProcess; - } - - /* 4.2: file descriptors table */ - for - ( - /* pspdProcessData->ProcessData.FdTable.Descriptors contains the offset to - the descriptors array inside pspdProcessData->Buffer[], that is to the - first element of the array */ - i = 0, - nCurFilDesOffset = (ULONG)pspdProcessData->ProcessData.FdTable.Descriptors; - /* iterate through all allocated descriptors */ - i < ProcessData->FdTable.AllocatedDescriptors; - /* at every step, go on to next input descriptor, and increase the offset to - the next output descriptor */ - i ++, nCurFilDesOffset += sizeof(__fildes_t) - ) - /* FIXME? check the table's bitmap instead? */ - if(ProcessData->FdTable.Descriptors[i].FileHandle != NULL) - { - /* duplicate the source handle, ProcessData->FdTable.Descriptors[i], from - the current process into the process identified by hProcess, at an - address calculated by adding to the serialized data block base address: - - the offset to the current descriptor - - the offset to the handle field of the descriptor */ - nErrCode = NtDuplicateObject - ( - NtCurrentProcess(), - ProcessData->FdTable.Descriptors[i].FileHandle, - hProcess, - (PHANDLE)( - (ULONG)pPdataBuffer + nCurFilDesOffset + offsetof(__fildes_t, FileHandle) - ), - 0, - 0, - DUPLICATE_SAME_ACCESS | 4 /* | DUPLICATE_SAME_ATTRIBUTES */ /* FIXME */ - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtDuplicateObject() failed with status 0x%08X\n", nErrCode); - goto failProcess; - } - - /* duplicate standard handles */ - /* standard input */ - if(i == STDIN_FILENO) - { - nErrCode = NtDuplicateObject - ( - NtCurrentProcess(), - ProcessData->FdTable.Descriptors[i].FileHandle, - hProcess, - (PHANDLE)((ULONG)pParamsBuffer + offsetof(RTL_USER_PROCESS_PARAMETERS, hStdInput)), - 0, - 0, - DUPLICATE_SAME_ACCESS | 4 /* | DUPLICATE_SAME_ATTRIBUTES */ /* FIXME */ - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtDuplicateObject() failed with status 0x%08X\n", nErrCode); - goto failProcess; - } - } - /* standard output */ - else if(i == STDOUT_FILENO) - { - nErrCode = NtDuplicateObject - ( - NtCurrentProcess(), - ProcessData->FdTable.Descriptors[i].FileHandle, - hProcess, - (PHANDLE)((ULONG)pParamsBuffer + offsetof(RTL_USER_PROCESS_PARAMETERS, hStdOutput)), - 0, - 0, - DUPLICATE_SAME_ACCESS | 4 /* | DUPLICATE_SAME_ATTRIBUTES */ /* FIXME */ - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtDuplicateObject() failed with status 0x%08X\n", nErrCode); - goto failProcess; - } - } - /* standard error */ - else if(i == STDERR_FILENO) - { - nErrCode = NtDuplicateObject - ( - NtCurrentProcess(), - ProcessData->FdTable.Descriptors[i].FileHandle, - hProcess, - (PHANDLE)((ULONG)pParamsBuffer + offsetof(RTL_USER_PROCESS_PARAMETERS, hStdError)), - 0, - 0, - DUPLICATE_SAME_ACCESS | 4 /* | DUPLICATE_SAME_ATTRIBUTES */ /* FIXME */ - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtDuplicateObject() failed with status 0x%08X\n", nErrCode); - goto failProcess; - } - } - } - - /* STEP 5: create first thread */ - /* 5.1: set up the stack */ - itInitialTeb.StackAllocate = NULL; - nVirtualSize = 0x100000; - nCommitSize = 0x100000 - PAGE_SIZE; - - /* 5.1.1: reserve the stack */ - nErrCode = NtAllocateVirtualMemory - ( - hProcess, - &itInitialTeb.StackAllocate, - 0, - &nVirtualSize, - MEM_RESERVE, - PAGE_READWRITE - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtAllocateVirtualMemory() failed with status 0x%08X\n", nErrCode); - goto failProcess; - } - - itInitialTeb.StackBase = - (PVOID)((ULONG)itInitialTeb.StackAllocate + nVirtualSize); - - itInitialTeb.StackLimit = - (PVOID)((ULONG)itInitialTeb.StackBase - nCommitSize); - - /* 5.1.2: commit the stack */ - nVirtualSize = nCommitSize + PAGE_SIZE; - pCommitBottom = - (PVOID)((ULONG)itInitialTeb.StackBase - nVirtualSize); - - nErrCode = NtAllocateVirtualMemory - ( - hProcess, - &pCommitBottom, - 0, - &nVirtualSize, - MEM_COMMIT, - PAGE_READWRITE - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtAllocateVirtualMemory() failed with status 0x%08X\n", nErrCode); - goto failProcess; - } - - /* 5.1.3: set up the guard page */ - nVirtualSize = PAGE_SIZE; - - nErrCode = NtProtectVirtualMemory - ( - hProcess, - &pCommitBottom, - &nVirtualSize, - PAGE_GUARD | PAGE_READWRITE, - &nOldProtect - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtProtectVirtualMemory() failed with status 0x%08X\n", nErrCode); - goto failProcess; - } - - /* 5.2: initialize the thread context */ - memset(&ctxThreadContext, 0, sizeof(ctxThreadContext)); - - ctxThreadContext.Eip = (ULONG)siiInfo.EntryPoint; - ctxThreadContext.SegGs = USER_DS; - ctxThreadContext.SegFs = USER_DS; - ctxThreadContext.SegEs = USER_DS; - ctxThreadContext.SegDs = USER_DS; - ctxThreadContext.SegCs = USER_CS; - ctxThreadContext.SegSs = USER_DS; - ctxThreadContext.Esp = (ULONG)itInitialTeb.StackBase - 4; - ctxThreadContext.EFlags = (1 << 1) + (1 << 9); - - /* 5.3: create the thread object */ - nErrCode = NtCreateThread - ( - ThreadHandle, - THREAD_ALL_ACCESS, - NULL, - hProcess, - &ciClientId, - &ctxThreadContext, - &itInitialTeb, - TRUE /* FIXME: the thread is only created in suspended state for easier - debugging. This behavior is subject to future changes */ - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtCreateThread() failed with status 0x%08X\n", nErrCode); - goto failProcess; - } - - /* 6: register the process with the Win32 subsystem (temporary code for - debugging purposes) */ - - memset(&csrmsg, 0, sizeof(csrmsg)); - - //csrmsg.PortMessage = {0}; - //csrmsg.CsrssMessage = {0}; - csrmsg.ProcessInformation.hProcess = hProcess; - csrmsg.ProcessInformation.hThread = *ThreadHandle; - csrmsg.ProcessInformation.dwProcessId = (DWORD)ciClientId.UniqueProcess; - csrmsg.ProcessInformation.dwThreadId = (DWORD)ciClientId.UniqueThread; - //csrmsg.Debugger = {0}; - //csrmsg.CreationFlags = 0; - //csrmsg.VdmInfo = {0}; - - nErrCode = CsrClientCallServer(&csrmsg, 0, 0x10000, 0x24); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("CsrClientCallServer() failed with status 0x%08X\n", nErrCode); - goto failProcess; - } - - nErrCode = NtResumeThread(*ThreadHandle, NULL); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtResumeThread() failed with status 0x%08X\n", nErrCode); - goto failProcess; - } - - /* success */ - return (STATUS_SUCCESS); - - /* failure */ -failProcess: - NtTerminateProcess - ( - hProcess, - nErrCode - ); - - return (nErrCode); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/misc/template.c b/posix/lib/psxdll/misc/template.c deleted file mode 100644 index 42acc5744ff..00000000000 --- a/posix/lib/psxdll/misc/template.c +++ /dev/null @@ -1,25 +0,0 @@ -/* $Id: template.c,v 1.5 2002/10/29 04:45:35 rex Exp $ - How to create a new source file from this template: - - copy the template in the new file (never edit this file directly, unless - that's what you want) - - search for the string "EDITME" in the file, and follow the instructions - - remove this comment block, all blocks containing DELETEME, and all EDITME - instructions - - save your file, and Have Fun! (TM) - */ -/* $*Id*$ (EDITME: remove asterisks from "$*Id*$") - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: (EDITME: put real path of the file here) - * PURPOSE: (EDITME: put a very syntetic description of the file here) - * PROGRAMMER: John Doe (EDITME: your name and e-mail go here) - * UPDATE HISTORY: - * (EDITME: put here the creation date): Created - */ - -/* EDITME: your code here */ - -/* EOF */ - diff --git a/posix/lib/psxdll/misc/tls.c b/posix/lib/psxdll/misc/tls.c deleted file mode 100644 index 2ea238c9370..00000000000 --- a/posix/lib/psxdll/misc/tls.c +++ /dev/null @@ -1,89 +0,0 @@ -/* $Id: tls.c,v 1.3 2002/10/29 04:45:35 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/misc/tls.c - * PURPOSE: Thread local storage - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 30/04/2002: Created - */ - -#include -#include -#include -#include - -__tls_index_t __tls_alloc() -{ - ULONG nIndex; - - RtlAcquirePebLock(); - - nIndex = RtlFindClearBitsAndSet(NtCurrentPeb()->TlsBitmap, 1, 0); - - if (nIndex == (ULONG)-1) - errno = ENOMEM; - else - NtCurrentTeb()->TlsSlots[nIndex] = 0; - - RtlReleasePebLock(); - - return(nIndex); - -} - -int __tls_free(__tls_index_t index) -{ - if (index >= TLS_MINIMUM_AVAILABLE) - { - errno = ERANGE; - return (-1); - } - - RtlAcquirePebLock(); - - if(RtlAreBitsSet(NtCurrentPeb()->TlsBitmap, index, 1)) - { - NtSetInformationThread - ( - NtCurrentThread(), - ThreadZeroTlsCell, - &index, - sizeof(DWORD) - ); - - RtlClearBits(NtCurrentPeb()->TlsBitmap, index, 1); - } - - RtlReleasePebLock(); - - return (0); -} - -void * __tls_get_val(__tls_index_t index) -{ - if(index >= TLS_MINIMUM_AVAILABLE) - { - errno = ERANGE; - return (0); - } - - return (NtCurrentTeb()->TlsSlots[index]); -} - -int __tls_put_val(__tls_index_t index, void * data) -{ - if(index >= TLS_MINIMUM_AVAILABLE) - { - errno = ERANGE; - return (-1); - } - - NtCurrentTeb()->TlsSlots[index] = data; - return (0); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/psxdll.def b/posix/lib/psxdll/psxdll.def deleted file mode 100644 index b40e1208b3c..00000000000 --- a/posix/lib/psxdll/psxdll.def +++ /dev/null @@ -1,229 +0,0 @@ -; $Id: psxdll.def,v 1.11 2003/08/22 13:55:15 ea Exp $ -; -; ReactOS POSIX+ Client Library -; - -LIBRARY PSXDLL.DLL -EXPORTS - -;ctype -isalnum -isalpha -iscntrl -isdigit -isgraph -islower -isprint -ispunct -isspace -isupper -iswalpha -iswctype -iswdigit -iswlower -iswspace -iswxdigit -isxdigit -tolower -toupper -towlower -towupper - -;dirent -opendir -readdir -closedir - -;dlfcn -dlopen -dlclose -dlsym -dlerror - -;errno -__PdxGetThreadErrNum - -;fcntl -open -creat -fcntl - -;libgen -basename - -;math -atan -ceil -cos -fabs -floor -log -pow -sin -sqrt -tan - -;misc -;misc/fdtable -__fdtable_init -__fdtable_free -__fdtable_entry_nextavail -__fdtable_entry_add -__fdtable_entry_remove -__fdtable_entry_get -;misc/heap -;for Microsoft POSIX and Interix compatibility -GetProcessHeap@0 -HeapAlloc -HeapFree -HeapReAlloc -HeapSize -;misc/init -__PdxInitializeData@8 -;misc/path -__PdxPosixPathGetNextComponent_A -__PdxPosixPathGetNextComponent_U -__PdxPosixPathResolve_A -__PdxPosixPathResolve_U -__PdxPosixPathNameToNtPathName -;misc/safeobj -__safeobj_validate -;misc/spawn -__PdxSpawnPosixProcess@24 - -;pthread -pthread_create -pthread_exit -pthread_join -pthread_mutex_destroy -pthread_mutex_init -pthread_mutex_lock -pthread_mutex_trylock -pthread_mutex_unlock -pthread_mutex_getprioceiling -pthread_mutex_setprioceiling -pthread_mutexattr_destroy -pthread_mutexattr_getpshared -pthread_mutexattr_init -pthread_mutexattr_setpshared -pthread_mutexattr_gettype -pthread_mutexattr_settype -pthread_mutexattr_getprioceiling -pthread_mutexattr_getprotocol -pthread_mutexattr_setprioceiling -pthread_mutexattr_setprotocol - -;sched -sched_yield - -;signal -pthread_kill -raise - -;stdio -;temporary forward exports, soon to be changed -printf -gets - -;stdlib -abs -abort -atoi -atol -malloc -mbstowcs -realloc -free -calloc -exit -;FIXME: should the two calls be distinct? -_exit - -;string -;forward-exports to NTDLL -memchr -memcmp -memcpy -memmove -memset -strcat -strchr -strcmp -strcpy -strcspn -strlen -strncat -strncmp -strncpy -strpbrk -strrchr -strspn -strstr -;implemented internally -strdup - -;sys/stat -chmod -fchmod -fstat -lstat -mkdir -mkfifo -mknod -stat -umask - -;sys/utsname -uname - -;unistd -access -close -dup -dup2 -fork -getcwd -getpid -getppid -pread -read -sleep -write - -;wchar -;forward-exports to NTDLL -wcscat -wcschr -wcscmp -wcscpy -wcscspn -wcslen -wcsncat -wcsncmp -wcsncpy -wcspbrk -wcsrchr -wcsspn -wcsstr -wcstol -wcstombs -wcstoul -;implemented internally - -;others (FIXME: cathegorize these calls) -RtlAnsiCharToUnicodeChar -RtlFillMemory -RtlMoveMemory -RtlMultiByteToUnicodeN -RtlNtStatusToPsxErrno -RtlUnicodeToMultiByteN -RtlUnicodeToMultiByteSize -RtlUnwind -RtlUpcaseUnicodeChar -RtlUpcaseUnicodeToMultiByteN -RtlZeroMemory - -;WARNING: PRELIMINARY CODE FOR DEBUGGING PURPOSES ONLY - DO NOT CHANGE -__PdxGetProcessData - -;EOF diff --git a/posix/lib/psxdll/psxdll.edf b/posix/lib/psxdll/psxdll.edf deleted file mode 100644 index f13da80fc1b..00000000000 --- a/posix/lib/psxdll/psxdll.edf +++ /dev/null @@ -1,229 +0,0 @@ -; $Id: psxdll.edf,v 1.10 2003/08/22 13:55:15 ea Exp $ -; -; ReactOS POSIX+ Client Library -; - -LIBRARY PSXDLL.DLL -EXPORTS - -;ctype -isalnum=NTDLL.isalnum -isalpha=NTDLL.isalpha -iscntrl=NTDLL.iscntrl -isdigit=NTDLL.isdigit -isgraph=NTDLL.isgraph -islower=NTDLL.islower -isprint=NTDLL.isprint -ispunct=NTDLL.ispunct -isspace=NTDLL.isspace -isupper=NTDLL.isupper -iswalpha=NTDLL.iswalpha -iswctype=NTDLL.iswctype -iswdigit=NTDLL.iswdigit -iswlower=NTDLL.iswlower -iswspace=NTDLL.iswspace -iswxdigit=NTDLL.iswxdigit -isxdigit=NTDLL.isxdigit -tolower=NTDLL.tolower -toupper=NTDLL.toupper -towlower=NTDLL.towlower -towupper=NTDLL.towupper - -;dirent -opendir=opendir -readdir=readdir -closedir=closedir - -;dlfcn -dlopen=dlopen -dlclose=dlclose -dlsym=dlsym -dlerror=dlerror - -;errno -__PdxGetThreadErrNum=__PdxGetThreadErrNum - -;fcntl -open=open -creat=creat -fcntl=fcntl - -;libgen -basename=basename - -;math -atan=NTDLL.atan -ceil=NTDLL.ceil -cos=NTDLL.cos -fabs=NTDLL.fabs -floor=NTDLL.floor -log=NTDLL.log -pow=NTDLL.pow -sin=NTDLL.sin -sqrt=NTDLL.sqrt -tan=NTDLL.tan - -;misc -;misc/fdtable -__fdtable_init=__fdtable_init -__fdtable_free=__fdtable_free -__fdtable_entry_nextavail=__fdtable_entry_nextavail -__fdtable_entry_add=__fdtable_entry_add -__fdtable_entry_remove=__fdtable_entry_remove -__fdtable_entry_get=__fdtable_entry_get -;misc/heap -;for Microsoft POSIX and Interix compatibility -GetProcessHeap=GetProcessHeap@0 -HeapAlloc=NTDLL.RtlAllocateHeap -HeapFree=NTDLL.RtlFreeHeap -HeapReAlloc=NTDLL.ReAllocateHeap -HeapSize=NTDLL.RtlSizeHeap -;misc/init -__PdxInitializeData=__PdxInitializeData@8 -;misc/path -__PdxPosixPathGetNextComponent_A=__PdxPosixPathGetNextComponent_A -__PdxPosixPathGetNextComponent_U=__PdxPosixPathGetNextComponent_U -__PdxPosixPathResolve_A=__PdxPosixPathResolve_A -__PdxPosixPathResolve_U=__PdxPosixPathResolve_U -__PdxPosixPathNameToNtPathName=__PdxPosixPathNameToNtPathName -;misc/safeobj -__safeobj_validate=__safeobj_validate -;misc/spawn -__PdxSpawnPosixProcess=__PdxSpawnPosixProcess@24 - -;pthread -pthread_create=pthread_create -pthread_exit=pthread_exit -pthread_join=pthread_join -pthread_mutex_destroy=pthread_mutex_destroy -pthread_mutex_init=pthread_mutex_init -pthread_mutex_lock=pthread_mutex_lock -pthread_mutex_trylock=pthread_mutex_trylock -pthread_mutex_unlock=pthread_mutex_unlock -pthread_mutex_getprioceiling=pthread_mutex_getprioceiling -pthread_mutex_setprioceiling=pthread_mutex_setprioceiling -pthread_mutexattr_destroy=pthread_mutexattr_destroy -pthread_mutexattr_getpshared=pthread_mutexattr_getpshared -pthread_mutexattr_init=pthread_mutexattr_init -pthread_mutexattr_setpshared=pthread_mutexattr_setpshared -pthread_mutexattr_gettype=pthread_mutexattr_gettype -pthread_mutexattr_settype=pthread_mutexattr_settype -pthread_mutexattr_getprioceiling=pthread_mutexattr_getprioceiling -pthread_mutexattr_getprotocol=pthread_mutexattr_getprotocol -pthread_mutexattr_setprioceiling=pthread_mutexattr_setprioceiling -pthread_mutexattr_setprotocol=pthread_mutexattr_setprotocol - -;sched -sched_yield=sched_yield - -;signal -pthread_kill=pthread_kill -raise=raise - -;stdio -;temporary forward exports, soon to be changed -printf=MSVCRT.printf -gets=MSVCRT.gets - -;stdlib -abs=NTDLL.abs -abort=abort -atoi=NTDLL.atoi -atol=NTDLL.atol -malloc=malloc -mbstowcs=NTDLL.mbstowcs -realloc=realloc -free=free -calloc=calloc -exit=exit -;FIXME: should the two calls be distinct? -_exit=exit - -;string -;forward-exports to NTDLL -memchr=NTDLL.memchr -memcmp=NTDLL.memcmp -memcpy=NTDLL.memcpy -memmove=NTDLL.memmove -memset=NTDLL.memset -strcat=NTDLL.strcat -strchr=NTDLL.strchr -strcmp=NTDLL.strcmp -strcpy=NTDLL.strcpy -strcspn=NTDLL.strcspn -strlen=NTDLL.strlen -strncat=NTDLL.strncat -strncmp=NTDLL.strncmp -strncpy=NTDLL.strncpy -strpbrk=NTDLL.strpbrk -strrchr=NTDLL.strrchr -strspn=NTDLL.strspn -strstr=NTDLL.strstr -;implemented internally -strdup - -;sys/stat -chmod=chmod -fchmod=fchmod -fstat=fstat -lstat=lstat -mkdir=mkdir -mkfifo=mkfifo -mknod=mknod -stat=stat -umask=umask - -;sys/utsname -uname=uname - -;unistd -access=access -close=close -dup=dup -dup2=dup2 -fork=fork -getcwd=getcwd -getpid=getpid -getppid=getppid -pread=pread -read=read -sleep=sleep -write=write - -;wchar -;forward-exports to NTDLL -wcscat=NTDLL.wcscat -wcschr=NTDLL.wcschr -wcscmp=NTDLL.wcscmp -wcscpy=NTDLL.wcscpy -wcscspn=NTDLL.wcscspn -wcslen=NTDLL.wcslen -wcsncat=NTDLL.wcsncat -wcsncmp=NTDLL.wcsncmp -wcsncpy=NTDLL.wcsncpy -wcspbrk=NTDLL.wcspbrk -wcsrchr=NTDLL.wcsrchr -wcsspn=NTDLL.wcsspn -wcsstr=NTDLL.wcsstr -wcstol=NTDLL.wcstol -wcstombs=NTDLL.wcstombs -wcstoul=NTDLL.wcstoul -;implemented internally - -;others (FIXME: cathegorize these calls) -RtlAnsiCharToUnicodeChar=NTDLL.RtlAnsiCharToUnicodeChar -RtlFillMemory=NTDLL.RtlFillMemory -RtlMoveMemory=NTDLL.RtlMoveMemory -RtlMultiByteToUnicodeN=NTDLL.RtlMultiByteToUnicodeN -RtlNtStatusToPsxErrno=RtlNtStatusToPsxErrno@4 -RtlUnicodeToMultiByteN=NTDLL.RtlUnicodeToMultiByteN -RtlUnicodeToMultiByteSize=NTDLL.RtlUnicodeToMultiByteSize -RtlUnwind=NTDLL.RtlUnwind -RtlUpcaseUnicodeChar=NTDLL.RtlUpcaseUnicodeChar -RtlUpcaseUnicodeToMultiByteN=NTDLL.RtlUpcaseUnicodeToMultiByteN -RtlZeroMemory=NTDLL.RtlZeroMemory - -;WARNING: PRELIMINARY CODE FOR DEBUGGING PURPOSES ONLY - DO NOT CHANGE -__PdxGetProcessData=__PdxGetProcessData - -;EOF diff --git a/posix/lib/psxdll/psxdll.rc b/posix/lib/psxdll/psxdll.rc deleted file mode 100644 index 250039acbf2..00000000000 --- a/posix/lib/psxdll/psxdll.rc +++ /dev/null @@ -1,39 +0,0 @@ -/* $Id: psxdll.rc,v 1.5 2003/09/27 21:23:23 ea Exp $ -*/ -#include -#include - -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -VS_VERSION_INFO VERSIONINFO - FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD - PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", RES_STR_COMPANY_NAME - VALUE "FileDescription", "POSIX+ Subsystem Client Library\0" - VALUE "FileVersion", RES_STR_FILE_VERSION - VALUE "InternalName", "psxdll\0" - VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT - VALUE "OriginalFilename", "psxdll.dll\0" - VALUE "ProductName", RES_STR_PRODUCT_NAME - VALUE "ProductVersion", RES_STR_PRODUCT_VERSION - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END diff --git a/posix/lib/psxdll/pthread/.cvsignore b/posix/lib/psxdll/pthread/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/pthread/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/pthread/create.c b/posix/lib/psxdll/pthread/create.c deleted file mode 100644 index 4c6ba991512..00000000000 --- a/posix/lib/psxdll/pthread/create.c +++ /dev/null @@ -1,198 +0,0 @@ -/* $Id: create.c,v 1.5 2002/10/29 04:45:36 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/pthread/create.c - * PURPOSE: Thread creation - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 19/12/2001: Created - */ - -#include -#include -#include -#include -#include -#include -#include - -/* thread creation code adapted from kernel32's CreateRemoteThread() function */ - -static void __threadentry (void *(*start_routine)(void*), void *arg) -{ - INFO("hello world! thread successfully created"); - - TODO("initialize thread data"); - TODO("notify DLLs"); - TODO("notify psxss"); - - INFO("about to call start routine at %#x with argument %#x", start_routine, arg); - - pthread_exit(start_routine(arg)); -} - -int pthread_create(pthread_t *thread, const pthread_attr_t *attr, - void *(*start_routine)(void*), void *arg) -{ - HANDLE hThread; - OBJECT_ATTRIBUTES oaThreadAttrs; - CLIENT_ID ciId; - CONTEXT cxThreadContext; - INITIAL_TEB itInitialTeb; - BOOLEAN fSuspended; - ULONG nOldPageProtection; - NTSTATUS nErrCode; - - /* initialize generic object attributes */ - oaThreadAttrs.Length = sizeof(OBJECT_ATTRIBUTES); - oaThreadAttrs.RootDirectory = NULL; - oaThreadAttrs.ObjectName = NULL; - oaThreadAttrs.Attributes = 0; - oaThreadAttrs.SecurityDescriptor = NULL; - oaThreadAttrs.SecurityQualityOfService = NULL; - - /* initialize thread attributes */ - fSuspended = FALSE; /* FIXME? really needed? can we hardcode this to FALSE? */ - - /* stack attributes */ - FIXME("stack size defaulted to 0x100000 - thread attributes ignored"); - - /* stack reserve size */ - itInitialTeb.StackReserve = 0x100000; - - /* stack commit size */ - itInitialTeb.StackCommit = itInitialTeb.StackReserve - PAGE_SIZE; - - /* guard page */ - itInitialTeb.StackCommit += PAGE_SIZE; - - /* reserve stack */ - itInitialTeb.StackAllocate = NULL; - - nErrCode = NtAllocateVirtualMemory - ( - NtCurrentProcess(), - &itInitialTeb.StackAllocate, - 0, - &itInitialTeb.StackReserve, - MEM_RESERVE, - PAGE_READWRITE - ); - - if(!NT_SUCCESS(nErrCode)) - { - return (__status_to_errno(nErrCode)); /* FIXME? TODO? pthread specific error codes? */ - } - - itInitialTeb.StackBase = (PVOID)((ULONG)itInitialTeb.StackAllocate + itInitialTeb.StackReserve); - itInitialTeb.StackLimit = (PVOID)((ULONG)itInitialTeb.StackBase - itInitialTeb.StackCommit); - - /* commit stack */ - nErrCode = NtAllocateVirtualMemory - ( - NtCurrentProcess(), - &itInitialTeb.StackLimit, - 0, - &itInitialTeb.StackCommit, - MEM_COMMIT, - PAGE_READWRITE - ); - - if(!NT_SUCCESS(nErrCode)) - { - NtFreeVirtualMemory - ( - NtCurrentProcess(), - itInitialTeb.StackAllocate, - &itInitialTeb.StackReserve, - MEM_RELEASE - ); - - return (__status_to_errno(nErrCode)); - } - - /* protect guard page */ - nErrCode = NtProtectVirtualMemory - ( - NtCurrentProcess(), - itInitialTeb.StackLimit, - PAGE_SIZE, - PAGE_GUARD | PAGE_READWRITE, - &nOldPageProtection - ); - - if(!NT_SUCCESS(nErrCode)) - { - NtFreeVirtualMemory - ( - NtCurrentProcess(), - itInitialTeb.StackAllocate, - &itInitialTeb.StackReserve, - MEM_RELEASE - ); - - return (__status_to_errno(nErrCode)); - } - - /* initialize thread registers */ - -//#ifdef __i386__ - memset(&cxThreadContext, 0, sizeof(CONTEXT)); - cxThreadContext.Eip = (LONG)__threadentry; - cxThreadContext.SegGs = USER_DS; - cxThreadContext.SegFs = TEB_SELECTOR; - cxThreadContext.SegEs = USER_DS; - cxThreadContext.SegDs = USER_DS; - cxThreadContext.SegCs = USER_CS; - cxThreadContext.SegSs = USER_DS; - cxThreadContext.Esp = (ULONG)itInitialTeb.StackBase - 12; - cxThreadContext.EFlags = (1<<1) + (1<<9); - - /* initialize call stack */ - *((PULONG)((ULONG)itInitialTeb.StackBase - 4)) = (ULONG)arg; /* thread argument */ - *((PULONG)((ULONG)itInitialTeb.StackBase - 8)) = (ULONG)start_routine; /* thread start routine */ - *((PULONG)((ULONG)itInitialTeb.StackBase - 12)) = 0xDEADBEEF; /* "shouldn't see me" */ -//#else -//#error Unsupported architecture -//#endif - - INFO("about to create new thread - start routine at %#x, argument %#x", start_routine, arg); - - /* create thread */ - nErrCode = NtCreateThread - ( - &hThread, - THREAD_ALL_ACCESS, - &oaThreadAttrs, - NtCurrentProcess(), - &ciId, - &cxThreadContext, - &itInitialTeb, - fSuspended - ); - - if(!NT_SUCCESS(nErrCode)) - { - NtFreeVirtualMemory - ( - NtCurrentProcess(), - itInitialTeb.StackAllocate, - &itInitialTeb.StackReserve, - MEM_RELEASE - ); - - return (__status_to_errno(nErrCode)); - } - - /* FIXME? should we return the thread handle or the thread id? */ - if(thread != 0) - *thread = (pthread_t)&ciId.UniqueThread; /* for the moment, we return the id */ - - return (0); - -} - -/* EOF */ - diff --git a/posix/lib/psxdll/pthread/exit.c b/posix/lib/psxdll/pthread/exit.c deleted file mode 100644 index e8634f5f2be..00000000000 --- a/posix/lib/psxdll/pthread/exit.c +++ /dev/null @@ -1,78 +0,0 @@ -/* $Id: exit.c,v 1.4 2002/10/29 04:45:38 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/pthread/exit.c - * PURPOSE: Thread termination - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 19/12/2001: Created - */ - -#include -#include -#include -#include -#include -#include - -void pthread_exit(void *value_ptr) -{ - NTSTATUS nErrCode; - BOOLEAN fLastThread; - - /* terminate process if this is the last thread of the current process */ - nErrCode = NtQueryInformationThread - ( - NtCurrentThread(), - ThreadAmILastThread, - &fLastThread, - sizeof(BOOLEAN), - NULL - ); - - if(NT_SUCCESS(nErrCode)) - { - if(fLastThread) - { - INFO("this thread is the last in the current process - about to call exit(0)"); - exit(0); - } - } - else - { - WARN - ( - "NtQueryInformationThread(ThreadAmILastThread) failed with status %#x. \ -Can't determine if the current thread is the last in the process. The process \ -could hang", - nErrCode - ); - - } - - TODO("Notify psxss of thread termination"); - - LdrShutdownThread(); /* detach DLLs */ - - /* kill this thread */ - - WARNIF( - sizeof(ULONG) < sizeof(typeof(value_ptr)), - "\ -the value returned from the current thread will be truncated (pointers shorter \ -than long integers on this architecture?) - expect trouble" - ); - - INFO("bye bye. Current thread about to die"); - - NtTerminateThread(NtCurrentThread(), (ULONG)value_ptr); - - /* "The pthread_exit() function cannot return to its caller." */ - NtDelayExecution(FALSE, NULL); - -} - -/* EOF */ - diff --git a/posix/lib/psxdll/pthread/join.c b/posix/lib/psxdll/pthread/join.c deleted file mode 100644 index c7e72cd05e2..00000000000 --- a/posix/lib/psxdll/pthread/join.c +++ /dev/null @@ -1,98 +0,0 @@ -/* $Id: join.c,v 1.4 2002/10/29 04:45:38 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/pthread/join.c - * PURPOSE: Wait for thread termination - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 19/12/2001: Created - */ - -#include -#include -#include -#include -#include -#include -#include - -int pthread_join(pthread_t thread, void **value_ptr) -{ - HANDLE hThread; - NTSTATUS nErrCode; - OBJECT_ATTRIBUTES oaThreadAttrs; - CLIENT_ID ciId; - THREAD_BASIC_INFORMATION tbiThreadInfo; - - /* "[EDEADLK] A deadlock was detected or the value of thread specifies - the calling thread" */ - if(thread == pthread_self()) - return (EDEADLK); - - /* initialize id */ - ciId.UniqueProcess = (HANDLE)-1; - ciId.UniqueThread = (HANDLE)thread; - - /* initialize object attributes */ - oaThreadAttrs.Length = sizeof(OBJECT_ATTRIBUTES); - oaThreadAttrs.RootDirectory = NULL; - oaThreadAttrs.ObjectName = NULL; - oaThreadAttrs.Attributes = 0; - oaThreadAttrs.SecurityDescriptor = NULL; - oaThreadAttrs.SecurityQualityOfService = NULL; - - /* open the thread */ - nErrCode = NtOpenThread - ( - &hThread, - SYNCHRONIZE | THREAD_QUERY_INFORMATION, - &oaThreadAttrs, - &ciId - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - return (__status_to_errno(nErrCode)); - } - - /* wait for thread termination */ - nErrCode = NtWaitForSingleObject - ( - hThread, - FALSE, - NULL - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - NtClose(hThread); - return (__status_to_errno(nErrCode)); - } - - /* get thread basic information (includes return code) */ - nErrCode = NtQueryInformationThread - ( - hThread, - ThreadBasicInformation, - &tbiThreadInfo, - sizeof(THREAD_BASIC_INFORMATION), - NULL - ); - - NtClose(hThread); - - if(!value_ptr) - return (EFAULT); - - *value_ptr = (void *)tbiThreadInfo.ExitStatus; - - return (0); - -} - -/* EOF */ - diff --git a/posix/lib/psxdll/pthread/kill.c b/posix/lib/psxdll/pthread/kill.c deleted file mode 100644 index 70c2cdc2627..00000000000 --- a/posix/lib/psxdll/pthread/kill.c +++ /dev/null @@ -1,22 +0,0 @@ -/* $Id: kill.c,v 1.4 2002/10/29 04:45:38 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/pthread/kill.c - * PURPOSE: Send a signal to a thread - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/02/2002: Created - */ - -#include -#include - -int pthread_kill(pthread_t thread, int sig) -{ - return (ENOSYS); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/pthread/mutex.c b/posix/lib/psxdll/pthread/mutex.c deleted file mode 100644 index 2a37508d665..00000000000 --- a/posix/lib/psxdll/pthread/mutex.c +++ /dev/null @@ -1,465 +0,0 @@ -/* $Id: mutex.c,v 1.4 2002/10/29 04:45:38 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/pthread/mutex.c - * PURPOSE: Mutex functions - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 19/12/2001: Created - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -int pthread_mutex_init(pthread_mutex_t *mutex, - const pthread_mutexattr_t *attr) -{ - struct __mutex *pmMutex; - struct __mutexattr *pmaMutexAttrs; - BOOL bShared; - OBJECT_ATTRIBUTES oaMutexAttrs; - NTSTATUS nErrCode; - - /* invalid return buffer */ - if(mutex == NULL) - return (EINVAL); - - /* object still open */ - if(__safeobj_validate(*mutex, __PTHREAD_MUTEX_MAGIC)) - return (EBUSY); - - if(attr == NULL) - { - /* use default attributes */ - /* create new mutex object */ - pmMutex = (struct __mutex *)malloc(sizeof(struct __mutex)); - - /* malloc() failure */ - if(!pmMutex) - return (ENOMEM); - - /* set the attributes */ - bShared = FALSE; - pmMutex->type = PTHREAD_MUTEX_RECURSIVE; - } - else if(__safeobj_validate(*attr, __PTHREAD_MUTEX_ATTR_MAGIC)) - { - /* use provided attributes */ - /* create new mutex object */ - pmMutex = (struct __mutex *)malloc(sizeof(struct __mutex)); - - /* malloc() failure */ - if(!pmMutex) - return (ENOMEM); - - /* get the attributes object */ - pmaMutexAttrs = (struct __mutexattr *) *attr; - - /* set the attributes */ - bShared = (pmaMutexAttrs->pshared != PTHREAD_PROCESS_PRIVATE); - pmMutex->type = pmaMutexAttrs->type; - } - else - return (EINVAL); - - /* necessary for the mutex to be considered valid later */ - pmMutex->signature = __PTHREAD_MUTEX_MAGIC; - - /* creation of the native mutex object */ - pmMutex->handle = 0; - - /* initialize generic object attributes */ - oaMutexAttrs.Length = sizeof(OBJECT_ATTRIBUTES); - oaMutexAttrs.RootDirectory = NULL; - oaMutexAttrs.ObjectName = NULL; - oaMutexAttrs.Attributes = 0; - oaMutexAttrs.SecurityDescriptor = NULL; - oaMutexAttrs.SecurityQualityOfService = NULL; - - /* process-exclusive mutex */ - if(bShared) - oaMutexAttrs.Attributes |= OBJ_EXCLUSIVE; - - /* try to create the object */ - nErrCode = NtCreateMutant - ( - &pmMutex->handle, - MUTANT_ALL_ACCESS, - &oaMutexAttrs, - FALSE - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - /* free the internal mutex object */ - free(pmMutex); - /* return errno */ - return (__status_to_errno(nErrCode)); - } - - /* return the pointer to the mutex */ - *mutex = (pthread_mutex_t)pmMutex; - - /* success */ - return (0); - -} - -int pthread_mutex_destroy(pthread_mutex_t *mutex) -{ - struct __mutex *pmMutex; - NTSTATUS nErrCode; - MUTANT_BASIC_INFORMATION mbiMutexInfo; - - /* invalid pointer or pointer to invalid object */ - if(mutex == NULL || !__safeobj_validate(*mutex, __PTHREAD_MUTEX_MAGIC)) - { - return (EINVAL); - } - - pmMutex = (struct __mutex *)*mutex; - - /* query the mutex's status */ - nErrCode = NtQueryMutant - ( - pmMutex->handle, - MutantBasicInformation, - &mbiMutexInfo, - sizeof(MUTANT_BASIC_INFORMATION), - NULL - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - return (__status_to_errno(nErrCode)); - } - - /* the thread is owned - cannot destroy it */ - if(mbiMutexInfo.Count <= 0) - { - return (EBUSY); - } - - /* try to close the handle */ - nErrCode = NtClose(pmMutex->handle); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - return (__status_to_errno(nErrCode)); - } - - /* free the object, nil the pointer */ - free(*mutex); - *mutex = NULL; - - /* success */ - return (0); - -} - -int pthread_mutex_lock(pthread_mutex_t *mutex) -{ - struct __mutex * pmMutex; - NTSTATUS nErrCode; - - /* invalid pointer or pointer to invalid object */ - if(mutex == NULL || !__safeobj_validate(*mutex, __PTHREAD_MUTEX_MAGIC)) - return (EINVAL); - - pmMutex = (struct __mutex *)*mutex; - - /* decide the behavior from the mutex type */ - switch(pmMutex->type) - { - case PTHREAD_MUTEX_NORMAL: - { - /* unconditionally try to lock the mutex */ - /* FIXME? should we "artificially" hang the thread if it's the mutex owner, since - NT mutexes always behave recursively? */ - -#if 0 - if(0 /* mutex owner */ == pthread_self() */) - NtDelayExecution(FALSE, NULL); -#endif - - nErrCode = NtWaitForSingleObject(pmMutex->handle, FALSE, NULL); - break; - } - - case PTHREAD_MUTEX_ERRORCHECK: - { - /* prevent a thread from recursively locking the same mutex */ - if(0 /* mutex owner */ == pthread_self()) /* FIXME: implement the correct logic */ - return (EDEADLK); - else - nErrCode = NtWaitForSingleObject(pmMutex->handle, FALSE, NULL); - - break; - } - - case PTHREAD_MUTEX_RECURSIVE: - { - /* allow recursive locking */ - /* ASSERT: this is the default behavior for NT */ - nErrCode = NtWaitForSingleObject(pmMutex->handle, FALSE, NULL); - break; - } - - default: - /* we should never reach this point */ - INFO("you should never read this"); - - } - - if(nErrCode == STATUS_ABANDONED) - { - FIXME("mutex abandoned, not sure on what to do: should we try to lock the mutex again?"); - } - else if(!NT_SUCCESS(nErrCode)) - { - return (__status_to_errno(nErrCode)); - } - - /* success */ - return (0); - -} - -int pthread_mutex_trylock(pthread_mutex_t *mutex) -{ - struct __mutex * pmMutex; - NTSTATUS nErrCode; - MUTANT_BASIC_INFORMATION mbiMutexInfo; - - /* invalid pointer or pointer to invalid object */ - if(mutex == NULL || !__safeobj_validate(*mutex, __PTHREAD_MUTEX_MAGIC)) - return (EINVAL); - - pmMutex = (struct __mutex *)*mutex; - - /* query the mutex's status */ - nErrCode = NtQueryMutant - ( - pmMutex->handle, - MutantBasicInformation, - &mbiMutexInfo, - sizeof(MUTANT_BASIC_INFORMATION), - NULL - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - return (__status_to_errno(nErrCode)); - } - - /* mutex already locked */ - if(mbiMutexInfo.Count <= 0) - return (EBUSY); - - /* mutex not locked - mutex type attribute doesn't matter */ - nErrCode = NtWaitForSingleObject(pmMutex->handle, FALSE, NULL); - - if(!NT_SUCCESS(nErrCode)) - { - return (__status_to_errno(nErrCode)); - } - - /* success */ - return (0); - -} - -int pthread_mutex_unlock(pthread_mutex_t *mutex) -{ - struct __mutex * pmMutex; - NTSTATUS nErrCode; - - /* invalid pointer or pointer to invalid object */ - if(mutex == NULL || !__safeobj_validate(*mutex, __PTHREAD_MUTEX_MAGIC)) - return (EINVAL); - - pmMutex = (struct __mutex *)*mutex; - - /* try to release the mutex */ - nErrCode = NtReleaseMutant(pmMutex->handle, NULL); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - return (__status_to_errno(nErrCode)); - } - - /* success */ - return (0); - -} - -/* mutex attributes routines */ - -int pthread_mutexattr_init(pthread_mutexattr_t *attr) -{ - struct __mutexattr * pmaMutexAttrs; - - /* invalid return pointer */ - if(!attr) - return (EINVAL); - - /* allocate internal structure for mutex attributes */ - pmaMutexAttrs = (struct __mutexattr *)malloc(sizeof(struct __mutexattr)); - - /* failure */ - if(pmaMutexAttrs == 0) - return (ENOMEM); - - /* attribute defaults */ - pmaMutexAttrs->pshared = PTHREAD_PROCESS_PRIVATE; - pmaMutexAttrs->type = PTHREAD_MUTEX_DEFAULT; - - /* return the pointer to the attributes object */ - *attr = (pthread_mutexattr_t)pmaMutexAttrs; - - /* success */ - return (0); - -} - -int pthread_mutexattr_destroy(pthread_mutexattr_t *attr) -{ - /* invalid pointer or pointer to invalid object */ - if(attr == NULL || !__safeobj_validate(*attr, __PTHREAD_MUTEX_ATTR_MAGIC)) - return (EINVAL); - - /* deallocate internal structure */ - free(*attr); - - /* success */ - return (0); - -} - -#define PTHREAD_MUTEXATTR_GET(PATTR,PVAR,FIELD) \ - if( \ - (PATTR) == NULL || \ - (PVAR) == NULL || \ - !__safeobj_validate(*(PATTR), __PTHREAD_MUTEX_ATTR_MAGIC) \ - ) \ - return (EINVAL); \ - else \ - { \ - (*(PVAR)) = ((struct __mutexattr *)*(PATTR))->FIELD; \ - return (0); \ - } - -int pthread_mutexattr_getpshared(const pthread_mutexattr_t *attr, - int *pshared) -{ - PTHREAD_MUTEXATTR_GET(attr, pshared, pshared) -} - -int pthread_mutexattr_gettype(const pthread_mutexattr_t *attr, int *type) -{ - PTHREAD_MUTEXATTR_GET(attr, type, type) -} - -int pthread_mutexattr_setpshared(pthread_mutexattr_t *attr, - int pshared) -{ - /* invalid pointer or pointer to invalid object */ - if(attr == NULL || !__safeobj_validate(*attr, __PTHREAD_MUTEX_ATTR_MAGIC)) - return (EINVAL); - - /* validate value */ - switch(pshared) - { - case PTHREAD_PROCESS_SHARED: break; - case PTHREAD_PROCESS_PRIVATE: break; - default: return (EINVAL); - } - - ((struct __mutexattr *)*attr)->pshared = pshared; - - return (0); - -} - -int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type) -{ - /* invalid pointer or pointer to invalid object */ - if(attr == NULL || !__safeobj_validate(*attr, __PTHREAD_MUTEX_ATTR_MAGIC)) - return (EINVAL); - - /* validate value */ - switch(type) - { - case PTHREAD_MUTEX_NORMAL: break; - case PTHREAD_MUTEX_ERRORCHECK: break; - case PTHREAD_MUTEX_RECURSIVE: break; - default: return (EINVAL); - } - - ((struct __mutexattr *)*attr)->type = type; - - return (0); - -} - -/* STUBS */ - -int pthread_mutex_setprioceiling(pthread_mutex_t *mutex, - int prioceiling, int *old_ceiling) -{ - TODO("realtime threads not currently implemented"); - return (ENOSYS); -} - -int pthread_mutex_getprioceiling(const pthread_mutex_t *mutex, - int *prioceiling) -{ - TODO("realtime threads not currently implemented"); - return (ENOSYS); -} - -int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *attr, - int *protocol) -{ - TODO("realtime threads not currently implemented"); - return (ENOSYS); -} - -int pthread_mutexattr_setprotocol(pthread_mutexattr_t *attr, - int protocol) -{ - TODO("realtime threads not currently implemented"); - return (ENOSYS); -} - -int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *attr, - int prioceiling) -{ - TODO("realtime threads not currently implemented"); - return (ENOSYS); -} - -int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *attr, - int *prioceiling) -{ - TODO("realtime threads not currently implemented"); - return (ENOSYS); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/pthread/self.c b/posix/lib/psxdll/pthread/self.c deleted file mode 100644 index 14c3ddd4410..00000000000 --- a/posix/lib/psxdll/pthread/self.c +++ /dev/null @@ -1,23 +0,0 @@ -/* $Id: self.c,v 1.4 2002/10/29 04:45:38 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/pthread/self.c - * PURPOSE: get calling thread's ID - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 27/12/2001: Created - */ - -#include -#include -#include - -pthread_t pthread_self(void) -{ - return ((pthread_t)(NtCurrentTeb()->Cid).UniqueThread); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/sched/.cvsignore b/posix/lib/psxdll/sched/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/sched/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/sched/yield.c b/posix/lib/psxdll/sched/yield.c deleted file mode 100644 index ee5b2c121ea..00000000000 --- a/posix/lib/psxdll/sched/yield.c +++ /dev/null @@ -1,33 +0,0 @@ -/* $Id: yield.c,v 1.4 2002/10/29 04:45:39 rex Exp $ -*/ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/sched/yield.c - * PURPOSE: Yield processor - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/02/2002: Created - */ - -#include -#include -#include - -int sched_yield(void) -{ - NTSTATUS nErrCode; - - nErrCode = NtYieldExecution(); - - if(!NT_SUCCESS(nErrCode)) - { - errno = __status_to_errno(nErrCode); - return (-1); - } - - return (0); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/signal/.cvsignore b/posix/lib/psxdll/signal/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/signal/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/signal/raise.c b/posix/lib/psxdll/signal/raise.c deleted file mode 100644 index b33c8fa275b..00000000000 --- a/posix/lib/psxdll/signal/raise.c +++ /dev/null @@ -1,25 +0,0 @@ -/* $Id: raise.c,v 1.4 2002/10/29 04:45:41 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/signal/raise.c - * PURPOSE: Send a signal to the executing process - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/02/2002: Created - */ - -#include -#include -#include - -int raise(int sig) -{ - /* returns zero if pthread_kill() returned zero, non-zero otherwise */ - /* pthread_kill() returns the error number and doesn't set errno */ - return (((errno = pthread_kill(pthread_self(), sig))) == 0 ? (0) : (1)); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/stdlib/.cvsignore b/posix/lib/psxdll/stdlib/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/stdlib/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/stdlib/abort.c b/posix/lib/psxdll/stdlib/abort.c deleted file mode 100644 index ffafe34fec4..00000000000 --- a/posix/lib/psxdll/stdlib/abort.c +++ /dev/null @@ -1,22 +0,0 @@ -/* $Id: abort.c,v 1.4 2002/10/29 04:45:41 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/stdlib/abort.c - * PURPOSE: Generate an abnormal process abort - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/02/2002: Created - */ - -#include -#include - -void abort(void) -{ - raise(SIGABRT); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/stdlib/exit.c b/posix/lib/psxdll/stdlib/exit.c deleted file mode 100644 index b8b31868881..00000000000 --- a/posix/lib/psxdll/stdlib/exit.c +++ /dev/null @@ -1,51 +0,0 @@ -/* $Id: exit.c,v 1.4 2002/10/29 04:45:41 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/stdlib/exit.c - * PURPOSE: Terminate a process - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 27/12/2001: Created - */ - -#include -#include -#include - -void exit(int status) -{ - TODO("call all functions registered with atexit()"); - - TODO("flush all output streams, close all open streams"); - TODO("remove all files created by tmpfile()"); - - TODO("close all of the file descriptors, directory streams, conversion \ -descriptors and message catalogue descriptors"); - TODO("send SIGCHILD to the parent process"); - TODO("set parent pid of children to pid of psxss"); - TODO("detach each attached shared-memory segment"); - TODO("for each semaphore for which the calling process has set a semadj \ -value(), add the value to the semval of the semaphore."); - TODO("if the process is a controlling process, send SIGHUP to each process \ -in the foreground process group..."); - TODO("... and disassociate the terminal from the session"); - TODO("if the exit causes a process group to become orphaned, and if any \ -member of the newly-orphaned process group is stopped, send SIGHUP and \ -SIGCONT to each process in the newly-orphaned process group"); - TODO("all open named semaphores in the calling process are closed"); - TODO("remove any memory locks"); - TODO("destroy memory mappings"); - TODO("close all open message queue descriptors"); - -#if 0 - ExitProcess(status); -#endif - - NtTerminateProcess(NtCurrentProcess(), status); - -} - -/* EOF */ - diff --git a/posix/lib/psxdll/stdlib/malloc.c b/posix/lib/psxdll/stdlib/malloc.c deleted file mode 100644 index 3d215fd03b0..00000000000 --- a/posix/lib/psxdll/stdlib/malloc.c +++ /dev/null @@ -1,55 +0,0 @@ -/* $Id: malloc.c,v 1.4 2002/10/29 04:45:41 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/stdlib/malloc.c - * PURPOSE: Memory allocator - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 27/12/2001: Created - */ - -#include -#include - -void * malloc(size_t size) -{ - void * pTemp = __malloc(size); - - if(!pTemp) - errno = ENOMEM; - - return (pTemp); -} - -void free(void * ptr) -{ - __free(ptr); -} - -void * calloc(size_t nelem, size_t elsize) -{ - return (__malloc(nelem * elsize)); -} - -void * realloc(void * ptr, size_t size) -{ - void * pTemp; - - if(size == 0) - __free(ptr); - - if(ptr == 0) - return __malloc(size); - - pTemp = __realloc(ptr, size); - - if(pTemp == 0) - errno = ENOMEM; - - return (pTemp); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/string/.cvsignore b/posix/lib/psxdll/string/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/string/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/string/strcoll.c b/posix/lib/psxdll/string/strcoll.c deleted file mode 100644 index acdb8fa2a53..00000000000 --- a/posix/lib/psxdll/string/strcoll.c +++ /dev/null @@ -1,23 +0,0 @@ -/* $Id: strcoll.c,v 1.4 2002/10/29 04:45:42 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/string/strcoll.c - * PURPOSE: string comparison using collating information - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 20/01/2002: Created - */ - -#include -#include - -int strcoll(const char *s1, const char *s2) -{ - TODO("locale semantics currently unimplemented"); - return (strcmp(s1, s2)); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/string/strdup.c b/posix/lib/psxdll/string/strdup.c deleted file mode 100644 index ee37f975afd..00000000000 --- a/posix/lib/psxdll/string/strdup.c +++ /dev/null @@ -1,44 +0,0 @@ -/* $Id: strdup.c,v 1.4 2002/10/29 04:45:42 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/string/strdup.c - * PURPOSE: Duplicate a string - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 21/01/2002: Created - */ - -#include -#include -#include - -char *strdup(const char *s1) -{ - char *pchRetBuf; - int nStrLen; - - HINT("strdup() is inefficient - consider dropping zero-terminated strings"); - - if (s1 == 0) - return 0; - - nStrLen = strlen(s1); - - /* allocate enough buffer space for s1 and the null terminator */ - pchRetBuf = (char *) malloc(nStrLen + 1); - - if (pchRetBuf == 0) - /* memory allocation failed */ - return 0; - - /* copy the string */ - strcpy(pchRetBuf, s1); - - return pchRetBuf; - -} - -/* EOF */ - diff --git a/posix/lib/psxdll/string/strerror.c b/posix/lib/psxdll/string/strerror.c deleted file mode 100644 index 4ef4dd7a335..00000000000 --- a/posix/lib/psxdll/string/strerror.c +++ /dev/null @@ -1,27 +0,0 @@ -/* $Id: strerror.c,v 1.4 2002/10/29 04:45:43 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/string/strerror.c - * PURPOSE: Get error message string - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 20/01/2002: Created - */ - -#include -#include -#include - -static char *__errstr = ""; -char *strerror(int errnum) -{ - INFO("errnum %#x", errnum); - TODO("getting error string not currently implemented"); - errno = EINVAL; - return (__errstr); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/sys/stat/.cvsignore b/posix/lib/psxdll/sys/stat/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/sys/stat/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/sys/stat/chmod.c b/posix/lib/psxdll/sys/stat/chmod.c deleted file mode 100644 index 4290a615739..00000000000 --- a/posix/lib/psxdll/sys/stat/chmod.c +++ /dev/null @@ -1,30 +0,0 @@ -/* $Id: chmod.c,v 1.3 2002/10/29 04:45:44 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/sys/stat/chmod.c - * PURPOSE: Change mode of a file - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/05/2002: Created - */ - -#include -#include -#include - -int chmod(const char *path, mode_t mode) -{ - errno = ENOSYS; - return (-1); -} - -int fchmod(int fildes, mode_t mode) -{ - errno = ENOSYS; - return (-1); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/sys/stat/mkdir.c b/posix/lib/psxdll/sys/stat/mkdir.c deleted file mode 100644 index 1c679b4876b..00000000000 --- a/posix/lib/psxdll/sys/stat/mkdir.c +++ /dev/null @@ -1,34 +0,0 @@ -/* $Id: mkdir.c,v 1.3 2002/10/29 04:45:44 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/sys/stat/mkdir.c - * PURPOSE: Make a directory - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/05/2002: Created - */ - -#include -#include -#include -#include - -int mkdir(const char *path, mode_t mode) -{ - int nFileNo; - - switch((nFileNo = open(path, O_CREAT | O_EXCL | _O_DIRFILE, mode))) - { - case -1: - return (-1); - - default: - close(nFileNo); - return (0); - } -} - -/* EOF */ - diff --git a/posix/lib/psxdll/sys/stat/mkfifo.c b/posix/lib/psxdll/sys/stat/mkfifo.c deleted file mode 100644 index 5960ebef72c..00000000000 --- a/posix/lib/psxdll/sys/stat/mkfifo.c +++ /dev/null @@ -1,24 +0,0 @@ -/* $Id: mkfifo.c,v 1.3 2002/10/29 04:45:44 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/sys/stat/mkfifo.c - * PURPOSE: Make a FIFO special file - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/05/2002: Created - */ - -#include -#include -#include - -int mkfifo(const char *path, mode_t mode) -{ - errno = ENOSYS; - return (-1); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/sys/stat/mknod.c b/posix/lib/psxdll/sys/stat/mknod.c deleted file mode 100644 index d412be266ef..00000000000 --- a/posix/lib/psxdll/sys/stat/mknod.c +++ /dev/null @@ -1,23 +0,0 @@ -/* $Id: mknod.c,v 1.3 2002/10/29 04:45:44 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/sys/stat/mknod.c - * PURPOSE: Make a directory, a special or regular file - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/05/2002: Created - */ - -#include -#include - -int mknod(const char *path, mode_t mode, dev_t dev) -{ - errno = ENOSYS; - return (-1); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/sys/stat/stat.c b/posix/lib/psxdll/sys/stat/stat.c deleted file mode 100644 index 3a7da05e984..00000000000 --- a/posix/lib/psxdll/sys/stat/stat.c +++ /dev/null @@ -1,36 +0,0 @@ -/* $Id: stat.c,v 1.3 2002/10/29 04:45:44 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/sys/stat/stat.c - * PURPOSE: Get file status - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/05/2002: Created - */ - -#include -#include -#include - -int fstat(int fildes, struct stat *buf) -{ - errno = ENOSYS; - return (-1); -} - -int lstat(const char *path, struct stat *buf) -{ - errno = ENOSYS; - return (-1); -} - -int stat(const char *path, struct stat *buf) -{ - errno = ENOSYS; - return (-1); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/sys/stat/umask.c b/posix/lib/psxdll/sys/stat/umask.c deleted file mode 100644 index 042b29e985e..00000000000 --- a/posix/lib/psxdll/sys/stat/umask.c +++ /dev/null @@ -1,24 +0,0 @@ -/* $Id: umask.c,v 1.3 2002/10/29 04:45:46 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/sys/stat/umask.c - * PURPOSE: - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/05/2002: Created - */ - -#include -#include -#include - -mode_t umask(mode_t cmask) -{ - errno = ENOSYS; - return (-1); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/sys/utsname/.cvsignore b/posix/lib/psxdll/sys/utsname/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/sys/utsname/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/sys/utsname/uname.c b/posix/lib/psxdll/sys/utsname/uname.c deleted file mode 100644 index 4a2932fa348..00000000000 --- a/posix/lib/psxdll/sys/utsname/uname.c +++ /dev/null @@ -1,178 +0,0 @@ -/* $Id: uname.c,v 1.4 2002/10/29 04:45:46 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: lib/psxdll/sys/utsname/uname.c - * PURPOSE: Get name of current system - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 19/12/2001: Created - */ - -#include -#include -#include -#include -#include -#include -#include - -int uname(struct utsname *name) -{ - NTSTATUS nErrCode; - OBJECT_ATTRIBUTES oaKeyAttribs; - UNICODE_STRING wstrKeyPath; - UNICODE_STRING wstrValueName; - UNICODE_STRING wstrValueData; - ANSI_STRING strValueData; - PKEY_VALUE_PARTIAL_INFORMATION pkvpiKeyValue; - ULONG nKeyValueSize; - HANDLE hKey; - - /* system name and version info are fixed strings, at the moment */ /* FIXME? */ - strncpy(name->sysname, "ReactOS" , 255); - strncpy(name->release, "0.0" , 255); - strncpy(name->version, "pre-alpha", 255); - - /* hardware identifier */ - /* FIXME: this should definitely be determined programmatically */ - strncpy(name->machine, "i386" , 255); - - /* we use the active computer's name as the node name */ - /* TODO: POSIX-style registry functions */ - - /* initialize the registry key path */ - RtlInitUnicodeString( - &wstrKeyPath, - L"\\REGISTRY\\MACHINE\\SYSTEM\\CurrentControlSet\\Control\\ComputerName\\ActiveComputerName" - ); - - /* initialize object attributes */ - oaKeyAttribs.Length = sizeof(OBJECT_ATTRIBUTES); - oaKeyAttribs.RootDirectory = NULL; - oaKeyAttribs.ObjectName = &wstrKeyPath; - oaKeyAttribs.Attributes = OBJ_CASE_INSENSITIVE /* | OBJ_OPENLINK | OBJ_OPENIF */ /* FIXME? */; - oaKeyAttribs.SecurityDescriptor = NULL; - oaKeyAttribs.SecurityQualityOfService = NULL; - - /* open the key object */ - nErrCode = NtOpenKey - ( - &hKey, - KEY_QUERY_VALUE, - &oaKeyAttribs - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - - ERR("NtOpenKey() failed with status 0x%08X", nErrCode); - errno = __status_to_errno(nErrCode); - return (-1); - } - - /* initialize the registry value name */ - RtlInitUnicodeString(&wstrValueName, L"ComputerName"); - - /* fake query - null buffer and zero length to pre-fetch the appropriate buffer size */ - nErrCode = NtQueryValueKey - ( - hKey, - &wstrValueName, - KeyValuePartialInformation, - NULL, - 0, - &nKeyValueSize - ); - - /* success */ - if(nErrCode == (NTSTATUS)STATUS_BUFFER_TOO_SMALL) - { - - /* allocate the appropriate buffer size */ - if(nKeyValueSize < sizeof(KEY_VALUE_PARTIAL_INFORMATION)) /* just to be sure */ - nKeyValueSize = sizeof(KEY_VALUE_PARTIAL_INFORMATION); - - pkvpiKeyValue = __malloc(nKeyValueSize); - - } - /* failure */ - else - { - - ERR("NtQueryValueKey() failed with status 0x%08X", nErrCode); - NtClose(hKey); - errno = __status_to_errno(nErrCode); - return (-1); - } - - /* query the value */ - nErrCode = NtQueryValueKey - ( - hKey, - &wstrValueName, - KeyValuePartialInformation, - pkvpiKeyValue, - nKeyValueSize, - &nKeyValueSize - ); - - /* close the key handle (not needed anymore) */ - NtClose(hKey); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtQueryValueKey() failed with status 0x%08X", nErrCode); - __free(pkvpiKeyValue); - errno = __status_to_errno(nErrCode); - return (-1); - } - - /* make wstrValueData refer to the Data field of the key value information */ - wstrValueData.Length = pkvpiKeyValue->DataLength; - wstrValueData.MaximumLength = wstrValueData.Length; - wstrValueData.Buffer = (PWCHAR)&(pkvpiKeyValue->Data[0]); - - /* make strValueData refer to the nodename buffer */ - strValueData.Length = 0; - strValueData.MaximumLength = 254; - strValueData.Buffer = name->nodename; - - RtlUnicodeStringToAnsiString - ( - &strValueData, - &wstrValueData, - FALSE - ); - - /* free the key value buffer */ - __free(pkvpiKeyValue); - - /* null-terminate the returned string */ - name->nodename[strValueData.Length] = '0'; - - INFO - ( - " \ -name->sysname = \"%s\"\n\ -tname->nodename = \"%s\"\n\ -tname->release = \"%s\"\n\ -tname->version = \"%s\"\n\ -tname->machine = \"%s\"", - name->sysname, - name->nodename, - name->release, - name->version, - name->machine - ); - - /* success */ - return (0); - -} - -/* EOF */ - diff --git a/posix/lib/psxdll/unistd/.cvsignore b/posix/lib/psxdll/unistd/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/lib/psxdll/unistd/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/lib/psxdll/unistd/access.c b/posix/lib/psxdll/unistd/access.c deleted file mode 100644 index 3cca44b2744..00000000000 --- a/posix/lib/psxdll/unistd/access.c +++ /dev/null @@ -1,59 +0,0 @@ -/* $Id: access.c,v 1.3 2002/10/29 04:45:46 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/unistd/access.c - * PURPOSE: Determine accessibility of a file - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 13/02/2002: Created - */ - -#include -#include -#include -#include - -int access(const char *path, int amode) -{ - OBJECT_ATTRIBUTES oaFileAttribs; - IO_STATUS_BLOCK isbStatus; - ACCESS_MASK amDesiredAccess = 0; - NTSTATUS nErrCode; - HANDLE hFile; - - if(amode != F_OK) - { - if(amode && R_OK) amDesiredAccess |= GENERIC_READ; - if(amode && W_OK) amDesiredAccess |= GENERIC_WRITE; - if(amode && X_OK) amDesiredAccess |= GENERIC_EXECUTE; - } - - nErrCode = NtCreateFile - ( - &hFile, - amDesiredAccess, - &oaFileAttribs, - &isbStatus, - 0, - 0, - FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, - FILE_OPEN, - 0, - 0, - 0 - ); - - if(NT_SUCCESS(nErrCode)) - { - NtClose(hFile); - return (0); - } - - errno = __status_to_errno(nErrCode); - return (-1); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/unistd/close.c b/posix/lib/psxdll/unistd/close.c deleted file mode 100644 index 3f1cf431643..00000000000 --- a/posix/lib/psxdll/unistd/close.c +++ /dev/null @@ -1,42 +0,0 @@ -/* $Id: close.c,v 1.4 2002/10/29 04:45:46 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/unistd/close.c - * PURPOSE: Close a file descriptor - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 13/02/2002: Created - */ - -#include -#include -#include -#include -#include -#include - -int close(int fildes) -{ - __fildes_t fdDescriptor; - NTSTATUS nErrCode; - - if(fcntl(fildes, F_DELFD, &fdDescriptor) == -1) - return (-1); - - __free(fdDescriptor.ExtraData); - - nErrCode = NtClose(fdDescriptor.FileHandle); - - if(!NT_SUCCESS(nErrCode)) - { - errno = __status_to_errno(nErrCode); - return (-1); - } - - return (0); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/unistd/dup.c b/posix/lib/psxdll/unistd/dup.c deleted file mode 100644 index 9ada728a229..00000000000 --- a/posix/lib/psxdll/unistd/dup.c +++ /dev/null @@ -1,41 +0,0 @@ -/* $Id: dup.c,v 1.4 2002/10/29 04:45:46 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/unistd/dup.c - * PURPOSE: Duplicate an open file descriptor - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 13/02/2002: Created - */ - -#include -#include -#include -#include - -int dup(int fildes) -{ - return (fcntl(fildes, F_DUPFD, 0)); -} - -int dup2(int fildes, int fildes2) -{ - if(fildes < 0 || fildes >= OPEN_MAX) - { - errno = EBADF; - return (-1); - } - - /* TODO: check if fildes is valid */ - - if(fildes == fildes2) - return fildes2; - - close(fildes2); - return (fcntl(fildes, F_DUPFD, fildes2)); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/unistd/fork.c b/posix/lib/psxdll/unistd/fork.c deleted file mode 100644 index 53674acce5b..00000000000 --- a/posix/lib/psxdll/unistd/fork.c +++ /dev/null @@ -1,250 +0,0 @@ -/* $Id: fork.c,v 1.3 2002/10/29 04:45:46 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/unistd/fork.c - * PURPOSE: create a new process - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 14/05/2002: Created - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -typedef struct _PORT_MESSAGE { - USHORT DataSize; - USHORT MessageSize; - USHORT MessageType; - USHORT VirtualRangesOffset; - CLIENT_ID ClientId; - ULONG MessageId; - ULONG SectionSize; - /* UCHAR Data[]; */ -} PORT_MESSAGE, *PPORT_MESSAGE; - -struct CSRSS_MESSAGE { - ULONG Unknown1; - ULONG Opcode; - ULONG Status; - ULONG Unknown2; -}; - -NTSTATUS STDCALL CsrClientCallServer( - IN PVOID Message, - IN PVOID Unknown, - IN ULONG Opcode, - IN ULONG Size -); - -pid_t fork(void) -{ - NTSTATUS nErrCode; - CONTEXT ctxThreadContext; - HANDLE hProcess; - HANDLE hThread; - INITIAL_TEB itInitialTeb; - CLIENT_ID ciClientId; - MEMORY_BASIC_INFORMATION mbiStackInfo; - THREAD_BASIC_INFORMATION tbiThreadInfo; - - struct __tagcsrmsg{ - PORT_MESSAGE PortMessage; - struct CSRSS_MESSAGE CsrssMessage; - PROCESS_INFORMATION ProcessInformation; - CLIENT_ID Debugger; - ULONG CreationFlags; - ULONG VdmInfo[2]; - } csrmsg; - - /* STEP 1: Duplicate current process */ - nErrCode = NtCreateProcess - ( - &hProcess, - PROCESS_ALL_ACCESS, - NULL, - NtCurrentProcess(), - TRUE, - 0, - 0, - 0 - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtCreateProcess() failed with status 0x%08X\n", nErrCode); - goto fail; - } - - /* STEP 2: Duplicate current thread */ - /* 2.1: duplicate registers */ - ctxThreadContext.ContextFlags = - CONTEXT_FULL | CONTEXT_DEBUG_REGISTERS | CONTEXT_FLOATING_POINT; - - /* get the current thread's registers */ - nErrCode = NtGetContextThread(NtCurrentThread(), &ctxThreadContext); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtGetContextThread() failed with status 0x%08X\n", nErrCode); - goto cleanup_and_fail; - } - - /* redirect the child process to the child_branch label (see 4.3 below) */ - ctxThreadContext.Eip = (ULONG)&&child_branch; - - /* 2.2: duplicate stack */ - /* get stack base and size */ - nErrCode = NtQueryVirtualMemory - ( - NtCurrentProcess(), - (PVOID)ctxThreadContext.Esp, - MemoryBasicInformation, - &mbiStackInfo, - sizeof(mbiStackInfo), - 0 - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtQueryVirtualMemory() failed with status 0x%08X\n", nErrCode); - goto cleanup_and_fail; - } - - itInitialTeb.StackCommit = 0; - itInitialTeb.StackReserve = 0; - itInitialTeb.StackBase = (PVOID)((ULONG)(mbiStackInfo.BaseAddress) + mbiStackInfo.RegionSize); - itInitialTeb.StackLimit = mbiStackInfo.BaseAddress; - itInitialTeb.StackAllocate = mbiStackInfo.AllocationBase; - - /* 2.3: create duplicate thread */ - nErrCode = NtCreateThread - ( - &hThread, - THREAD_ALL_ACCESS, - NULL, - hProcess, - (CLIENT_ID *)&ciClientId, - &ctxThreadContext, - &itInitialTeb, - TRUE - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtCreateThread() failed with status 0x%08X\n", nErrCode); - goto cleanup_and_fail; - } - - /* 2.4: duplicate the TEB */ - /* store the client id in the child thread's stack (see 4.3b) */ - nErrCode = NtWriteVirtualMemory - ( - hProcess, - &ciClientId, - &ciClientId, - sizeof(ciClientId), - 0 - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtWriteVirtualMemory() failed with status 0x%08X\n", nErrCode); - goto cleanup_and_fail; - } - - /* get the child thread's TEB base */ - nErrCode = NtQueryInformationThread - ( - hThread, - ThreadBasicInformation, - &tbiThreadInfo, - sizeof(tbiThreadInfo), - 0 - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtQueryInformationThread() failed with status 0x%08X\n", nErrCode); - goto cleanup_and_fail; - } - - /* copy the TEB */ - nErrCode = NtWriteVirtualMemory - ( - hProcess, - tbiThreadInfo.TebBaseAddress, - NtCurrentTeb(), - sizeof(TEB), - 0 - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtWriteVirtualMemory() failed with status 0x%08X\n", nErrCode); - goto cleanup_and_fail; - } - - /* STEP 3: Call Win32 subsystem */ - memset(&csrmsg, 0, sizeof(csrmsg)); - - csrmsg.ProcessInformation.hProcess = hProcess; - csrmsg.ProcessInformation.hThread = hThread; - csrmsg.ProcessInformation.dwProcessId = (DWORD)ciClientId.UniqueProcess; - csrmsg.ProcessInformation.dwThreadId = (DWORD)ciClientId.UniqueThread; - - nErrCode = CsrClientCallServer(&csrmsg, 0, 0x10000, 0x24); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - ERR("CsrClientCallServer() failed with status 0x%08X\n", nErrCode); - goto cleanup_and_fail; - } - - /* STEP 4: Finalization */ - /* 4.1: resume thread */ - nErrCode = NtResumeThread(hThread, 0); - - /* 4.2: close superfluous handles */ - NtClose(hProcess); - NtClose(hThread); - - /* 4.3: (parent) return the child process id */ - return ((pid_t)(ciClientId.UniqueProcess)); - - /* 4.3b: (child) cleanup and return 0 */ -child_branch: - /* restore the thread and process id in the TEB */ - memcpy(&NtCurrentTeb()->Cid, &ciClientId, sizeof(ciClientId)); - - /* return 0 */ - return (0); - -cleanup_and_fail: - NtTerminateProcess(hProcess, nErrCode); - -fail: - errno = __status_to_errno(nErrCode); - return (-1); - -} - -/* EOF */ - diff --git a/posix/lib/psxdll/unistd/getcwd.c b/posix/lib/psxdll/unistd/getcwd.c deleted file mode 100644 index 38fcff72d57..00000000000 --- a/posix/lib/psxdll/unistd/getcwd.c +++ /dev/null @@ -1,89 +0,0 @@ -/* $Id: getcwd.c,v 1.4 2002/10/29 04:45:48 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/unistd/getcwd.c - * PURPOSE: Get the pathname of the current working directory - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 01/02/2002: Created - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -wchar_t *_Wgetcwd(wchar_t *buf, size_t size) -{ - PUNICODE_STRING pwstrCurDir; - - __PdxAcquirePdataLock(); - - pwstrCurDir = __PdxGetCurDir(); - - if(size < (pwstrCurDir->Length / sizeof(WCHAR))) - { - __PdxReleasePdataLock(); - errno = ERANGE; - return (0); - } - else - { - wcsncpy(buf, pwstrCurDir->Buffer, pwstrCurDir->Length); - __PdxReleasePdataLock(); - return (buf); - } -} - -char *getcwd(char *buf, size_t size) -{ - PUNICODE_STRING pwstrCurDir; - - __PdxAcquirePdataLock(); - - pwstrCurDir = __PdxGetCurDir(); - - if(size < (pwstrCurDir->Length / sizeof(WCHAR))) - { - __PdxReleasePdataLock(); - errno = ERANGE; - return (0); - } - else - { - ANSI_STRING strBuffer; - NTSTATUS nErrCode; - - strBuffer.Length = 0; - strBuffer.MaximumLength = size; - strBuffer.Buffer = buf; - - nErrCode = RtlUnicodeStringToAnsiString - ( - &strBuffer, - pwstrCurDir, - FALSE - ); - - __PdxReleasePdataLock(); - - if(!NT_SUCCESS(nErrCode)) - { - errno = __status_to_errno(nErrCode); - return (0); - } - - return (buf); - } - - __PdxReleasePdataLock(); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/unistd/getpid.c b/posix/lib/psxdll/unistd/getpid.c deleted file mode 100644 index eeb4171cff3..00000000000 --- a/posix/lib/psxdll/unistd/getpid.c +++ /dev/null @@ -1,45 +0,0 @@ -/* $Id: getpid.c,v 1.5 2002/10/29 04:45:48 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/unistd/getpid.c - * PURPOSE: Get the process ID - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/02/2002: Created - */ - -#include -#include -#include -#include - -pid_t getpid(void) -{ - PROCESS_BASIC_INFORMATION pbiInfo; - NTSTATUS nErrCode; - - nErrCode = NtQueryInformationProcess - ( - NtCurrentProcess(), - ProcessBasicInformation, - &pbiInfo, - sizeof(pbiInfo), - NULL - ); - - if(!NT_SUCCESS(nErrCode)) - { - errno = __status_to_errno(nErrCode); - return (0); - } - - return (pbiInfo.UniqueProcessId); -#if 0 - return ((pid_t)NtCurrentTeb()->Cid.UniqueProcess); -#endif -} - -/* EOF */ - diff --git a/posix/lib/psxdll/unistd/getppid.c b/posix/lib/psxdll/unistd/getppid.c deleted file mode 100644 index fc318351f16..00000000000 --- a/posix/lib/psxdll/unistd/getppid.c +++ /dev/null @@ -1,42 +0,0 @@ -/* $Id: getppid.c,v 1.4 2002/10/29 04:45:48 rex Exp $ -*/ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/unistd/getppid.c - * PURPOSE: Get the parent process ID - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/02/2002: Created - */ - -#include -#include -#include -#include - -pid_t getppid(void) -{ - PROCESS_BASIC_INFORMATION pbiInfo; - NTSTATUS nErrCode; - - nErrCode = NtQueryInformationProcess - ( - NtCurrentProcess(), - ProcessBasicInformation, - &pbiInfo, - sizeof(pbiInfo), - NULL - ); - - if(!NT_SUCCESS(nErrCode)) - { - errno = __status_to_errno(nErrCode); - return (0); - } - - return (pbiInfo.InheritedFromUniqueProcessId); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/unistd/read.c b/posix/lib/psxdll/unistd/read.c deleted file mode 100644 index 929d705ea32..00000000000 --- a/posix/lib/psxdll/unistd/read.c +++ /dev/null @@ -1,117 +0,0 @@ -/* $Id: read.c,v 1.4 2002/10/29 04:45:48 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/unistd/read.c - * PURPOSE: Read from a file - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/02/2002: Created - */ - -#include -#include -#include -#include -#include -#include - -ssize_t __read(int fildes, void *buf, size_t nbyte, off_t *offset) -{ - HANDLE hFile; - NTSTATUS nErrCode; - IO_STATUS_BLOCK isbStatus; - - /* get the file handle for the specified file descriptor */ - if(fcntl(fildes, F_GETFH, &hFile) == -1) - return (-1); - - if(offset != NULL) - { - /* NT always moves the file pointer, while Unix pread() must not: we have to - duplicate the handle and work on the duplicate */ /* FIXME? better save - the file position and restore it later? */ - HANDLE hDupFile; - - /* duplicate the handle */ - nErrCode = NtDuplicateObject - ( - NtCurrentProcess(), - hFile, - NtCurrentProcess(), - &hDupFile, - 0, - 0, - DUPLICATE_SAME_ACCESS - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - errno = __status_to_errno(nErrCode); - return (0); - } - - /* read data from file at the specified offset */ - nErrCode = NtReadFile - ( - hDupFile, - NULL, - NULL, - NULL, - &isbStatus, - buf, - nbyte, - (PLARGE_INTEGER)offset, - NULL - ); - - NtClose(hDupFile); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - errno = __status_to_errno(nErrCode); - return (0); - } - } - else - { - /* read data from file at the current offset */ - nErrCode = NtReadFile - ( - hFile, - NULL, - NULL, - NULL, - &isbStatus, - buf, - nbyte, - NULL, - NULL - ); - - /* failure */ - if(!NT_SUCCESS(nErrCode)) - { - errno = __status_to_errno(nErrCode); - return (0); - } - } - - return ((ssize_t)isbStatus.Information); -} - -ssize_t read(int fildes, void *buf, size_t nbyte) -{ - return (__read(fildes, buf, nbyte, NULL)); -} - -ssize_t pread(int fildes, void *buf, size_t nbyte, off_t offset) -{ - return (__read(fildes, buf, nbyte, &offset)); -} - -/* EOF */ - diff --git a/posix/lib/psxdll/unistd/sleep.c b/posix/lib/psxdll/unistd/sleep.c deleted file mode 100644 index 767c7ba115a..00000000000 --- a/posix/lib/psxdll/unistd/sleep.c +++ /dev/null @@ -1,27 +0,0 @@ -/* $Id: sleep.c,v 1.3 2002/10/29 04:45:48 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/unistd/sleep.c - * PURPOSE: Suspend execution for an interval of time - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 14/05/2002: Created - */ - -#include -#include - -unsigned int sleep(unsigned int seconds) -{ - LARGE_INTEGER lnDelay = RtlEnlargedIntegerMultiply(seconds, 10000000); - - if(!NT_SUCCESS(NtDelayExecution(FALSE, &lnDelay))) - return seconds; - - return 0; -} - -/* EOF */ - diff --git a/posix/lib/psxdll/unistd/write.c b/posix/lib/psxdll/unistd/write.c deleted file mode 100644 index 55186ea9d8a..00000000000 --- a/posix/lib/psxdll/unistd/write.c +++ /dev/null @@ -1,68 +0,0 @@ -/* $Id: write.c,v 1.6 2002/10/29 04:45:48 rex Exp $ - */ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS POSIX+ Subsystem - * FILE: subsys/psx/lib/psxdll/unistd/write.c - * PURPOSE: Write on a file - * PROGRAMMER: KJK::Hyperion - * UPDATE HISTORY: - * 15/02/2002: Created - * 21/03/2002: Implemented write() (KJK::Hyperion ) - */ - -#include -#include -#include -#include -#include -#include -#include - -ssize_t write(int fildes, const void *buf, size_t nbyte) -{ - __fildes_t fdDescriptor; - NTSTATUS nErrCode; - IO_STATUS_BLOCK isbStatus; - - if(nbyte == 0) - return (0); - - if(fcntl(fildes, F_GETALL, &fdDescriptor) == -1) - { - ERR("fcntl() failed, errno %d", errno); - return (0); - } - - if((fdDescriptor.OpenFlags && O_APPEND) == O_APPEND) - { - TODO("move file pointer to the end"); - } - - INFO("handle for descriptor %d is %d", fildes, fdDescriptor.FileHandle); - - nErrCode = NtWriteFile - ( - fdDescriptor.FileHandle, - NULL, - NULL, - NULL, - &isbStatus, - (PVOID)buf, - nbyte, - NULL, - NULL - ); - - if(!NT_SUCCESS(nErrCode)) - { - ERR("NtWriteFile() failed with status 0x%08X", nErrCode); - errno = __status_to_errno(nErrCode); - return (0); - } - - return (isbStatus.Information); -} - -/* EOF */ - diff --git a/posix/lib/psxx/.cvsignore b/posix/lib/psxx/.cvsignore deleted file mode 100644 index 541cdb996ea..00000000000 --- a/posix/lib/psxx/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -*.o -*.d -*.a -*.exe -*.dll -*.coff -*.sym diff --git a/posix/lib/psxx/Makefile b/posix/lib/psxx/Makefile deleted file mode 100644 index 025265e1207..00000000000 --- a/posix/lib/psxx/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# $Id: Makefile,v 1.1 2003/09/27 18:52:31 guido Exp $ -# -# PSXX.DLL -# - -PATH_TO_TOP = ../../../reactos - -PATH_TO_PSX_TOP = ../.. - -TARGET_TYPE = dynlink - -TARGET_NAME = psxx - -#TARGET_LIBPATH = $(PATH_TO_PSX_TOP)/dk/lib - -TARGET_SDKLIBS = ntdll.a - -#TARGET_BASE = 0x77dc0000 - -TARGET_ENTRY = _DllMain@12 - -TARGET_CFLAGS = -D__PSXX__ -D__PSXDLL__ - -TARGET_LFLAGS = \ - -Wl,--file-alignment,0x1000 \ - -Wl,--section-alignment,0x1000 \ - -Wl,--subsystem,posix:19.90 - - -TARGET_PATH = misc - - -MISC_OBJECTS = \ - misc/$(TARGET_NAME).coff \ - misc/main.o \ - misc/stubs.o - -TARGET_OBJECTS = \ - $(MISC_OBJECTS) - -#TARGET_CLEAN = \ -# misc/*.o \ -# misc/*.coff - -include $(PATH_TO_TOP)/rules.mak - -include $(TOOLS_PATH)/helper.mk - -#DTFLAGS = -k -l $@ - -#$(TARGET_NAME).a: $(TARGET_PATH)/$(TARGET_NAME).def -# $(DLLTOOL) \ -# $(DTFLAGS) \ -# -D $(TARGET_NAME).dll \ -# -d $(TARGET_PATH)/$(TARGET_NAME).def - -# EOF diff --git a/posix/lib/psxx/misc/.cvsignore b/posix/lib/psxx/misc/.cvsignore deleted file mode 100644 index f0022c19403..00000000000 --- a/posix/lib/psxx/misc/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -*.o -*.d -*.exe -*.dll -*.coff -*.sym diff --git a/posix/lib/psxx/misc/main.c b/posix/lib/psxx/misc/main.c deleted file mode 100644 index c93e80765b9..00000000000 --- a/posix/lib/psxx/misc/main.c +++ /dev/null @@ -1,10 +0,0 @@ -/* $Id: main.c,v 1.3 2002/10/29 04:45:50 rex Exp $ - */ -#define NTOS_MODE_USER -#include - -BOOL STDCALL DllMain (HANDLE hDll, DWORD dwReason, LPVOID lpReserved) -{ - return TRUE; -} -/* EOF */ diff --git a/posix/lib/psxx/misc/psxx.def b/posix/lib/psxx/misc/psxx.def deleted file mode 100644 index a9af92ce3a7..00000000000 --- a/posix/lib/psxx/misc/psxx.def +++ /dev/null @@ -1,631 +0,0 @@ -; $Id: psxx.def,v 1.3 2002/10/29 04:45:50 rex Exp $ -; -; ReactOS - POSIX+ - X/11 over W32k -; -LIBRARY psxx.dll -; -EXPORTS -XActivateScreenSaver -XAddConnectionWatch -XAddExtension -XAddHost -XAddHosts -XAddPixel -XAddToExtensionList -XAddToSaveSet -XAllPlanes -XAllocClassHint -XAllocColor -XAllocColorCells -XAllocColorPlanes -XAllocIconSize -XAllocNamedColor -XAllocSizeHints -XAllocStandardColormap -XAllocWMHints -XAllowEvents -XAutoRepeatOff -XAutoRepeatOn -XBaseFontNameListOfFontSet -XBell -XBitmapBitOrder -XBitmapPad -XBitmapUnit -XBlackPixel -XBlackPixelOfScreen -XCellsOfScreen -XChangeActivePointerGrab -XChangeGC -XChangeKeyboardControl -XChangeKeyboardMapping -XChangePointerControl -XChangeProperty -XChangeSaveSet -XChangeWindowAttributes -XCheckIfEvent -XCheckMaskEvent -XCheckTypedEvent -XCheckTypedWindowEvent -XCheckWindowEvent -XCirculateSubwindows -XCirculateSubwindowsDown -XCirculateSubwindowsUp -XClearArea -XClearWindow -XClipBox -XCloseDisplay -XCloseIM -XCloseOM -XConfigureWindow -XConnectionNumber -XContextDependentDrawing -XContextualDrawing -XConvertCase -XConvertSelection -XCopyArea -XCopyColormapAndFree -XCopyGC -XCopyPlane -XCreateBitmapFromData -XCreateColormap -XCreateFontCursor -XCreateFontSet -XCreateGC -XCreateGlyphCursor -XCreateIC -XCreateImage -XCreateOC -XCreatePixmap -XCreatePixmapCursor -XCreatePixmapFromBitmapData -XCreateRegion -XCreateSimpleWindow -XCreateWindow -XDefaultColormap -XDefaultColormapOfScreen -XDefaultDepth -XDefaultDepthOfScreen -XDefaultGC -XDefaultGCOfScreen -XDefaultRootWindow -XDefaultScreen -XDefaultScreenOfDisplay -XDefaultString -XDefaultVisual -XDefaultVisualOfScreen -XDefineCursor -XDeleteContext -XDeleteModifiermapEntry -XDeleteProperty -XDestroyIC -XDestroyImage -XDestroyOC -XDestroyRegion -XDestroySubwindows -XDestroyWindow -XDirectionalDependentDrawing -XDisableAccessControl -XDisplayCells -XDisplayHeight -XDisplayHeightMM -XDisplayKeycodes -XDisplayMotionBufferSize -XDisplayName -XDisplayOfIM -XDisplayOfOM -XDisplayOfScreen -XDisplayPlanes -XDisplayString -XDisplayWidth -XDisplayWidthMM -XDoesBackingStore -XDoesSaveUnders -XDrawArc -XDrawArcs -XDrawImageString -XDrawImageString16 -XDrawLine -XDrawLines -XDrawPoint -XDrawPoints -XDrawRectangle -XDrawRectangles -XDrawSegments -XDrawString -XDrawString16 -XDrawText -XDrawText16 -XEHeadOfExtensionList -XESetBeforeFlush -XESetCloseDisplay -XESetCopyGC -XESetCreateFont -XESetCreateGC -XESetError -XESetErrorString -XESetEventToWire -XESetFlushGC -XESetFreeFont -XESetFreeGC -XESetPrintErrorValues -XESetWireToError -XESetWireToEvent -XEmptyRegion -XEnableAccessControl -XEqualRegion -XEventMaskOfScreen -XEventsQueued -XExtendedMaxRequestSize -XExtentsOfFontSet -XFetchBuffer -XFetchBytes -XFetchName -XFillArc -XFillArcs -XFillPolygon -XFillRectangle -XFillRectangles -XFilterEvent -XFindContext -XFindOnExtensionList -XFlush -XFlushGC -XFontsOfFontSet -XForceScreenSaver -XFree -XFreeColormap -XFreeColors -XFreeCursor -XFreeExtensionList -XFreeFont -XFreeFontInfo -XFreeFontNames -XFreeFontPath -XFreeFontSet -XFreeGC -XFreeModifiermap -XFreePixmap -XFreeStringList -XGContextFromGC -XGeometry -XGetAtomName -XGetAtomNames -XGetClassHint -XGetCommand -XGetDefault -XGetErrorDatabaseText -XGetErrorText -XGetFontPath -XGetFontProperty -XGetGCValues -XGetGeometry -XGetICValues -XGetIMValues -XGetIconName -XGetIconSizes -XGetImage -XGetInputFocus -XGetKeyboardControl -XGetKeyboardMapping -XGetModifierMapping -XGetMotionEvents -XGetNormalHints -XGetOCValues -XGetOMValues -XGetPixel -XGetPointerControl -XGetPointerMapping -XGetRGBColormaps -XGetScreenSaver -XGetSelectionOwner -XGetSizeHints -XGetStandardColormap -XGetSubImage -XGetTextProperty -XGetTransientForHint -XGetVisualInfo -XGetWMClientMachine -XGetWMColormapWindows -XGetWMHints -XGetWMIconName -XGetWMName -XGetWMNormalHints -XGetWMProtocols -XGetWMSizeHints -XGetWindowAttributes -XGetWindowProperty -XGetZoomHints -XGrabButton -XGrabKey -XGrabKeyboard -XGrabPointer -XGrabServer -XHeightMMOfScreen -XHeightOfScreen -XIMOfIC -XIconifyWindow -XIfEvent -XImageByteOrder -XInitExtension -XInitImage -XInitThreads -XInsertModifiermapEntry -XInstallColormap -XInternAtom -XInternAtoms -XInternalConnectionNumbers -XIntersectRegion -XKeycodeToKeysym -XKeysymToKeycode -XKeysymToString -XKillClient -XLastKnownRequestProcessed -XListDepths -XListExtensions -XListFonts -XListFontsWithInfo -XListHosts -XListInstalledColormaps -XListPixmapFormats -XListProperties -XLoadFont -XLoadQueryFont -XLocaleOfFontSet -XLocaleOfIM -XLocaleOfOM -XLockDisplay -XLookupColor -XLookupKeysym -XLookupString -XLowerWindow -XMapRaised -XMapSubwindows -XMapWindow -XMaskEvent -XMatchVisualInfo -XMaxCmapsOfScreen -XMaxRequestSize -XMinCmapsOfScreen -XMoveResizeWindow -XMoveWindow -XNewModifiermap -XNextEvent -XNextRequest -XNoOp -XOMOfOC -XOffsetRegion -XOpenDisplay -XOpenIM -XOpenOM -XParseColor -XParseGeometry -XPeekEvent -XPeekIfEvent -XPending -XPlanesOfScreen -XPointInRegion -XPolygonRegion -XProcessInternalConnection -XProtocolRevision -XProtocolVersion -XPutBackEvent -XPutImage -XPutPixel -XQLength -XQueryBestCursor -XQueryBestSize -XQueryBestStipple -XQueryBestTile -XQueryColor -XQueryColors -XQueryExtension -XQueryFont -XQueryKeymap -XQueryPointer -XQueryTextExtents -XQueryTextExtents16 -XQueryTree -XRaiseWindow -XReadBitmapFile -XReadBitmapFileData -XRebindKeysym -XRecolorCursor -XReconfigureWMWindow -XRectInRegion -XRefreshKeyboardMapping -XRegisterIMInstantiateCallback -XRemoveConnectionWatch -XRemoveFromSaveSet -XRemoveHost -XRemoveHosts -XReparentWindow -XResetScreenSaver -XResizeWindow -XResourceManagerString -XRestackWindows -XRootWindow -XRootWindowOfScreen -XRotateBuffers -XRotateWindowProperties -XSaveContext -XScreenCount -XScreenNumberOfScreen -XScreenOfDisplay -XScreenResourceString -XSelectInput -XSendEvent -XServerVendor -XSetAccessControl -XSetAfterFunction -XSetArcMode -XSetAuthorization -XSetBackground -XSetClassHint -XSetClipMask -XSetClipOrigin -XSetClipRectangles -XSetCloseDownMode -XSetCommand -XSetDashes -XSetErrorHandler -XSetFillRule -XSetFillStyle -XSetFont -XSetFontPath -XSetForeground -XSetFunction -XSetGraphicsExposures -XSetICFocus -XSetICValues -XSetIMValues -XSetIOErrorHandler -XSetIconName -XSetIconSizes -XSetInputFocus -XSetLineAttributes -XSetLocaleModifiers -XSetModifierMapping -XSetNormalHints -XSetOCValues -XSetOMValues -XSetPlaneMask -XSetPointerMapping -XSetRGBColormaps -XSetRegion -XSetScreenSaver -XSetSelectionOwner -XSetSizeHints -XSetStandardColormap -XSetStandardProperties -XSetState -XSetStipple -XSetSubwindowMode -XSetTSOrigin -XSetTextProperty -XSetTile -XSetTransientForHint -XSetWMClientMachine -XSetWMColormapWindows -XSetWMHints -XSetWMIconName -XSetWMName -XSetWMNormalHints -XSetWMProperties -XSetWMProtocols -XSetWMSizeHints -XSetWindowBackground -XSetWindowBackgroundPixmap -XSetWindowBorder -XSetWindowBorderPixmap -XSetWindowBorderWidth -XSetWindowColormap -XSetZoomHints -XShrinkRegion -XStoreBuffer -XStoreBytes -XStoreColor -XStoreColors -XStoreName -XStoreNamedColor -XStringListToTextProperty -XStringToKeysym -XSubImage -XSubtractRegion -XSupportsLocale -XSync -XSynchronize -XTextExtents -XTextExtents16 -XTextPropertyToStringList -XTextWidth -XTextWidth16 -XTranslateCoordinates -XUndefineCursor -XUngrabButton -XUngrabKey -XUngrabKeyboard -XUngrabPointer -XUngrabServer -XUninstallColormap -XUnionRectWithRegion -XUnionRegion -XUnloadFont -XUnlockDisplay -XUnmapSubwindows -XUnmapWindow -XUnregisterIMInstantiateCallback -XUnsetICFocus -XVaCreateNestedList -XVendorRelease -XVisualIDFromVisual -XWMGeometry -XWarpPointer -XWhitePixel -XWhitePixelOfScreen -XWidthMMOfScreen -XWidthOfScreen -XWindowEvent -XWithdrawWindow -XWriteBitmapFile -XXorRegion -XcmsAddColorSpace -XcmsAddFunctionSet -XcmsAllocColor -XcmsAllocNamedColor -XcmsCCCOfColormap -XcmsCIELabClipL -XcmsCIELabClipLab -XcmsCIELabClipab -XcmsCIELabQueryMaxC -XcmsCIELabQueryMaxL -XcmsCIELabQueryMaxLC -XcmsCIELabQueryMinL -XcmsCIELabToCIEXYZ -XcmsCIELabWhiteShiftColors -XcmsCIELuvClipL -XcmsCIELuvClipLuv -XcmsCIELuvClipuv -XcmsCIELuvQueryMaxC -XcmsCIELuvQueryMaxL -XcmsCIELuvQueryMaxLC -XcmsCIELuvQueryMinL -XcmsCIELuvToCIEuvY -XcmsCIELuvWhiteShiftColors -XcmsCIEXYZToCIELab -XcmsCIEXYZToCIEuvY -XcmsCIEXYZToCIExyY -XcmsCIEXYZToRGBi -XcmsCIEuvYToCIELuv -XcmsCIEuvYToCIEXYZ -XcmsCIEuvYToTekHVC -XcmsCIExyYToCIEXYZ -XcmsClientWhitePointOfCCC -XcmsConvertColors -XcmsCreateCCC -XcmsDefaultCCC -XcmsDisplayOfCCC -XcmsFormatOfPrefix -XcmsFreeCCC -XcmsLookupColor -XcmsPrefixOfFormat -XcmsQueryBlack -XcmsQueryBlue -XcmsQueryColor -XcmsQueryColors -XcmsQueryGreen -XcmsQueryRed -XcmsQueryWhite -XcmsRGBToRGBi -XcmsRGBiToCIEXYZ -XcmsRGBiToRGB -XcmsScreenNumberOfCCC -XcmsScreenWhitePointOfCCC -XcmsSetCCCOfColormap -XcmsSetCompressionProc -XcmsSetWhiteAdjustProc -XcmsSetWhitePoint -XcmsStoreColor -XcmsStoreColors -XcmsTekHVCClipC -XcmsTekHVCClipV -XcmsTekHVCClipVC -XcmsTekHVCQueryMaxC -XcmsTekHVCQueryMaxV -XcmsTekHVCQueryMaxVC -XcmsTekHVCQueryMaxVSamples -XcmsTekHVCQueryMinV -XcmsTekHVCToCIEuvY -XcmsTekHVCWhiteShiftColors -XcmsVisualOfCCC -XmbDrawImageString -XmbDrawString -XmbDrawText -XmbLookupString -XmbResetIC -XmbSetWMProperties -XmbTextEscapement -XmbTextExtents -XmbTextListToTextProperty -XmbTextPerCharExtents -XmbTextPropertyToTextList -Xpermalloc -XrmCombineDatabase -XrmCombineFileDatabase -XrmDestroyDatabase -XrmEnumerateDatabase -XrmGetDatabase -XrmGetFileDatabase -XrmGetResource -XrmGetStringDatabase -XrmInitialize -XrmLocaleOfDatabase -XrmMergeDatabases -XrmParseCommand -XrmPermStringToQuark -XrmPutFileDatabase -XrmPutLineResource -XrmPutResource -XrmPutStringResource -XrmQGetResource -XrmQGetSearchList -XrmQGetSearchResource -XrmQPutResource -XrmQPutStringResource -XrmQuarkToString -XrmSetDatabase -XrmStringToBindingQuarkList -XrmStringToQuark -XrmStringToQuarkList -XrmUniqueQuark -XwcDrawImageString -XwcDrawString -XwcDrawText -XwcFreeStringList -XwcLookupString -XwcResetIC -XwcTextEscapement -XwcTextExtents -XwcTextListToTextProperty -XwcTextPerCharExtents -XwcTextPropertyToTextList -_XAllocID -_XAllocIDs -_XAllocScratch -_XAllocTemp -_XAsyncErrorHandler -_XConnectDisplay -_XCreateMutex_fn_p -_XDeqAsyncHandler -_XEatData -_XError -_XFlushGCCache -_XFlushIt -_XFreeMutex_fn_p -_XFreeTemp -_XGetAsyncData -_XGetAsyncReply -_XIOError -_XInitImageFuncPtrs -_XKillTimer -_XLockMutex_fn_p -_XRead -_XReadEvents -_XReadPad -_XRegisterFilterByMask -_XRegisterFilterByType -_XRegisterInternalConnection -_XReply -_XSend -_XSetLastRequestRead -_XSetTimer -_XUnknownNativeEvent -_XUnlockMutex_fn_p -_XUnregisterFilter -_XUnregisterInternalConnection -_XVIDtoVisual -_XWinSelectWindow -_Xdebug_p -_Xglobal_lock_p -_Xthread_init -_Xthread_waiter -; EOF diff --git a/posix/lib/psxx/misc/psxx.edf b/posix/lib/psxx/misc/psxx.edf deleted file mode 100644 index e760cc0b035..00000000000 --- a/posix/lib/psxx/misc/psxx.edf +++ /dev/null @@ -1,631 +0,0 @@ -; $Id: psxx.edf,v 1.3 2002/10/29 04:45:50 rex Exp $ -; -; ReactOS - POSIX+ - X/11 over W32k -; -LIBRARY psxx.dll -; -EXPORTS -XActivateScreenSaver -XAddConnectionWatch -XAddExtension -XAddHost -XAddHosts -XAddPixel -XAddToExtensionList -XAddToSaveSet -XAllPlanes -XAllocClassHint -XAllocColor -XAllocColorCells -XAllocColorPlanes -XAllocIconSize -XAllocNamedColor -XAllocSizeHints -XAllocStandardColormap -XAllocWMHints -XAllowEvents -XAutoRepeatOff -XAutoRepeatOn -XBaseFontNameListOfFontSet -XBell -XBitmapBitOrder -XBitmapPad -XBitmapUnit -XBlackPixel -XBlackPixelOfScreen -XCellsOfScreen -XChangeActivePointerGrab -XChangeGC -XChangeKeyboardControl -XChangeKeyboardMapping -XChangePointerControl -XChangeProperty -XChangeSaveSet -XChangeWindowAttributes -XCheckIfEvent -XCheckMaskEvent -XCheckTypedEvent -XCheckTypedWindowEvent -XCheckWindowEvent -XCirculateSubwindows -XCirculateSubwindowsDown -XCirculateSubwindowsUp -XClearArea -XClearWindow -XClipBox -XCloseDisplay -XCloseIM -XCloseOM -XConfigureWindow -XConnectionNumber -XContextDependentDrawing -XContextualDrawing -XConvertCase -XConvertSelection -XCopyArea -XCopyColormapAndFree -XCopyGC -XCopyPlane -XCreateBitmapFromData -XCreateColormap -XCreateFontCursor -XCreateFontSet -XCreateGC -XCreateGlyphCursor -XCreateIC -XCreateImage -XCreateOC -XCreatePixmap -XCreatePixmapCursor -XCreatePixmapFromBitmapData -XCreateRegion -XCreateSimpleWindow -XCreateWindow -XDefaultColormap -XDefaultColormapOfScreen -XDefaultDepth -XDefaultDepthOfScreen -XDefaultGC -XDefaultGCOfScreen -XDefaultRootWindow -XDefaultScreen -XDefaultScreenOfDisplay -XDefaultString -XDefaultVisual -XDefaultVisualOfScreen -XDefineCursor -XDeleteContext -XDeleteModifiermapEntry -XDeleteProperty -XDestroyIC -XDestroyImage -XDestroyOC -XDestroyRegion -XDestroySubwindows -XDestroyWindow -XDirectionalDependentDrawing -XDisableAccessControl -XDisplayCells -XDisplayHeight -XDisplayHeightMM -XDisplayKeycodes -XDisplayMotionBufferSize -XDisplayName -XDisplayOfIM -XDisplayOfOM -XDisplayOfScreen -XDisplayPlanes -XDisplayString -XDisplayWidth -XDisplayWidthMM -XDoesBackingStore -XDoesSaveUnders -XDrawArc -XDrawArcs -XDrawImageString -XDrawImageString16 -XDrawLine -XDrawLines -XDrawPoint -XDrawPoints -XDrawRectangle -XDrawRectangles -XDrawSegments -XDrawString -XDrawString16 -XDrawText -XDrawText16 -XEHeadOfExtensionList -XESetBeforeFlush -XESetCloseDisplay -XESetCopyGC -XESetCreateFont -XESetCreateGC -XESetError -XESetErrorString -XESetEventToWire -XESetFlushGC -XESetFreeFont -XESetFreeGC -XESetPrintErrorValues -XESetWireToError -XESetWireToEvent -XEmptyRegion -XEnableAccessControl -XEqualRegion -XEventMaskOfScreen -XEventsQueued -XExtendedMaxRequestSize -XExtentsOfFontSet -XFetchBuffer -XFetchBytes -XFetchName -XFillArc -XFillArcs -XFillPolygon -XFillRectangle -XFillRectangles -XFilterEvent -XFindContext -XFindOnExtensionList -XFlush -XFlushGC -XFontsOfFontSet -XForceScreenSaver -XFree -XFreeColormap -XFreeColors -XFreeCursor -XFreeExtensionList -XFreeFont -XFreeFontInfo -XFreeFontNames -XFreeFontPath -XFreeFontSet -XFreeGC -XFreeModifiermap -XFreePixmap -XFreeStringList -XGContextFromGC -XGeometry -XGetAtomName -XGetAtomNames -XGetClassHint -XGetCommand -XGetDefault -XGetErrorDatabaseText -XGetErrorText -XGetFontPath -XGetFontProperty -XGetGCValues -XGetGeometry -XGetICValues -XGetIMValues -XGetIconName -XGetIconSizes -XGetImage -XGetInputFocus -XGetKeyboardControl -XGetKeyboardMapping -XGetModifierMapping -XGetMotionEvents -XGetNormalHints -XGetOCValues -XGetOMValues -XGetPixel -XGetPointerControl -XGetPointerMapping -XGetRGBColormaps -XGetScreenSaver -XGetSelectionOwner -XGetSizeHints -XGetStandardColormap -XGetSubImage -XGetTextProperty -XGetTransientForHint -XGetVisualInfo -XGetWMClientMachine -XGetWMColormapWindows -XGetWMHints -XGetWMIconName -XGetWMName -XGetWMNormalHints -XGetWMProtocols -XGetWMSizeHints -XGetWindowAttributes -XGetWindowProperty -XGetZoomHints -XGrabButton -XGrabKey -XGrabKeyboard -XGrabPointer -XGrabServer -XHeightMMOfScreen -XHeightOfScreen -XIMOfIC -XIconifyWindow -XIfEvent -XImageByteOrder -XInitExtension -XInitImage -XInitThreads -XInsertModifiermapEntry -XInstallColormap -XInternAtom -XInternAtoms -XInternalConnectionNumbers -XIntersectRegion -XKeycodeToKeysym -XKeysymToKeycode -XKeysymToString -XKillClient -XLastKnownRequestProcessed -XListDepths -XListExtensions -XListFonts -XListFontsWithInfo -XListHosts -XListInstalledColormaps -XListPixmapFormats -XListProperties -XLoadFont -XLoadQueryFont -XLocaleOfFontSet -XLocaleOfIM -XLocaleOfOM -XLockDisplay -XLookupColor -XLookupKeysym -XLookupString -XLowerWindow -XMapRaised -XMapSubwindows -XMapWindow -XMaskEvent -XMatchVisualInfo -XMaxCmapsOfScreen -XMaxRequestSize -XMinCmapsOfScreen -XMoveResizeWindow -XMoveWindow -XNewModifiermap -XNextEvent -XNextRequest -XNoOp -XOMOfOC -XOffsetRegion -XOpenDisplay -XOpenIM -XOpenOM -XParseColor -XParseGeometry -XPeekEvent -XPeekIfEvent -XPending -XPlanesOfScreen -XPointInRegion -XPolygonRegion -XProcessInternalConnection -XProtocolRevision -XProtocolVersion -XPutBackEvent -XPutImage -XPutPixel -XQLength -XQueryBestCursor -XQueryBestSize -XQueryBestStipple -XQueryBestTile -XQueryColor -XQueryColors -XQueryExtension -XQueryFont -XQueryKeymap -XQueryPointer -XQueryTextExtents -XQueryTextExtents16 -XQueryTree -XRaiseWindow -XReadBitmapFile -XReadBitmapFileData -XRebindKeysym -XRecolorCursor -XReconfigureWMWindow -XRectInRegion -XRefreshKeyboardMapping -XRegisterIMInstantiateCallback -XRemoveConnectionWatch -XRemoveFromSaveSet -XRemoveHost -XRemoveHosts -XReparentWindow -XResetScreenSaver -XResizeWindow -XResourceManagerString -XRestackWindows -XRootWindow -XRootWindowOfScreen -XRotateBuffers -XRotateWindowProperties -XSaveContext -XScreenCount -XScreenNumberOfScreen -XScreenOfDisplay -XScreenResourceString -XSelectInput -XSendEvent -XServerVendor -XSetAccessControl -XSetAfterFunction -XSetArcMode -XSetAuthorization -XSetBackground -XSetClassHint -XSetClipMask -XSetClipOrigin -XSetClipRectangles -XSetCloseDownMode -XSetCommand -XSetDashes -XSetErrorHandler -XSetFillRule -XSetFillStyle -XSetFont -XSetFontPath -XSetForeground -XSetFunction -XSetGraphicsExposures -XSetICFocus -XSetICValues -XSetIMValues -XSetIOErrorHandler -XSetIconName -XSetIconSizes -XSetInputFocus -XSetLineAttributes -XSetLocaleModifiers -XSetModifierMapping -XSetNormalHints -XSetOCValues -XSetOMValues -XSetPlaneMask -XSetPointerMapping -XSetRGBColormaps -XSetRegion -XSetScreenSaver -XSetSelectionOwner -XSetSizeHints -XSetStandardColormap -XSetStandardProperties -XSetState -XSetStipple -XSetSubwindowMode -XSetTSOrigin -XSetTextProperty -XSetTile -XSetTransientForHint -XSetWMClientMachine -XSetWMColormapWindows -XSetWMHints -XSetWMIconName -XSetWMName -XSetWMNormalHints -XSetWMProperties -XSetWMProtocols -XSetWMSizeHints -XSetWindowBackground -XSetWindowBackgroundPixmap -XSetWindowBorder -XSetWindowBorderPixmap -XSetWindowBorderWidth -XSetWindowColormap -XSetZoomHints -XShrinkRegion -XStoreBuffer -XStoreBytes -XStoreColor -XStoreColors -XStoreName -XStoreNamedColor -XStringListToTextProperty -XStringToKeysym -XSubImage -XSubtractRegion -XSupportsLocale -XSync -XSynchronize -XTextExtents -XTextExtents16 -XTextPropertyToStringList -XTextWidth -XTextWidth16 -XTranslateCoordinates -XUndefineCursor -XUngrabButton -XUngrabKey -XUngrabKeyboard -XUngrabPointer -XUngrabServer -XUninstallColormap -XUnionRectWithRegion -XUnionRegion -XUnloadFont -XUnlockDisplay -XUnmapSubwindows -XUnmapWindow -XUnregisterIMInstantiateCallback -XUnsetICFocus -XVaCreateNestedList -XVendorRelease -XVisualIDFromVisual -XWMGeometry -XWarpPointer -XWhitePixel -XWhitePixelOfScreen -XWidthMMOfScreen -XWidthOfScreen -XWindowEvent -XWithdrawWindow -XWriteBitmapFile -XXorRegion -XcmsAddColorSpace -XcmsAddFunctionSet -XcmsAllocColor -XcmsAllocNamedColor -XcmsCCCOfColormap -XcmsCIELabClipL -XcmsCIELabClipLab -XcmsCIELabClipab -XcmsCIELabQueryMaxC -XcmsCIELabQueryMaxL -XcmsCIELabQueryMaxLC -XcmsCIELabQueryMinL -XcmsCIELabToCIEXYZ -XcmsCIELabWhiteShiftColors -XcmsCIELuvClipL -XcmsCIELuvClipLuv -XcmsCIELuvClipuv -XcmsCIELuvQueryMaxC -XcmsCIELuvQueryMaxL -XcmsCIELuvQueryMaxLC -XcmsCIELuvQueryMinL -XcmsCIELuvToCIEuvY -XcmsCIELuvWhiteShiftColors -XcmsCIEXYZToCIELab -XcmsCIEXYZToCIEuvY -XcmsCIEXYZToCIExyY -XcmsCIEXYZToRGBi -XcmsCIEuvYToCIELuv -XcmsCIEuvYToCIEXYZ -XcmsCIEuvYToTekHVC -XcmsCIExyYToCIEXYZ -XcmsClientWhitePointOfCCC -XcmsConvertColors -XcmsCreateCCC -XcmsDefaultCCC -XcmsDisplayOfCCC -XcmsFormatOfPrefix -XcmsFreeCCC -XcmsLookupColor -XcmsPrefixOfFormat -XcmsQueryBlack -XcmsQueryBlue -XcmsQueryColor -XcmsQueryColors -XcmsQueryGreen -XcmsQueryRed -XcmsQueryWhite -XcmsRGBToRGBi -XcmsRGBiToCIEXYZ -XcmsRGBiToRGB -XcmsScreenNumberOfCCC -XcmsScreenWhitePointOfCCC -XcmsSetCCCOfColormap -XcmsSetCompressionProc -XcmsSetWhiteAdjustProc -XcmsSetWhitePoint -XcmsStoreColor -XcmsStoreColors -XcmsTekHVCClipC -XcmsTekHVCClipV -XcmsTekHVCClipVC -XcmsTekHVCQueryMaxC -XcmsTekHVCQueryMaxV -XcmsTekHVCQueryMaxVC -XcmsTekHVCQueryMaxVSamples -XcmsTekHVCQueryMinV -XcmsTekHVCToCIEuvY -XcmsTekHVCWhiteShiftColors -XcmsVisualOfCCC -XmbDrawImageString -XmbDrawString -XmbDrawText -XmbLookupString -XmbResetIC -XmbSetWMProperties -XmbTextEscapement -XmbTextExtents -XmbTextListToTextProperty -XmbTextPerCharExtents -XmbTextPropertyToTextList -Xpermalloc -XrmCombineDatabase -XrmCombineFileDatabase -XrmDestroyDatabase -XrmEnumerateDatabase -XrmGetDatabase -XrmGetFileDatabase -XrmGetResource -XrmGetStringDatabase -XrmInitialize -XrmLocaleOfDatabase -XrmMergeDatabases -XrmParseCommand -XrmPermStringToQuark -XrmPutFileDatabase -XrmPutLineResource -XrmPutResource -XrmPutStringResource -XrmQGetResource -XrmQGetSearchList -XrmQGetSearchResource -XrmQPutResource -XrmQPutStringResource -XrmQuarkToString -XrmSetDatabase -XrmStringToBindingQuarkList -XrmStringToQuark -XrmStringToQuarkList -XrmUniqueQuark -XwcDrawImageString -XwcDrawString -XwcDrawText -XwcFreeStringList -XwcLookupString -XwcResetIC -XwcTextEscapement -XwcTextExtents -XwcTextListToTextProperty -XwcTextPerCharExtents -XwcTextPropertyToTextList -_XAllocID -_XAllocIDs -_XAllocScratch -_XAllocTemp -_XAsyncErrorHandler -_XConnectDisplay -_XCreateMutex_fn_p -_XDeqAsyncHandler -_XEatData -_XError -_XFlushGCCache -_XFlushIt -_XFreeMutex_fn_p -_XFreeTemp -_XGetAsyncData -_XGetAsyncReply -_XIOError -_XInitImageFuncPtrs -_XKillTimer -_XLockMutex_fn_p -_XRead -_XReadEvents -_XReadPad -_XRegisterFilterByMask -_XRegisterFilterByType -_XRegisterInternalConnection -_XReply -_XSend -_XSetLastRequestRead -_XSetTimer -_XUnknownNativeEvent -_XUnlockMutex_fn_p -_XUnregisterFilter -_XUnregisterInternalConnection -_XVIDtoVisual -_XWinSelectWindow -_Xdebug_p -_Xglobal_lock_p -_Xthread_init -_Xthread_waiter -; EOF diff --git a/posix/lib/psxx/misc/psxx.rc b/posix/lib/psxx/misc/psxx.rc deleted file mode 100644 index f6167b74469..00000000000 --- a/posix/lib/psxx/misc/psxx.rc +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -VS_VERSION_INFO VERSIONINFO - FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD - PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", RES_STR_COMPANY_NAME - VALUE "FileDescription", "X11R6 client library for the POSIX+ Subsystem\0" - VALUE "FileVersion", RES_STR_FILE_VERSION - VALUE "InternalName", "psxx\0" - VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT - VALUE "OriginalFilename", "psxx.dll\0" - VALUE "ProductName", RES_STR_PRODUCT_NAME - VALUE "ProductVersion", RES_STR_PRODUCT_VERSION - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - diff --git a/posix/lib/psxx/misc/stubs.c b/posix/lib/psxx/misc/stubs.c deleted file mode 100644 index a23d5d02cda..00000000000 --- a/posix/lib/psxx/misc/stubs.c +++ /dev/null @@ -1,629 +0,0 @@ -/* $Id: stubs.c,v 1.3 2002/10/29 04:45:50 rex Exp $ - * - * ReactOS - POSIX+ - X/11 over W32k - */ -#define X_NOT_IMPLEMENTED(n) void n(void) {} -X_NOT_IMPLEMENTED(XActivateScreenSaver) -X_NOT_IMPLEMENTED(XAddConnectionWatch) -X_NOT_IMPLEMENTED(XAddExtension) -X_NOT_IMPLEMENTED(XAddHost) -X_NOT_IMPLEMENTED(XAddHosts) -X_NOT_IMPLEMENTED(XAddPixel) -X_NOT_IMPLEMENTED(XAddToExtensionList) -X_NOT_IMPLEMENTED(XAddToSaveSet) -X_NOT_IMPLEMENTED(XAllPlanes) -X_NOT_IMPLEMENTED(XAllocClassHint) -X_NOT_IMPLEMENTED(XAllocColor) -X_NOT_IMPLEMENTED(XAllocColorCells) -X_NOT_IMPLEMENTED(XAllocColorPlanes) -X_NOT_IMPLEMENTED(XAllocIconSize) -X_NOT_IMPLEMENTED(XAllocNamedColor) -X_NOT_IMPLEMENTED(XAllocSizeHints) -X_NOT_IMPLEMENTED(XAllocStandardColormap) -X_NOT_IMPLEMENTED(XAllocWMHints) -X_NOT_IMPLEMENTED(XAllowEvents) -X_NOT_IMPLEMENTED(XAutoRepeatOff) -X_NOT_IMPLEMENTED(XAutoRepeatOn) -X_NOT_IMPLEMENTED(XBaseFontNameListOfFontSet) -X_NOT_IMPLEMENTED(XBell) -X_NOT_IMPLEMENTED(XBitmapBitOrder) -X_NOT_IMPLEMENTED(XBitmapPad) -X_NOT_IMPLEMENTED(XBitmapUnit) -X_NOT_IMPLEMENTED(XBlackPixel) -X_NOT_IMPLEMENTED(XBlackPixelOfScreen) -X_NOT_IMPLEMENTED(XCellsOfScreen) -X_NOT_IMPLEMENTED(XChangeActivePointerGrab) -X_NOT_IMPLEMENTED(XChangeGC) -X_NOT_IMPLEMENTED(XChangeKeyboardControl) -X_NOT_IMPLEMENTED(XChangeKeyboardMapping) -X_NOT_IMPLEMENTED(XChangePointerControl) -X_NOT_IMPLEMENTED(XChangeProperty) -X_NOT_IMPLEMENTED(XChangeSaveSet) -X_NOT_IMPLEMENTED(XChangeWindowAttributes) -X_NOT_IMPLEMENTED(XCheckIfEvent) -X_NOT_IMPLEMENTED(XCheckMaskEvent) -X_NOT_IMPLEMENTED(XCheckTypedEvent) -X_NOT_IMPLEMENTED(XCheckTypedWindowEvent) -X_NOT_IMPLEMENTED(XCheckWindowEvent) -X_NOT_IMPLEMENTED(XCirculateSubwindows) -X_NOT_IMPLEMENTED(XCirculateSubwindowsDown) -X_NOT_IMPLEMENTED(XCirculateSubwindowsUp) -X_NOT_IMPLEMENTED(XClearArea) -X_NOT_IMPLEMENTED(XClearWindow) -X_NOT_IMPLEMENTED(XClipBox) -X_NOT_IMPLEMENTED(XCloseDisplay) -X_NOT_IMPLEMENTED(XCloseIM) -X_NOT_IMPLEMENTED(XCloseOM) -X_NOT_IMPLEMENTED(XConfigureWindow) -X_NOT_IMPLEMENTED(XConnectionNumber) -X_NOT_IMPLEMENTED(XContextDependentDrawing) -X_NOT_IMPLEMENTED(XContextualDrawing) -X_NOT_IMPLEMENTED(XConvertCase) -X_NOT_IMPLEMENTED(XConvertSelection) -X_NOT_IMPLEMENTED(XCopyArea) -X_NOT_IMPLEMENTED(XCopyColormapAndFree) -X_NOT_IMPLEMENTED(XCopyGC) -X_NOT_IMPLEMENTED(XCopyPlane) -X_NOT_IMPLEMENTED(XCreateBitmapFromData) -X_NOT_IMPLEMENTED(XCreateColormap) -X_NOT_IMPLEMENTED(XCreateFontCursor) -X_NOT_IMPLEMENTED(XCreateFontSet) -X_NOT_IMPLEMENTED(XCreateGC) -X_NOT_IMPLEMENTED(XCreateGlyphCursor) -X_NOT_IMPLEMENTED(XCreateIC) -X_NOT_IMPLEMENTED(XCreateImage) -X_NOT_IMPLEMENTED(XCreateOC) -X_NOT_IMPLEMENTED(XCreatePixmap) -X_NOT_IMPLEMENTED(XCreatePixmapCursor) -X_NOT_IMPLEMENTED(XCreatePixmapFromBitmapData) -X_NOT_IMPLEMENTED(XCreateRegion) -X_NOT_IMPLEMENTED(XCreateSimpleWindow) -X_NOT_IMPLEMENTED(XCreateWindow) -X_NOT_IMPLEMENTED(XDefaultColormap) -X_NOT_IMPLEMENTED(XDefaultColormapOfScreen) -X_NOT_IMPLEMENTED(XDefaultDepth) -X_NOT_IMPLEMENTED(XDefaultDepthOfScreen) -X_NOT_IMPLEMENTED(XDefaultGC) -X_NOT_IMPLEMENTED(XDefaultGCOfScreen) -X_NOT_IMPLEMENTED(XDefaultRootWindow) -X_NOT_IMPLEMENTED(XDefaultScreen) -X_NOT_IMPLEMENTED(XDefaultScreenOfDisplay) -X_NOT_IMPLEMENTED(XDefaultString) -X_NOT_IMPLEMENTED(XDefaultVisual) -X_NOT_IMPLEMENTED(XDefaultVisualOfScreen) -X_NOT_IMPLEMENTED(XDefineCursor) -X_NOT_IMPLEMENTED(XDeleteContext) -X_NOT_IMPLEMENTED(XDeleteModifiermapEntry) -X_NOT_IMPLEMENTED(XDeleteProperty) -X_NOT_IMPLEMENTED(XDestroyIC) -X_NOT_IMPLEMENTED(XDestroyImage) -X_NOT_IMPLEMENTED(XDestroyOC) -X_NOT_IMPLEMENTED(XDestroyRegion) -X_NOT_IMPLEMENTED(XDestroySubwindows) -X_NOT_IMPLEMENTED(XDestroyWindow) -X_NOT_IMPLEMENTED(XDirectionalDependentDrawing) -X_NOT_IMPLEMENTED(XDisableAccessControl) -X_NOT_IMPLEMENTED(XDisplayCells) -X_NOT_IMPLEMENTED(XDisplayHeight) -X_NOT_IMPLEMENTED(XDisplayHeightMM) -X_NOT_IMPLEMENTED(XDisplayKeycodes) -X_NOT_IMPLEMENTED(XDisplayMotionBufferSize) -X_NOT_IMPLEMENTED(XDisplayName) -X_NOT_IMPLEMENTED(XDisplayOfIM) -X_NOT_IMPLEMENTED(XDisplayOfOM) -X_NOT_IMPLEMENTED(XDisplayOfScreen) -X_NOT_IMPLEMENTED(XDisplayPlanes) -X_NOT_IMPLEMENTED(XDisplayString) -X_NOT_IMPLEMENTED(XDisplayWidth) -X_NOT_IMPLEMENTED(XDisplayWidthMM) -X_NOT_IMPLEMENTED(XDoesBackingStore) -X_NOT_IMPLEMENTED(XDoesSaveUnders) -X_NOT_IMPLEMENTED(XDrawArc) -X_NOT_IMPLEMENTED(XDrawArcs) -X_NOT_IMPLEMENTED(XDrawImageString) -X_NOT_IMPLEMENTED(XDrawImageString16) -X_NOT_IMPLEMENTED(XDrawLine) -X_NOT_IMPLEMENTED(XDrawLines) -X_NOT_IMPLEMENTED(XDrawPoint) -X_NOT_IMPLEMENTED(XDrawPoints) -X_NOT_IMPLEMENTED(XDrawRectangle) -X_NOT_IMPLEMENTED(XDrawRectangles) -X_NOT_IMPLEMENTED(XDrawSegments) -X_NOT_IMPLEMENTED(XDrawString) -X_NOT_IMPLEMENTED(XDrawString16) -X_NOT_IMPLEMENTED(XDrawText) -X_NOT_IMPLEMENTED(XDrawText16) -X_NOT_IMPLEMENTED(XEHeadOfExtensionList) -X_NOT_IMPLEMENTED(XESetBeforeFlush) -X_NOT_IMPLEMENTED(XESetCloseDisplay) -X_NOT_IMPLEMENTED(XESetCopyGC) -X_NOT_IMPLEMENTED(XESetCreateFont) -X_NOT_IMPLEMENTED(XESetCreateGC) -X_NOT_IMPLEMENTED(XESetError) -X_NOT_IMPLEMENTED(XESetErrorString) -X_NOT_IMPLEMENTED(XESetEventToWire) -X_NOT_IMPLEMENTED(XESetFlushGC) -X_NOT_IMPLEMENTED(XESetFreeFont) -X_NOT_IMPLEMENTED(XESetFreeGC) -X_NOT_IMPLEMENTED(XESetPrintErrorValues) -X_NOT_IMPLEMENTED(XESetWireToError) -X_NOT_IMPLEMENTED(XESetWireToEvent) -X_NOT_IMPLEMENTED(XEmptyRegion) -X_NOT_IMPLEMENTED(XEnableAccessControl) -X_NOT_IMPLEMENTED(XEqualRegion) -X_NOT_IMPLEMENTED(XEventMaskOfScreen) -X_NOT_IMPLEMENTED(XEventsQueued) -X_NOT_IMPLEMENTED(XExtendedMaxRequestSize) -X_NOT_IMPLEMENTED(XExtentsOfFontSet) -X_NOT_IMPLEMENTED(XFetchBuffer) -X_NOT_IMPLEMENTED(XFetchBytes) -X_NOT_IMPLEMENTED(XFetchName) -X_NOT_IMPLEMENTED(XFillArc) -X_NOT_IMPLEMENTED(XFillArcs) -X_NOT_IMPLEMENTED(XFillPolygon) -X_NOT_IMPLEMENTED(XFillRectangle) -X_NOT_IMPLEMENTED(XFillRectangles) -X_NOT_IMPLEMENTED(XFilterEvent) -X_NOT_IMPLEMENTED(XFindContext) -X_NOT_IMPLEMENTED(XFindOnExtensionList) -X_NOT_IMPLEMENTED(XFlush) -X_NOT_IMPLEMENTED(XFlushGC) -X_NOT_IMPLEMENTED(XFontsOfFontSet) -X_NOT_IMPLEMENTED(XForceScreenSaver) -X_NOT_IMPLEMENTED(XFree) -X_NOT_IMPLEMENTED(XFreeColormap) -X_NOT_IMPLEMENTED(XFreeColors) -X_NOT_IMPLEMENTED(XFreeCursor) -X_NOT_IMPLEMENTED(XFreeExtensionList) -X_NOT_IMPLEMENTED(XFreeFont) -X_NOT_IMPLEMENTED(XFreeFontInfo) -X_NOT_IMPLEMENTED(XFreeFontNames) -X_NOT_IMPLEMENTED(XFreeFontPath) -X_NOT_IMPLEMENTED(XFreeFontSet) -X_NOT_IMPLEMENTED(XFreeGC) -X_NOT_IMPLEMENTED(XFreeModifiermap) -X_NOT_IMPLEMENTED(XFreePixmap) -X_NOT_IMPLEMENTED(XFreeStringList) -X_NOT_IMPLEMENTED(XGContextFromGC) -X_NOT_IMPLEMENTED(XGeometry) -X_NOT_IMPLEMENTED(XGetAtomName) -X_NOT_IMPLEMENTED(XGetAtomNames) -X_NOT_IMPLEMENTED(XGetClassHint) -X_NOT_IMPLEMENTED(XGetCommand) -X_NOT_IMPLEMENTED(XGetDefault) -X_NOT_IMPLEMENTED(XGetErrorDatabaseText) -X_NOT_IMPLEMENTED(XGetErrorText) -X_NOT_IMPLEMENTED(XGetFontPath) -X_NOT_IMPLEMENTED(XGetFontProperty) -X_NOT_IMPLEMENTED(XGetGCValues) -X_NOT_IMPLEMENTED(XGetGeometry) -X_NOT_IMPLEMENTED(XGetICValues) -X_NOT_IMPLEMENTED(XGetIMValues) -X_NOT_IMPLEMENTED(XGetIconName) -X_NOT_IMPLEMENTED(XGetIconSizes) -X_NOT_IMPLEMENTED(XGetImage) -X_NOT_IMPLEMENTED(XGetInputFocus) -X_NOT_IMPLEMENTED(XGetKeyboardControl) -X_NOT_IMPLEMENTED(XGetKeyboardMapping) -X_NOT_IMPLEMENTED(XGetModifierMapping) -X_NOT_IMPLEMENTED(XGetMotionEvents) -X_NOT_IMPLEMENTED(XGetNormalHints) -X_NOT_IMPLEMENTED(XGetOCValues) -X_NOT_IMPLEMENTED(XGetOMValues) -X_NOT_IMPLEMENTED(XGetPixel) -X_NOT_IMPLEMENTED(XGetPointerControl) -X_NOT_IMPLEMENTED(XGetPointerMapping) -X_NOT_IMPLEMENTED(XGetRGBColormaps) -X_NOT_IMPLEMENTED(XGetScreenSaver) -X_NOT_IMPLEMENTED(XGetSelectionOwner) -X_NOT_IMPLEMENTED(XGetSizeHints) -X_NOT_IMPLEMENTED(XGetStandardColormap) -X_NOT_IMPLEMENTED(XGetSubImage) -X_NOT_IMPLEMENTED(XGetTextProperty) -X_NOT_IMPLEMENTED(XGetTransientForHint) -X_NOT_IMPLEMENTED(XGetVisualInfo) -X_NOT_IMPLEMENTED(XGetWMClientMachine) -X_NOT_IMPLEMENTED(XGetWMColormapWindows) -X_NOT_IMPLEMENTED(XGetWMHints) -X_NOT_IMPLEMENTED(XGetWMIconName) -X_NOT_IMPLEMENTED(XGetWMName) -X_NOT_IMPLEMENTED(XGetWMNormalHints) -X_NOT_IMPLEMENTED(XGetWMProtocols) -X_NOT_IMPLEMENTED(XGetWMSizeHints) -X_NOT_IMPLEMENTED(XGetWindowAttributes) -X_NOT_IMPLEMENTED(XGetWindowProperty) -X_NOT_IMPLEMENTED(XGetZoomHints) -X_NOT_IMPLEMENTED(XGrabButton) -X_NOT_IMPLEMENTED(XGrabKey) -X_NOT_IMPLEMENTED(XGrabKeyboard) -X_NOT_IMPLEMENTED(XGrabPointer) -X_NOT_IMPLEMENTED(XGrabServer) -X_NOT_IMPLEMENTED(XHeightMMOfScreen) -X_NOT_IMPLEMENTED(XHeightOfScreen) -X_NOT_IMPLEMENTED(XIMOfIC) -X_NOT_IMPLEMENTED(XIconifyWindow) -X_NOT_IMPLEMENTED(XIfEvent) -X_NOT_IMPLEMENTED(XImageByteOrder) -X_NOT_IMPLEMENTED(XInitExtension) -X_NOT_IMPLEMENTED(XInitImage) -X_NOT_IMPLEMENTED(XInitThreads) -X_NOT_IMPLEMENTED(XInsertModifiermapEntry) -X_NOT_IMPLEMENTED(XInstallColormap) -X_NOT_IMPLEMENTED(XInternAtom) -X_NOT_IMPLEMENTED(XInternAtoms) -X_NOT_IMPLEMENTED(XInternalConnectionNumbers) -X_NOT_IMPLEMENTED(XIntersectRegion) -X_NOT_IMPLEMENTED(XKeycodeToKeysym) -X_NOT_IMPLEMENTED(XKeysymToKeycode) -X_NOT_IMPLEMENTED(XKeysymToString) -X_NOT_IMPLEMENTED(XKillClient) -X_NOT_IMPLEMENTED(XLastKnownRequestProcessed) -X_NOT_IMPLEMENTED(XListDepths) -X_NOT_IMPLEMENTED(XListExtensions) -X_NOT_IMPLEMENTED(XListFonts) -X_NOT_IMPLEMENTED(XListFontsWithInfo) -X_NOT_IMPLEMENTED(XListHosts) -X_NOT_IMPLEMENTED(XListInstalledColormaps) -X_NOT_IMPLEMENTED(XListPixmapFormats) -X_NOT_IMPLEMENTED(XListProperties) -X_NOT_IMPLEMENTED(XLoadFont) -X_NOT_IMPLEMENTED(XLoadQueryFont) -X_NOT_IMPLEMENTED(XLocaleOfFontSet) -X_NOT_IMPLEMENTED(XLocaleOfIM) -X_NOT_IMPLEMENTED(XLocaleOfOM) -X_NOT_IMPLEMENTED(XLockDisplay) -X_NOT_IMPLEMENTED(XLookupColor) -X_NOT_IMPLEMENTED(XLookupKeysym) -X_NOT_IMPLEMENTED(XLookupString) -X_NOT_IMPLEMENTED(XLowerWindow) -X_NOT_IMPLEMENTED(XMapRaised) -X_NOT_IMPLEMENTED(XMapSubwindows) -X_NOT_IMPLEMENTED(XMapWindow) -X_NOT_IMPLEMENTED(XMaskEvent) -X_NOT_IMPLEMENTED(XMatchVisualInfo) -X_NOT_IMPLEMENTED(XMaxCmapsOfScreen) -X_NOT_IMPLEMENTED(XMaxRequestSize) -X_NOT_IMPLEMENTED(XMinCmapsOfScreen) -X_NOT_IMPLEMENTED(XMoveResizeWindow) -X_NOT_IMPLEMENTED(XMoveWindow) -X_NOT_IMPLEMENTED(XNewModifiermap) -X_NOT_IMPLEMENTED(XNextEvent) -X_NOT_IMPLEMENTED(XNextRequest) -X_NOT_IMPLEMENTED(XNoOp) -X_NOT_IMPLEMENTED(XOMOfOC) -X_NOT_IMPLEMENTED(XOffsetRegion) -X_NOT_IMPLEMENTED(XOpenDisplay) -X_NOT_IMPLEMENTED(XOpenIM) -X_NOT_IMPLEMENTED(XOpenOM) -X_NOT_IMPLEMENTED(XParseColor) -X_NOT_IMPLEMENTED(XParseGeometry) -X_NOT_IMPLEMENTED(XPeekEvent) -X_NOT_IMPLEMENTED(XPeekIfEvent) -X_NOT_IMPLEMENTED(XPending) -X_NOT_IMPLEMENTED(XPlanesOfScreen) -X_NOT_IMPLEMENTED(XPointInRegion) -X_NOT_IMPLEMENTED(XPolygonRegion) -X_NOT_IMPLEMENTED(XProcessInternalConnection) -X_NOT_IMPLEMENTED(XProtocolRevision) -X_NOT_IMPLEMENTED(XProtocolVersion) -X_NOT_IMPLEMENTED(XPutBackEvent) -X_NOT_IMPLEMENTED(XPutImage) -X_NOT_IMPLEMENTED(XPutPixel) -X_NOT_IMPLEMENTED(XQLength) -X_NOT_IMPLEMENTED(XQueryBestCursor) -X_NOT_IMPLEMENTED(XQueryBestSize) -X_NOT_IMPLEMENTED(XQueryBestStipple) -X_NOT_IMPLEMENTED(XQueryBestTile) -X_NOT_IMPLEMENTED(XQueryColor) -X_NOT_IMPLEMENTED(XQueryColors) -X_NOT_IMPLEMENTED(XQueryExtension) -X_NOT_IMPLEMENTED(XQueryFont) -X_NOT_IMPLEMENTED(XQueryKeymap) -X_NOT_IMPLEMENTED(XQueryPointer) -X_NOT_IMPLEMENTED(XQueryTextExtents) -X_NOT_IMPLEMENTED(XQueryTextExtents16) -X_NOT_IMPLEMENTED(XQueryTree) -X_NOT_IMPLEMENTED(XRaiseWindow) -X_NOT_IMPLEMENTED(XReadBitmapFile) -X_NOT_IMPLEMENTED(XReadBitmapFileData) -X_NOT_IMPLEMENTED(XRebindKeysym) -X_NOT_IMPLEMENTED(XRecolorCursor) -X_NOT_IMPLEMENTED(XReconfigureWMWindow) -X_NOT_IMPLEMENTED(XRectInRegion) -X_NOT_IMPLEMENTED(XRefreshKeyboardMapping) -X_NOT_IMPLEMENTED(XRegisterIMInstantiateCallback) -X_NOT_IMPLEMENTED(XRemoveConnectionWatch) -X_NOT_IMPLEMENTED(XRemoveFromSaveSet) -X_NOT_IMPLEMENTED(XRemoveHost) -X_NOT_IMPLEMENTED(XRemoveHosts) -X_NOT_IMPLEMENTED(XReparentWindow) -X_NOT_IMPLEMENTED(XResetScreenSaver) -X_NOT_IMPLEMENTED(XResizeWindow) -X_NOT_IMPLEMENTED(XResourceManagerString) -X_NOT_IMPLEMENTED(XRestackWindows) -X_NOT_IMPLEMENTED(XRootWindow) -X_NOT_IMPLEMENTED(XRootWindowOfScreen) -X_NOT_IMPLEMENTED(XRotateBuffers) -X_NOT_IMPLEMENTED(XRotateWindowProperties) -X_NOT_IMPLEMENTED(XSaveContext) -X_NOT_IMPLEMENTED(XScreenCount) -X_NOT_IMPLEMENTED(XScreenNumberOfScreen) -X_NOT_IMPLEMENTED(XScreenOfDisplay) -X_NOT_IMPLEMENTED(XScreenResourceString) -X_NOT_IMPLEMENTED(XSelectInput) -X_NOT_IMPLEMENTED(XSendEvent) -X_NOT_IMPLEMENTED(XServerVendor) -X_NOT_IMPLEMENTED(XSetAccessControl) -X_NOT_IMPLEMENTED(XSetAfterFunction) -X_NOT_IMPLEMENTED(XSetArcMode) -X_NOT_IMPLEMENTED(XSetAuthorization) -X_NOT_IMPLEMENTED(XSetBackground) -X_NOT_IMPLEMENTED(XSetClassHint) -X_NOT_IMPLEMENTED(XSetClipMask) -X_NOT_IMPLEMENTED(XSetClipOrigin) -X_NOT_IMPLEMENTED(XSetClipRectangles) -X_NOT_IMPLEMENTED(XSetCloseDownMode) -X_NOT_IMPLEMENTED(XSetCommand) -X_NOT_IMPLEMENTED(XSetDashes) -X_NOT_IMPLEMENTED(XSetErrorHandler) -X_NOT_IMPLEMENTED(XSetFillRule) -X_NOT_IMPLEMENTED(XSetFillStyle) -X_NOT_IMPLEMENTED(XSetFont) -X_NOT_IMPLEMENTED(XSetFontPath) -X_NOT_IMPLEMENTED(XSetForeground) -X_NOT_IMPLEMENTED(XSetFunction) -X_NOT_IMPLEMENTED(XSetGraphicsExposures) -X_NOT_IMPLEMENTED(XSetICFocus) -X_NOT_IMPLEMENTED(XSetICValues) -X_NOT_IMPLEMENTED(XSetIMValues) -X_NOT_IMPLEMENTED(XSetIOErrorHandler) -X_NOT_IMPLEMENTED(XSetIconName) -X_NOT_IMPLEMENTED(XSetIconSizes) -X_NOT_IMPLEMENTED(XSetInputFocus) -X_NOT_IMPLEMENTED(XSetLineAttributes) -X_NOT_IMPLEMENTED(XSetLocaleModifiers) -X_NOT_IMPLEMENTED(XSetModifierMapping) -X_NOT_IMPLEMENTED(XSetNormalHints) -X_NOT_IMPLEMENTED(XSetOCValues) -X_NOT_IMPLEMENTED(XSetOMValues) -X_NOT_IMPLEMENTED(XSetPlaneMask) -X_NOT_IMPLEMENTED(XSetPointerMapping) -X_NOT_IMPLEMENTED(XSetRGBColormaps) -X_NOT_IMPLEMENTED(XSetRegion) -X_NOT_IMPLEMENTED(XSetScreenSaver) -X_NOT_IMPLEMENTED(XSetSelectionOwner) -X_NOT_IMPLEMENTED(XSetSizeHints) -X_NOT_IMPLEMENTED(XSetStandardColormap) -X_NOT_IMPLEMENTED(XSetStandardProperties) -X_NOT_IMPLEMENTED(XSetState) -X_NOT_IMPLEMENTED(XSetStipple) -X_NOT_IMPLEMENTED(XSetSubwindowMode) -X_NOT_IMPLEMENTED(XSetTSOrigin) -X_NOT_IMPLEMENTED(XSetTextProperty) -X_NOT_IMPLEMENTED(XSetTile) -X_NOT_IMPLEMENTED(XSetTransientForHint) -X_NOT_IMPLEMENTED(XSetWMClientMachine) -X_NOT_IMPLEMENTED(XSetWMColormapWindows) -X_NOT_IMPLEMENTED(XSetWMHints) -X_NOT_IMPLEMENTED(XSetWMIconName) -X_NOT_IMPLEMENTED(XSetWMName) -X_NOT_IMPLEMENTED(XSetWMNormalHints) -X_NOT_IMPLEMENTED(XSetWMProperties) -X_NOT_IMPLEMENTED(XSetWMProtocols) -X_NOT_IMPLEMENTED(XSetWMSizeHints) -X_NOT_IMPLEMENTED(XSetWindowBackground) -X_NOT_IMPLEMENTED(XSetWindowBackgroundPixmap) -X_NOT_IMPLEMENTED(XSetWindowBorder) -X_NOT_IMPLEMENTED(XSetWindowBorderPixmap) -X_NOT_IMPLEMENTED(XSetWindowBorderWidth) -X_NOT_IMPLEMENTED(XSetWindowColormap) -X_NOT_IMPLEMENTED(XSetZoomHints) -X_NOT_IMPLEMENTED(XShrinkRegion) -X_NOT_IMPLEMENTED(XStoreBuffer) -X_NOT_IMPLEMENTED(XStoreBytes) -X_NOT_IMPLEMENTED(XStoreColor) -X_NOT_IMPLEMENTED(XStoreColors) -X_NOT_IMPLEMENTED(XStoreName) -X_NOT_IMPLEMENTED(XStoreNamedColor) -X_NOT_IMPLEMENTED(XStringListToTextProperty) -X_NOT_IMPLEMENTED(XStringToKeysym) -X_NOT_IMPLEMENTED(XSubImage) -X_NOT_IMPLEMENTED(XSubtractRegion) -X_NOT_IMPLEMENTED(XSupportsLocale) -X_NOT_IMPLEMENTED(XSync) -X_NOT_IMPLEMENTED(XSynchronize) -X_NOT_IMPLEMENTED(XTextExtents) -X_NOT_IMPLEMENTED(XTextExtents16) -X_NOT_IMPLEMENTED(XTextPropertyToStringList) -X_NOT_IMPLEMENTED(XTextWidth) -X_NOT_IMPLEMENTED(XTextWidth16) -X_NOT_IMPLEMENTED(XTranslateCoordinates) -X_NOT_IMPLEMENTED(XUndefineCursor) -X_NOT_IMPLEMENTED(XUngrabButton) -X_NOT_IMPLEMENTED(XUngrabKey) -X_NOT_IMPLEMENTED(XUngrabKeyboard) -X_NOT_IMPLEMENTED(XUngrabPointer) -X_NOT_IMPLEMENTED(XUngrabServer) -X_NOT_IMPLEMENTED(XUninstallColormap) -X_NOT_IMPLEMENTED(XUnionRectWithRegion) -X_NOT_IMPLEMENTED(XUnionRegion) -X_NOT_IMPLEMENTED(XUnloadFont) -X_NOT_IMPLEMENTED(XUnlockDisplay) -X_NOT_IMPLEMENTED(XUnmapSubwindows) -X_NOT_IMPLEMENTED(XUnmapWindow) -X_NOT_IMPLEMENTED(XUnregisterIMInstantiateCallback) -X_NOT_IMPLEMENTED(XUnsetICFocus) -X_NOT_IMPLEMENTED(XVaCreateNestedList) -X_NOT_IMPLEMENTED(XVendorRelease) -X_NOT_IMPLEMENTED(XVisualIDFromVisual) -X_NOT_IMPLEMENTED(XWMGeometry) -X_NOT_IMPLEMENTED(XWarpPointer) -X_NOT_IMPLEMENTED(XWhitePixel) -X_NOT_IMPLEMENTED(XWhitePixelOfScreen) -X_NOT_IMPLEMENTED(XWidthMMOfScreen) -X_NOT_IMPLEMENTED(XWidthOfScreen) -X_NOT_IMPLEMENTED(XWindowEvent) -X_NOT_IMPLEMENTED(XWithdrawWindow) -X_NOT_IMPLEMENTED(XWriteBitmapFile) -X_NOT_IMPLEMENTED(XXorRegion) -X_NOT_IMPLEMENTED(XcmsAddColorSpace) -X_NOT_IMPLEMENTED(XcmsAddFunctionSet) -X_NOT_IMPLEMENTED(XcmsAllocColor) -X_NOT_IMPLEMENTED(XcmsAllocNamedColor) -X_NOT_IMPLEMENTED(XcmsCCCOfColormap) -X_NOT_IMPLEMENTED(XcmsCIELabClipL) -X_NOT_IMPLEMENTED(XcmsCIELabClipLab) -X_NOT_IMPLEMENTED(XcmsCIELabClipab) -X_NOT_IMPLEMENTED(XcmsCIELabQueryMaxC) -X_NOT_IMPLEMENTED(XcmsCIELabQueryMaxL) -X_NOT_IMPLEMENTED(XcmsCIELabQueryMaxLC) -X_NOT_IMPLEMENTED(XcmsCIELabQueryMinL) -X_NOT_IMPLEMENTED(XcmsCIELabToCIEXYZ) -X_NOT_IMPLEMENTED(XcmsCIELabWhiteShiftColors) -X_NOT_IMPLEMENTED(XcmsCIELuvClipL) -X_NOT_IMPLEMENTED(XcmsCIELuvClipLuv) -X_NOT_IMPLEMENTED(XcmsCIELuvClipuv) -X_NOT_IMPLEMENTED(XcmsCIELuvQueryMaxC) -X_NOT_IMPLEMENTED(XcmsCIELuvQueryMaxL) -X_NOT_IMPLEMENTED(XcmsCIELuvQueryMaxLC) -X_NOT_IMPLEMENTED(XcmsCIELuvQueryMinL) -X_NOT_IMPLEMENTED(XcmsCIELuvToCIEuvY) -X_NOT_IMPLEMENTED(XcmsCIELuvWhiteShiftColors) -X_NOT_IMPLEMENTED(XcmsCIEXYZToCIELab) -X_NOT_IMPLEMENTED(XcmsCIEXYZToCIEuvY) -X_NOT_IMPLEMENTED(XcmsCIEXYZToCIExyY) -X_NOT_IMPLEMENTED(XcmsCIEXYZToRGBi) -X_NOT_IMPLEMENTED(XcmsCIEuvYToCIELuv) -X_NOT_IMPLEMENTED(XcmsCIEuvYToCIEXYZ) -X_NOT_IMPLEMENTED(XcmsCIEuvYToTekHVC) -X_NOT_IMPLEMENTED(XcmsCIExyYToCIEXYZ) -X_NOT_IMPLEMENTED(XcmsClientWhitePointOfCCC) -X_NOT_IMPLEMENTED(XcmsConvertColors) -X_NOT_IMPLEMENTED(XcmsCreateCCC) -X_NOT_IMPLEMENTED(XcmsDefaultCCC) -X_NOT_IMPLEMENTED(XcmsDisplayOfCCC) -X_NOT_IMPLEMENTED(XcmsFormatOfPrefix) -X_NOT_IMPLEMENTED(XcmsFreeCCC) -X_NOT_IMPLEMENTED(XcmsLookupColor) -X_NOT_IMPLEMENTED(XcmsPrefixOfFormat) -X_NOT_IMPLEMENTED(XcmsQueryBlack) -X_NOT_IMPLEMENTED(XcmsQueryBlue) -X_NOT_IMPLEMENTED(XcmsQueryColor) -X_NOT_IMPLEMENTED(XcmsQueryColors) -X_NOT_IMPLEMENTED(XcmsQueryGreen) -X_NOT_IMPLEMENTED(XcmsQueryRed) -X_NOT_IMPLEMENTED(XcmsQueryWhite) -X_NOT_IMPLEMENTED(XcmsRGBToRGBi) -X_NOT_IMPLEMENTED(XcmsRGBiToCIEXYZ) -X_NOT_IMPLEMENTED(XcmsRGBiToRGB) -X_NOT_IMPLEMENTED(XcmsScreenNumberOfCCC) -X_NOT_IMPLEMENTED(XcmsScreenWhitePointOfCCC) -X_NOT_IMPLEMENTED(XcmsSetCCCOfColormap) -X_NOT_IMPLEMENTED(XcmsSetCompressionProc) -X_NOT_IMPLEMENTED(XcmsSetWhiteAdjustProc) -X_NOT_IMPLEMENTED(XcmsSetWhitePoint) -X_NOT_IMPLEMENTED(XcmsStoreColor) -X_NOT_IMPLEMENTED(XcmsStoreColors) -X_NOT_IMPLEMENTED(XcmsTekHVCClipC) -X_NOT_IMPLEMENTED(XcmsTekHVCClipV) -X_NOT_IMPLEMENTED(XcmsTekHVCClipVC) -X_NOT_IMPLEMENTED(XcmsTekHVCQueryMaxC) -X_NOT_IMPLEMENTED(XcmsTekHVCQueryMaxV) -X_NOT_IMPLEMENTED(XcmsTekHVCQueryMaxVC) -X_NOT_IMPLEMENTED(XcmsTekHVCQueryMaxVSamples) -X_NOT_IMPLEMENTED(XcmsTekHVCQueryMinV) -X_NOT_IMPLEMENTED(XcmsTekHVCToCIEuvY) -X_NOT_IMPLEMENTED(XcmsTekHVCWhiteShiftColors) -X_NOT_IMPLEMENTED(XcmsVisualOfCCC) -X_NOT_IMPLEMENTED(XmbDrawImageString) -X_NOT_IMPLEMENTED(XmbDrawString) -X_NOT_IMPLEMENTED(XmbDrawText) -X_NOT_IMPLEMENTED(XmbLookupString) -X_NOT_IMPLEMENTED(XmbResetIC) -X_NOT_IMPLEMENTED(XmbSetWMProperties) -X_NOT_IMPLEMENTED(XmbTextEscapement) -X_NOT_IMPLEMENTED(XmbTextExtents) -X_NOT_IMPLEMENTED(XmbTextListToTextProperty) -X_NOT_IMPLEMENTED(XmbTextPerCharExtents) -X_NOT_IMPLEMENTED(XmbTextPropertyToTextList) -X_NOT_IMPLEMENTED(Xpermalloc) -X_NOT_IMPLEMENTED(XrmCombineDatabase) -X_NOT_IMPLEMENTED(XrmCombineFileDatabase) -X_NOT_IMPLEMENTED(XrmDestroyDatabase) -X_NOT_IMPLEMENTED(XrmEnumerateDatabase) -X_NOT_IMPLEMENTED(XrmGetDatabase) -X_NOT_IMPLEMENTED(XrmGetFileDatabase) -X_NOT_IMPLEMENTED(XrmGetResource) -X_NOT_IMPLEMENTED(XrmGetStringDatabase) -X_NOT_IMPLEMENTED(XrmInitialize) -X_NOT_IMPLEMENTED(XrmLocaleOfDatabase) -X_NOT_IMPLEMENTED(XrmMergeDatabases) -X_NOT_IMPLEMENTED(XrmParseCommand) -X_NOT_IMPLEMENTED(XrmPermStringToQuark) -X_NOT_IMPLEMENTED(XrmPutFileDatabase) -X_NOT_IMPLEMENTED(XrmPutLineResource) -X_NOT_IMPLEMENTED(XrmPutResource) -X_NOT_IMPLEMENTED(XrmPutStringResource) -X_NOT_IMPLEMENTED(XrmQGetResource) -X_NOT_IMPLEMENTED(XrmQGetSearchList) -X_NOT_IMPLEMENTED(XrmQGetSearchResource) -X_NOT_IMPLEMENTED(XrmQPutResource) -X_NOT_IMPLEMENTED(XrmQPutStringResource) -X_NOT_IMPLEMENTED(XrmQuarkToString) -X_NOT_IMPLEMENTED(XrmSetDatabase) -X_NOT_IMPLEMENTED(XrmStringToBindingQuarkList) -X_NOT_IMPLEMENTED(XrmStringToQuark) -X_NOT_IMPLEMENTED(XrmStringToQuarkList) -X_NOT_IMPLEMENTED(XrmUniqueQuark) -X_NOT_IMPLEMENTED(XwcDrawImageString) -X_NOT_IMPLEMENTED(XwcDrawString) -X_NOT_IMPLEMENTED(XwcDrawText) -X_NOT_IMPLEMENTED(XwcFreeStringList) -X_NOT_IMPLEMENTED(XwcLookupString) -X_NOT_IMPLEMENTED(XwcResetIC) -X_NOT_IMPLEMENTED(XwcTextEscapement) -X_NOT_IMPLEMENTED(XwcTextExtents) -X_NOT_IMPLEMENTED(XwcTextListToTextProperty) -X_NOT_IMPLEMENTED(XwcTextPerCharExtents) -X_NOT_IMPLEMENTED(XwcTextPropertyToTextList) -X_NOT_IMPLEMENTED(_XAllocID) -X_NOT_IMPLEMENTED(_XAllocIDs) -X_NOT_IMPLEMENTED(_XAllocScratch) -X_NOT_IMPLEMENTED(_XAllocTemp) -X_NOT_IMPLEMENTED(_XAsyncErrorHandler) -X_NOT_IMPLEMENTED(_XConnectDisplay) -X_NOT_IMPLEMENTED(_XCreateMutex_fn_p) -X_NOT_IMPLEMENTED(_XDeqAsyncHandler) -X_NOT_IMPLEMENTED(_XEatData) -X_NOT_IMPLEMENTED(_XError) -X_NOT_IMPLEMENTED(_XFlushGCCache) -X_NOT_IMPLEMENTED(_XFlushIt) -X_NOT_IMPLEMENTED(_XFreeMutex_fn_p) -X_NOT_IMPLEMENTED(_XFreeTemp) -X_NOT_IMPLEMENTED(_XGetAsyncData) -X_NOT_IMPLEMENTED(_XGetAsyncReply) -X_NOT_IMPLEMENTED(_XIOError) -X_NOT_IMPLEMENTED(_XInitImageFuncPtrs) -X_NOT_IMPLEMENTED(_XKillTimer) -X_NOT_IMPLEMENTED(_XLockMutex_fn_p) -X_NOT_IMPLEMENTED(_XRead) -X_NOT_IMPLEMENTED(_XReadEvents) -X_NOT_IMPLEMENTED(_XReadPad) -X_NOT_IMPLEMENTED(_XRegisterFilterByMask) -X_NOT_IMPLEMENTED(_XRegisterFilterByType) -X_NOT_IMPLEMENTED(_XRegisterInternalConnection) -X_NOT_IMPLEMENTED(_XReply) -X_NOT_IMPLEMENTED(_XSend) -X_NOT_IMPLEMENTED(_XSetLastRequestRead) -X_NOT_IMPLEMENTED(_XSetTimer) -X_NOT_IMPLEMENTED(_XUnknownNativeEvent) -X_NOT_IMPLEMENTED(_XUnlockMutex_fn_p) -X_NOT_IMPLEMENTED(_XUnregisterFilter) -X_NOT_IMPLEMENTED(_XUnregisterInternalConnection) -X_NOT_IMPLEMENTED(_XVIDtoVisual) -X_NOT_IMPLEMENTED(_XWinSelectWindow) -X_NOT_IMPLEMENTED(_Xdebug_p) -X_NOT_IMPLEMENTED(_Xglobal_lock_p) -X_NOT_IMPLEMENTED(_Xthread_init) -X_NOT_IMPLEMENTED(_Xthread_waiter) -/* EOF */ diff --git a/posix/server/.cvsignore b/posix/server/.cvsignore deleted file mode 100644 index f0022c19403..00000000000 --- a/posix/server/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -*.o -*.d -*.exe -*.dll -*.coff -*.sym diff --git a/posix/server/Makefile b/posix/server/Makefile deleted file mode 100644 index 547dd0481e1..00000000000 --- a/posix/server/Makefile +++ /dev/null @@ -1,52 +0,0 @@ -# $Id: Makefile,v 1.5 2003/01/05 18:27:19 robd Exp $ -# -# ReactOS POSIX+ Environment Subsystem -# - -PATH_TO_TOP = ../../reactos - -TARGET_TYPE = program - -TARGET_PATH = misc - -TARGET_NAME = psxss - -TARGET_APPTYPE = console - -TARGET_SDKLIBS = ntdll.a kernel32.a - -TARGET_CFLAGS = -Iinclude -I../include -D__PSXSS_ON_W32__ - -PSXSS_MISC_OBJECTS = \ - misc/main.o \ - misc/init.o \ - misc/print.o - -PSXSS_OB_OBJECTS = \ - ob/process.o \ - ob/session.o \ - ob/terminal.o - -PSXSS_PORT_OBJECTS = \ - port/api.o \ - port/sbapi.o \ - port/session.o \ - port/utils.o - -PSXSS_CALL_OBJECTS = \ - call/null.o \ - call/_exit.o \ - call/stubs.o \ - call/syscall.o - -TARGET_OBJECTS = \ - $(PSXSS_MISC_OBJECTS) \ - $(PSXSS_OB_OBJECTS) \ - $(PSXSS_PORT_OBJECTS) \ - $(PSXSS_CALL_OBJECTS) - -include $(PATH_TO_TOP)/rules.mak - -include $(TOOLS_PATH)/helper.mk - -# EOF diff --git a/posix/server/call/.cvsignore b/posix/server/call/.cvsignore deleted file mode 100644 index fb1d79a92b5..00000000000 --- a/posix/server/call/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -stubs.c -syscall.c -*.o -*.d diff --git a/posix/server/call/_exit.c b/posix/server/call/_exit.c deleted file mode 100644 index 1193ae600f1..00000000000 --- a/posix/server/call/_exit.c +++ /dev/null @@ -1,39 +0,0 @@ -/* $Id: _exit.c,v 1.4 2004/01/18 21:27:32 ea Exp $ - * - * PROJECT : ReactOS / POSIX+ Environment Subsystem Server - * FILE : reactos/subsys/psx/server/call/_exit.c - * DESCRIPTION: System call _exit(). - * DATE : 2002-04-05 - * AUTHOR : Emanuele Aliberti - * - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write - * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, - * MA 02139, USA. - * - * -------------------------------------------------------------------- - */ -#define NTOS_MODE_USER -#include -#include -#include - -NTSTATUS STDCALL syscall__exit (PPSX_MAX_MESSAGE Msg) -{ - Msg->PsxHeader.Status = STATUS_SUCCESS; - /* TODO */ - return STATUS_SUCCESS; -} -/* EOF */ diff --git a/posix/server/call/null.c b/posix/server/call/null.c deleted file mode 100644 index 2710d9a8cac..00000000000 --- a/posix/server/call/null.c +++ /dev/null @@ -1,38 +0,0 @@ -/* $Id: null.c,v 1.4 2004/01/18 21:27:32 ea Exp $ - * - * PROJECT : ReactOS / POSIX+ Environment Subsystem Server - * FILE : reactos/subsys/psx/server/call/null.c - * DESCRIPTION: Void system call. - * DATE : 2002-04-05 - * AUTHOR : Emanuele Aliberti - * - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write - * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, - * MA 02139, USA. - * - * -------------------------------------------------------------------- - */ -#define NTOS_MODE_USER -#include -#include -#include - -NTSTATUS STDCALL syscall_null (PPSX_MAX_MESSAGE Msg) -{ - Msg->PsxHeader.Status = STATUS_SUCCESS; - return STATUS_SUCCESS; -} -/* EOF */ diff --git a/posix/server/include/.cvsignore b/posix/server/include/.cvsignore deleted file mode 100644 index 4143547671c..00000000000 --- a/posix/server/include/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -syscall.h diff --git a/posix/server/include/psxss.h b/posix/server/include/psxss.h deleted file mode 100644 index e7fbf98948f..00000000000 --- a/posix/server/include/psxss.h +++ /dev/null @@ -1,155 +0,0 @@ -/* $Id: psxss.h,v 1.3 2002/10/29 04:45:54 rex Exp $ */ -#ifndef _PSX_PSXSS_H -#define _PSX_PSXSS_H - -#define NTOS_MODE_USER -#include -#include -#include - -#ifdef __PSXSS_ON_W32__ -#include -#endif - -#define NAME_BUFFER_SIZE 64 - -/* PSXSS GLOBAL DATA */ - -typedef struct _SERVER_DIRECTORY -{ - HANDLE hObject; - LPWSTR wsName; - UNICODE_STRING usName; - -} SERVER_DIRECTORY; - -#define PSXSS_THREADS_PER_PORT 2 - -typedef struct _SERVER_PORT -{ - HANDLE hObject; - LPWSTR wsName; - UNICODE_STRING usName; - PTHREAD_START_ROUTINE EntryPoint; - struct { - HANDLE hObject; - DWORD Id; - } ThreadInfo [PSXSS_THREADS_PER_PORT]; - -} SERVER_PORT, * PSERVER_PORT; - -#define SERVER_DIRECTORY_COUNT 3 -#define SERVER_PORT_COUNT 3 - -typedef struct _SERVER -{ - HANDLE Heap; - SERVER_DIRECTORY Directory [SERVER_DIRECTORY_COUNT]; - SERVER_PORT Port [SERVER_PORT_COUNT]; - -} SERVER; - -#define PSX_PORT_API 0 -#define PSX_PORT_SBAPI 1 -#define PSX_PORT_SESSION 2 - -#define PSX_DIRECTORY_POSIX 0 -#define PSX_DIRECTORY_SESSIONS 1 -#define PSX_DIRECTORY_SYSTEM 2 - -extern SERVER Server; /* server/misc/init.c */ - -/* System call type */ -typedef NTSTATUS (STDCALL *PSX_SYSTEM_CALL)(PPSX_MAX_MESSAGE); - -/* System calls table */ - -extern PSX_SYSTEM_CALL SystemCall []; /* server/call/syscall.c */ - -/* Listener's Threads */ -VOID STDCALL ApiPortListener (PVOID); -VOID STDCALL SbApiPortListener (PVOID); -VOID STDCALL SessionPortListener (PVOID); - -/* TERMINAL OBJECT */ - -typedef struct _PSX_TERMINAL -{ - DWORD Id; - /* TODO */ -} PSX_TERMINAL, * PPSX_TERMINAL; - -/* PROCESS OBJECT */ - -typedef enum -{ - PROCESS_STATUS_INITIALIZATION, - PROCESS_STATUS_READY, - PROCESS_STATUS_WAITING, - PROCESS_STATUS_DEAD, - PROCESS_STATUS_ZOMBIE - -} PROCESS_STATUS; - -typedef DWORD PSX_SECURITY; /* TODO */ - -struct _PSX_SESSION; - -typedef struct _PSX_PROCESS -{ - INT Id; /* pid */ - HANDLE hProcess; /* hProcess */ - PROCESS_STATUS Status; - struct _PSX_PROCESS * Parent; - struct _PSX_SESSION * Session; - PPSX_TERMINAL ControlTty; - PSX_SECURITY Security; - -} PSX_PROCESS, * PPSX_PROCESS; - -/* SESSION OBJECT */ - -typedef enum -{ - SESSION_STATUS_INITIALIZATION, - SESSION_STATUS_READY, - SESSION_STATUS_SHUTDOWN, - SESSION_STATUS_ERROR - -} SESSION_STATUS; - -typedef struct _PSX_SESSION -{ - DWORD Id; - ULONG ReferenceCount; - SESSION_STATUS Status; - HANDLE Heap; - struct { - HANDLE hPort; - ULONG ulPortIdentifier; - } SessionChannel; - struct { - ULONG Id; /* csrterm pid */ - HANDLE hPort; /* LPC port owned by csrterm: \POSIX+\Sessions\P{Id} */ - struct { - HANDLE Handle; /* Section owned by csrterm: \POSIX+\Sessions\D{Id} */ - PVOID BaseAddress; - ULONG ViewSize; - } Section; - } TerminalChannel; - PPSX_PROCESS Leader; - CRITICAL_SECTION Lock; - struct _PSX_SESSION * Previous; - struct _PSX_SESSION * Next; - -} PSX_SESSION, * PPSX_SESSION; - -/* prototypes */ - -VOID STDCALL debug_print (LPWSTR Template, ...); -NTSTATUS STDCALL PsxInitializeSessions (VOID); /* ob/session.c */ -NTSTATUS STDCALL PsxCreateSession (PLPC_MAX_MESSAGE,HANDLE,ULONG); -NTSTATUS STDCALL PsxInitializeProcesses (VOID); /* ob/process.c */ -NTSTATUS STDCALL PsxCreateProcess (PLPC_MAX_MESSAGE,HANDLE,ULONG); - -#endif /* ndef _PSX_PSXSS_H */ diff --git a/posix/server/misc/.cvsignore b/posix/server/misc/.cvsignore deleted file mode 100644 index 0a94a2b5b10..00000000000 --- a/posix/server/misc/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.o -*.d -*.coff diff --git a/posix/server/misc/init.c b/posix/server/misc/init.c deleted file mode 100644 index bb98b77d982..00000000000 --- a/posix/server/misc/init.c +++ /dev/null @@ -1,320 +0,0 @@ -/* $Id: init.c,v 1.3 2002/10/29 04:45:54 rex Exp $ - * - * PROJECT : ReactOS / POSIX+ Environment Subsystem Server - * FILE : reactos/subsys/psx/server/srv/init.c - * DESCRIPTION: POSIX+ server initialization. - * DATE : 2001-05-05 - * AUTHOR : Emanuele Aliberti - * - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write - * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, - * MA 02139, USA. - * - * -------------------------------------------------------------------- - */ -#include -#include - -#ifdef __PSXSS_ON_W32__ -#include -#endif - -/*** GLOBALS *********************************************************/ - -SERVER Server = -{ - /* .Heap */ - INVALID_HANDLE_VALUE, - /* .Directory */ - { - { INVALID_HANDLE_VALUE, - L"\\"PSX_NS_SUBSYSTEM_DIRECTORY_NAME, - {0,0,NULL} - }, - { INVALID_HANDLE_VALUE, - L"\\"PSX_NS_SUBSYSTEM_DIRECTORY_NAME"\\"PSX_NS_SESSION_DIRECTORY_NAME, - {0,0,NULL} - }, - { INVALID_HANDLE_VALUE, - L"\\"PSX_NS_SUBSYSTEM_DIRECTORY_NAME"\\"PSX_NS_SYSTEM_DIRECTORY_NAME, - {0,0,NULL} - }, - }, - /* .Port */ - { - { INVALID_HANDLE_VALUE, - L"\\"PSX_NS_SUBSYSTEM_DIRECTORY_NAME"\\"PSX_NS_API_PORT_NAME, - {0,0,NULL}, - ApiPortListener - }, - { INVALID_HANDLE_VALUE, - L"\\"PSX_NS_SUBSYSTEM_DIRECTORY_NAME"\\"PSX_NS_SBAPI_PORT_NAME, - {0,0,NULL}, - SbApiPortListener - }, - { INVALID_HANDLE_VALUE, - L"\\"PSX_NS_SUBSYSTEM_DIRECTORY_NAME"\\"PSX_NS_SESSIONAPI_PORT_NAME, - {0,0,NULL}, - SessionPortListener - } - } -}; - -/*** FUNCTIONS *******************************************************/ - -/********************************************************************** - * PdxInitializeHeap/0 PRIVATE - * - * DESCRIPTION - * Initialize the PSX server process' heap. - */ -PRIVATE HANDLE STDCALL -PdxInitializeHeap (VOID) -{ - return Server.Heap = (HANDLE)NtCurrentPeb()->ProcessHeap; -} -/********************************************************************** - * PdxCreateDirectory/1 PRIVATE - * - * DESCRIPTION - * Create a directory in the system name space. - */ -PRIVATE NTSTATUS STDCALL -PdxCreateDirectory ( - IN ULONG ulIndex - ) -{ - OBJECT_ATTRIBUTES ObjectAttributes; - NTSTATUS Status; - - RtlCreateUnicodeString ( - & Server.Directory[ulIndex].usName, - Server.Directory[ulIndex].wsName - ); - InitializeObjectAttributes ( - & ObjectAttributes, - & Server.Directory[ulIndex].usName, - 0, - NULL, - NULL - ); - Status = NtCreateDirectoryObject( - & Server.Directory[ulIndex].hObject, - DIRECTORY_ALL_ACCESS, - & ObjectAttributes - ); - if (!NT_SUCCESS(Status)) - { - debug_print( - L"PSXSS: %s directory creation failed (Status = %08x)", - Server.Directory[ulIndex].wsName, - Status - ); - - } - return Status; -} -/********************************************************************** - * PdxInitializeDirectories/0 PRIVATE - * - * DESCRIPTION - * Create the directories used by the POSIX+ subsystem - * components in the system name space. - */ -PRIVATE NTSTATUS STDCALL -PdxInitializeDirectories (VOID) -{ - NTSTATUS Status; - ULONG ulIndex; - - for ( ulIndex = 0; - (ulIndex < (sizeof Server.Directory / sizeof Server.Directory[0])); - ulIndex ++) - { - Status = PdxCreateDirectory (ulIndex); - if (!NT_SUCCESS(Status)) return Status; - } - return STATUS_SUCCESS; -} -/********************************************************************** - * PdxInitializeListener/1 PRIVATE - * - * DESCRIPTION - * Initialize a thread to make an LPC port listen. - */ -PRIVATE NTSTATUS STDCALL -PdxInitializeListener (ULONG ulIndex) -{ - NTSTATUS Status; - OBJECT_ATTRIBUTES Oa; - ULONG ulThreadIndex; - - RtlInitUnicodeString ( - & Server.Port[ulIndex].usName, - Server.Port[ulIndex].wsName - ); - InitializeObjectAttributes( - & Oa, - & Server.Port[ulIndex].usName, - 0, - NULL, - NULL - ); - /* Create the listening LPC port */ - Status = NtCreatePort ( - & Server.Port[ulIndex].hObject, - & Oa, - 260, - 328, - 0 - ); - if (!NT_SUCCESS(Status)) - { - debug_print( - L"PSXSS: Unable to create port \"%s\": Status %08x\n", - Server.Port[ulIndex].wsName, - Status); - return Status; - } - /* - * Create the server thread that will process - * messages sent to this port. - */ - for ( ulThreadIndex = 0; - (ulThreadIndex < PSXSS_THREADS_PER_PORT); - ulThreadIndex ++ - ) - { -#ifdef __PSXSS_ON_W32__ - Server.Port[ulIndex].ThreadInfo[ulThreadIndex].hObject = - CreateThread ( - NULL, - 0, - (PTHREAD_START_ROUTINE) Server.Port[ulIndex].EntryPoint, - (PVOID) ulIndex, - CREATE_SUSPENDED, - & Server.Port[ulIndex].ThreadInfo[ulThreadIndex].Id - ); - if (NULL == Server.Port[ulIndex].ThreadInfo[ulThreadIndex].hObject) -#else - if (!NT_SUCCESS(Status)) -#endif - { - debug_print( - L"PSXSS: Unable to create a server thread for port \"%s\": Status %08x\n", - Server.Port[ulIndex].wsName, - Status - ); - NtClose (Server.Port[ulIndex].hObject); - return Status; - } - } - return STATUS_SUCCESS; -} -/********************************************************************** - * PsxInitializeListeners/0 PRIVATE - * - * DESCRIPTION - * Initialize the LPC ports and associate threads. - */ -PRIVATE NTSTATUS STDCALL -PdxInitializeListeners (VOID) -{ - NTSTATUS Status; - ULONG ulIndex; - - for ( ulIndex = 0; - (ulIndex < (sizeof Server.Port / sizeof Server.Port[0])); - ulIndex ++) - { - Status = PdxInitializeListener (ulIndex); - if (!NT_SUCCESS(Status)) return Status; - } - return STATUS_SUCCESS; -} -/********************************************************************** - * PdxRunServer/0 PRIVATE - * - * DESCRIPTION - * Wake up all suspended threads. - */ -PRIVATE NTSTATUS STDCALL -PdxRunServer (VOID) -{ - NTSTATUS Status; - ULONG ulIndex; - ULONG ulThreadIndex; - - for ( ulIndex = 0; - (ulIndex < (sizeof Server.Port / sizeof Server.Port[0])); - ulIndex ++) - { - for (ulThreadIndex = 0; - (ulThreadIndex < PSXSS_THREADS_PER_PORT); - ulThreadIndex ++ - ) - { -#ifdef __PSXSS_ON_W32__ - if (0xFFFFFFFF == ResumeThread (Server.Port[ulIndex].ThreadInfo[ulThreadIndex].hObject)) -#else - Status = NtResumeThread (Server.Port[ulIndex].ThreadInfo[ulThreadIndex].hObject, NULL); - if (!NT_SUCCESS(Status)) -#endif - { - debug_print( - L"PSXSS: "__FUNCTION__": NtResumeThread failed with Status = %08x", - Status - ); - return Status; - } - } - } - return STATUS_SUCCESS; -} -/********************************************************************** - * PsxServerInitialization/2 - * - * DESCRIPTION - * Initialize the PSX server process. - */ -NTSTATUS STDCALL -PsxServerInitialization ( - IN ULONG ArgumentCount, - IN PWSTR *ArgumentArray - ) -{ - NTSTATUS Status; - - /* Get our heap */ - PdxInitializeHeap (); - /* Initialize POSIX+ and Sessions */ - Status = PdxInitializeDirectories (); - if (!NT_SUCCESS(Status)) return Status; - /* LPCs dispatchers */ - Status = PdxInitializeListeners (); - if (!NT_SUCCESS(Status)) return Status; - /* Terminal manager */ - Status = PsxInitializeSessions (); - if (!NT_SUCCESS(Status)) return Status; - /* Process manager */ - Status = PsxInitializeProcesses (); - if (!NT_SUCCESS(Status)) return Status; - /* OK. Run! */ - Status = PdxRunServer (); - /* Done */ - return Status; -} -/* EOF */ diff --git a/posix/server/misc/main.c b/posix/server/misc/main.c deleted file mode 100644 index cd6f080417b..00000000000 --- a/posix/server/misc/main.c +++ /dev/null @@ -1,89 +0,0 @@ -/* $Id: main.c,v 1.3 2002/10/29 04:45:54 rex Exp $ - * - * PROJECT : ReactOS / POSIX+ Environment Subsystem Server - * FILE : reactos/subsys/psx/server/misc/main.c - * DESCRIPTION: POSIX+ server main. - * DATE : 2001-05-05 - * AUTHOR : Emanuele Aliberti - * - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write - * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, - * MA 02139, USA. - * - * -------------------------------------------------------------------- - * - * 19990605 (Emanuele Aliberti) - * Compiled successfully with egcs 1.1.2 - * 20020323 (Emanuele Aliberti) - * Converted to Win32 for testing it using NT LPC. - */ -#include -#include -#include - -/*** EXTERNAL ********************************************************/ - -NTSTATUS STDCALL -PsxServerInitialization ( - IN ULONG ArgumentCount, - IN PWSTR *ArgumentArray - ); - -/*** ENTRY POINT *****************************************************/ - -#ifdef __PSXSS_ON_W32__ // W32 PSXSS.EXE -int main (int argc, char * argv[]) -{ - INT c; - - debug_print(L"POSIX+ Subsystem for ReactOS "KERNEL_RELEASE_STR); - - if (STATUS_SUCCESS == PsxServerInitialization(0,NULL)) - { - debug_print(L"PSXSS: server active"); - while (TRUE) - { - c = getch(); - if (c == 1) break; - } - } - else - { - debug_print(L"PSXSS: Subsystem initialization failed.\n"); - } - return 0; -} -#else /* Native PSXSS.EXE */ -VOID NtProcessStartup (PPEB Peb) -{ - UNICODE_STRING Banner; - - RtlInitUnicodeString (& Banner, L"POSIX+ Subsystem for ReactOS "KERNEL_RELEASE_STR); - NtDisplayString(& Banner); - - if (STATUS_SUCCESS == PsxServerInitialization(0,NULL)) - { - DbgPrint("PSXSS: server active\n"); - /* TODO */ - } - else - { - DbgPrint("PSXSS: Subsystem initialization failed.\n"); - } - NtTerminateProcess (NtCurrentProcess(), 0); -} -#endif -/* EOF */ diff --git a/posix/server/misc/print.c b/posix/server/misc/print.c deleted file mode 100644 index 1b4db8bbf39..00000000000 --- a/posix/server/misc/print.c +++ /dev/null @@ -1,18 +0,0 @@ -/* $Id: print.c,v 1.3 2002/10/29 04:45:54 rex Exp $ */ -#define UNICODE -#include -VOID STDCALL debug_print (LPWSTR Template, ...) -{ - WCHAR Buffer [1024]; - va_list ArgumentPointer; - - va_start(ArgumentPointer, Template); - vswprintf(Buffer, Template, ArgumentPointer); - va_end(ArgumentPointer); -#ifdef __PSXSS_ON_W32__ - _putws (Buffer); -#else -#error TODO -#endif -} -/* EOF */ diff --git a/posix/server/misc/psxss.rc b/posix/server/misc/psxss.rc deleted file mode 100644 index 29d68b46e39..00000000000 --- a/posix/server/misc/psxss.rc +++ /dev/null @@ -1,4 +0,0 @@ -#define REACTOS_STR_FILE_DESCRIPTION "POSIX+ Environment Subsystem Server\0" -#define REACTOS_STR_INTERNAL_NAME "psxss\0" -#define REACTOS_STR_ORIGINAL_FILENAME "psxss.exe\0" -#include diff --git a/posix/server/ob/.cvsignore b/posix/server/ob/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/server/ob/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/server/ob/process.c b/posix/server/ob/process.c deleted file mode 100644 index 3dad481e832..00000000000 --- a/posix/server/ob/process.c +++ /dev/null @@ -1,56 +0,0 @@ -/* $Id: process.c,v 1.4 2003/12/21 20:11:46 ea Exp $ - * - * PROJECT : ReactOS / POSIX+ Environment Subsystem Server - * FILE : reactos/subsys/psx/server/ob/session.c - * DESCRIPTION: terminal - * DATE : 2002-04-04 - * AUTHOR : Emanuele Aliberti - * - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write - * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, - * MA 02139, USA. - * - * -------------------------------------------------------------------- - */ -#include - -/********************************************************************** - * PsxInitializeProcesses/0 - */ -NTSTATUS STDCALL -PsxInitializeProcesses (VOID) -{ - debug_print (L"PSXSS: ->%s", __FUNCTION__); - /* TODO */ - debug_print (L"PSXSS: <-%s", __FUNCTION__); - return STATUS_SUCCESS; -} -/********************************************************************** - * PsxCreateProcess/3 - */ -NTSTATUS STDCALL -PsxCreateProcess ( - PLPC_MAX_MESSAGE pRequest, - HANDLE hConnectedPort, - ULONG ulPortIdentifier - ) -{ - debug_print (L"PSXSS: ->%s", __FUNCTION__); - /* TODO */ - debug_print (L"PSXSS: <-%s", __FUNCTION__); - return STATUS_SUCCESS; -} -/* EOF */ diff --git a/posix/server/ob/session.c b/posix/server/ob/session.c deleted file mode 100644 index c8d2685bd71..00000000000 --- a/posix/server/ob/session.c +++ /dev/null @@ -1,307 +0,0 @@ -/* $Id: session.c,v 1.4 2003/12/21 20:11:46 ea Exp $ - * - * PROJECT : ReactOS / POSIX+ Environment Subsystem Server - * FILE : reactos/subsys/psx/server/ob/session.c - * DESCRIPTION: terminal - * DATE : 2002-04-04 - * AUTHOR : Emanuele Aliberti - * - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write - * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, - * MA 02139, USA. - * - * -------------------------------------------------------------------- - */ -#include - -#define LOCK_ALL_SESSIONS RtlEnterCriticalSection(& Sessions.Lock) -#define UNLOCK_ALL_SESSIONS RtlLeaveCriticalSection(& Sessions.Lock) -#define LOCK_THIS_SESSION RtlEnterCriticalSection(& Session->Lock) -#define UNLOCK_THIS_SESSION RtlLeaveCriticalSection(& Session->Lock) - - -/* A double-linked list for the PSX_SESSION instances */ - -static struct -{ - ULONG NextFreeId; - LONG Count; - PPSX_SESSION List; - CRITICAL_SECTION Lock; - -} Sessions; - -/**** FUNCTIONS ******************************************************/ - -/********************************************************************** - * PsxInitializeSessions/0 - * - * DESCRIPTION - * Initialize the PSX session manager. - * ARGUMENTS - * None. - * RETURN VALUE - * None. - */ -NTSTATUS STDCALL -PsxInitializeSessions (VOID) -{ - debug_print (L"PSXSS: ->%s", __FUNCTION__); - /* Initalize the attributes */ - Sessions.NextFreeId = 0; - Sessions.Count = 0; - Sessions.List = NULL; - RtlInitializeCriticalSection (& Sessions.Lock); - return STATUS_SUCCESS; -} -/********************************************************************** - * PsxCreateSessionObjects/1 PRIVATE - * - */ -PRIVATE NTSTATUS STDCALL -PsxCreateSessionObjects ( - IN PLPC_MAX_MESSAGE pRequest, - IN OUT PPSX_SESSION pSession - ) -{ - NTSTATUS Status; - OBJECT_ATTRIBUTES Oa; - WCHAR NameBuffer [NAME_BUFFER_SIZE]; - UNICODE_STRING Name; - SECURITY_QUALITY_OF_SERVICE Sqos; - PSX_CONNECT_PORT_DATA ConnectData; - ULONG ConnectDataSize = sizeof ConnectData; - - /* Port */ - swprintf ( - NameBuffer, - PSX_NS_SESSION_PORT_TEMPLATE, - PSX_NS_SUBSYSTEM_DIRECTORY_NAME, - PSX_NS_SESSION_DIRECTORY_NAME, - pRequest->Header.ClientId.UniqueProcess - ); - debug_print (L"PSXSS: %s: %s", __FUNCTION__, NameBuffer); - RtlInitUnicodeString (& Name, NameBuffer); - InitializeObjectAttributes (& Oa, & Name, 0, NULL, NULL); - RtlZeroMemory (& Sqos, sizeof Sqos); - ConnectData.ConnectionType = PSX_CONNECTION_TYPE_SERVER; - ConnectData.Version = PSX_LPC_PROTOCOL_VERSION; - ConnectData.PortIdentifier = 0; - Status = NtConnectPort ( - & pSession->TerminalChannel.hPort, - & Name, - & Sqos, - NULL, - NULL, - NULL, - (PVOID) & ConnectData, - & ConnectDataSize - ); - if (!NT_SUCCESS(Status)) - { - debug_print (L"PSXSS: %s: NtConnectPort failed with %08x\n", __FUNCTION__, Status); - return Status; - } - /* TODO: */ - /* Section */ - swprintf ( - NameBuffer, - PSX_NS_SESSION_DATA_TEMPLATE, - PSX_NS_SUBSYSTEM_DIRECTORY_NAME, - PSX_NS_SESSION_DIRECTORY_NAME, - pRequest->Header.ClientId.UniqueProcess - ); - debug_print (L"PSXSS: : %s", __FUNCTION__, NameBuffer); - RtlInitUnicodeString (& Name, NameBuffer); - InitializeObjectAttributes (& Oa, & Name, 0, 0, 0); - Status = NtOpenSection ( - & pSession->TerminalChannel.Section.Handle, - SECTION_ALL_ACCESS, /* DesiredAccess */ - & Oa - ); - if (!NT_SUCCESS(Status)) - { - NtClose (pSession->TerminalChannel.hPort); - debug_print (L"PSXSS: %s: NtOpenSection failed with %08x\n", __FUNCTION__, Status); - return Status; - } - pSession->TerminalChannel.Section.BaseAddress = NULL; - pSession->TerminalChannel.Section.ViewSize = PSX_TERMINAL_SECTION_SIZE; - Status = NtMapViewOfSection ( - pSession->TerminalChannel.Section.Handle, - NtCurrentProcess(), - & pSession->TerminalChannel.Section.BaseAddress, - 0, /* ZeroBits */ - 0, /* Commitsize */ - 0, /* SectionOffset */ - & pSession->TerminalChannel.Section.ViewSize, - ViewUnmap, - 0, /* AllocationType */ - PAGE_READWRITE /* Protect 4 */ - ); - if (!NT_SUCCESS(Status)) - { - NtClose (pSession->TerminalChannel.hPort); - NtClose (pSession->TerminalChannel.Section.Handle); - debug_print (L"PSXSS: %s: NtMapViewOfSection failed with %08x\n", __FUNCTION__, Status); - return Status; - } - return Status; -} -/********************************************************************** - * PsxCreateSession/3 - * - * DESCRIPTION - * Create a new PSX_SESSION object and insert it in the - * PSX sessions table. - * ARGUMENTS - * MessageHeader - * Id - * RETURN VALUE - * A status value on error; otherwise STATUS_SUCCESS. - */ -NTSTATUS STDCALL -PsxCreateSession ( - IN PLPC_MAX_MESSAGE pRequest, - IN HANDLE hConnectedPort, - IN ULONG ulPortIdentifier - ) -{ - PPSX_SESSION Session = NULL; - - debug_print (L"PSXSS: ->%s", __FUNCTION__); - /* Create the PSX_SESSION object */ - Session = RtlAllocateHeap (Server.Heap, 0, sizeof (PSX_SESSION)); - if (NULL == Session) - { - debug_print (L"PSXSS: %s: failed to create a new session object", __FUNCTION__); - return STATUS_MEMORY_NOT_ALLOCATED; - } - RtlZeroMemory (Session, sizeof (PSX_SESSION)); - /* Initialiaze the new PSX_SESSION object */ - Session->SessionChannel.hPort = hConnectedPort; - Session->SessionChannel.ulPortIdentifier = ulPortIdentifier; - LOCK_ALL_SESSIONS; - Session->Id = Sessions.NextFreeId ++; - UNLOCK_ALL_SESSIONS; - Session->Status = SESSION_STATUS_INITIALIZATION; - Session->Heap = - RtlCreateHeap ( - HEAP_GROWABLE, - NULL, - 65536, - 65536, - NULL, - NULL - ); - if (INVALID_HANDLE_VALUE == Session->Heap) - { - RtlFreeHeap (Server.Heap, 0, Session); - debug_print (L"PSX: %s: failed to create a new heap for session # %d", __FUNCTION__, Session->Id); - return STATUS_MEMORY_NOT_ALLOCATED; - } - RtlInitializeCriticalSection (& Session->Lock); - /* TODO: open the terminal's shared section */ - /* TODO: connect to the terminal's port */ - /* Inset the new PSX_SESSION object in the sessions table */ - LOCK_ALL_SESSIONS; - if (NULL == Sessions.List) - { - Sessions.List = Session; - Session->Previous = Session; - } - Session->Next = Sessions.List; /* Last one points to the top one */ - Session->Previous = Sessions.List->Previous; - Sessions.List->Previous = Session; /* Top one now points to the new one (tail) */ - ++ Sessions.Count; - UNLOCK_ALL_SESSIONS; - /* DONE */ - debug_print (L"%s: session # %d created", __FUNCTION__, Session->Id); - Session->Status = SESSION_STATUS_READY; - return STATUS_SUCCESS; -} -/********************************************************************** - * PsxTerminateSession/1 - * - * DESCRIPTION - * Remove a PSX_SESSION object from the PSX sessions table and - * destroy it. - * - * ARGUMENTS - * - * RETURN VALUE - * A status value on error; otherwise STATUS_SUCCESS. - */ -NTSTATUS STDCALL -PsxTerminateSession ( - IN PPSX_SESSION Session - ) -{ - LONG Id; - PPSX_SESSION Previous = NULL; - PPSX_SESSION Next = NULL; - - /* Release any resource managed by the session */ - RtlDestroyHeap (Session->Heap); - /* Remove the session object from the sessions table */ - LOCK_ALL_SESSIONS; - Id = Session->Id; - Previous = Session->Previous; - Next = Session->Next; - /* TODO: handle the case of no session left */ - Next->Previous = Previous; - Previous->Next = Next; - -- Sessions.Count; - UNLOCK_ALL_SESSIONS; - /* Delete the old PSX_SESSION object */ - RtlFreeHeap (Server.Heap, 0, Session); - /* DONE */ - debug_print(L"PSX: session # %d deleted", Id); - return STATUS_SUCCESS; -} - -NTSTATUS STDCALL -PsxWriteTerminalSession ( - IN PPSX_SESSION Session, - IN PVOID Buffer, - IN ULONG Size, - IN OUT PULONG Written - ) -{ - LOCK_THIS_SESSION; - /* TODO: lock this session's section for writing */ - /* TODO: copy the data in this session's section */ - /* TODO: request a WRITE operation to the session terminal */ - /* TODO: unlock this session's section */ - UNLOCK_THIS_SESSION; -} - -NTSTATUS STDCALL -PsxReadTerminalSession ( - IN PPSX_SESSION Session, - OUT PVOID Buffer, - IN ULONG Size, - IN OUT PULONG Read - ) -{ - LOCK_THIS_SESSION; - /* TODO: lock this session's section for reading */ - /* TODO: request a READ operation to the session terminal */ - /* TODO: copy the data from this session's section */ - /* TODO: unlock this session's section */ - UNLOCK_THIS_SESSION; -} -/* EOF */ diff --git a/posix/server/ob/terminal.c b/posix/server/ob/terminal.c deleted file mode 100644 index c74b5be47d8..00000000000 --- a/posix/server/ob/terminal.c +++ /dev/null @@ -1,56 +0,0 @@ -/* $Id: terminal.c,v 1.3 2002/10/29 04:45:57 rex Exp $ - * - * PROJECT : ReactOS / POSIX+ Environment Subsystem Server - * FILE : reactos/subsys/psx/server/ob/terminal.c - * DESCRIPTION: terminal - * DATE : 2002-04-04 - * AUTHOR : Emanuele Aliberti - * - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write - * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, - * MA 02139, USA. - * - * -------------------------------------------------------------------- - */ -#include - -/********************************************************************** - * WriteTerminal/4 - */ -NTSTATUS STDCALL -WriteTerminal ( - IN PPSX_TERMINAL Terminal, - IN PVOID Buffer, - IN ULONG Size, - IN OUT PULONG WrittenSize - ) -{ - return STATUS_NOT_IMPLEMENTED; -} -/********************************************************************** - * ReadTerminal/4 - */ -NTSTATUS STDCALL -ReadTerminal ( - IN PPSX_TERMINAL Terminal, - IN OUT PVOID Buffer, - IN ULONG Size, - IN OUT PULONG ReadSize - ) -{ - return STATUS_NOT_IMPLEMENTED; -} -/* EOF */ diff --git a/posix/server/port/.cvsignore b/posix/server/port/.cvsignore deleted file mode 100644 index 6142305dc12..00000000000 --- a/posix/server/port/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.o -*.d diff --git a/posix/server/port/api.c b/posix/server/port/api.c deleted file mode 100644 index d6d8b27db2c..00000000000 --- a/posix/server/port/api.c +++ /dev/null @@ -1,196 +0,0 @@ -/* $Id: api.c,v 1.4 2003/12/21 20:11:46 ea Exp $ - * - * PROJECT : ReactOS / POSIX+ Environment Subsystem Server - * FILE : reactos/subsys/psx/server/port/api.c - * DESCRIPTION: \POSIX+\ApiPort LPC port logic. - * DATE : 2001-04-04 - * AUTHOR : Emanuele Aliberti - * - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write - * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, - * MA 02139, USA. - * - * -------------------------------------------------------------------- - */ -#include -#include -#include "utils.h" - -/********************************************************************** - * ProcessConnectionRequest/ PRIVATE - * - * DESCRIPTION - * This is called when a PSX process attaches to PSXDLL.DLL. - */ -PRIVATE NTSTATUS STDCALL -ProcessConnectionRequest (PLPC_MAX_MESSAGE pRequest) -{ - PPSX_CONNECT_PORT_DATA pConnectData = (PPSX_CONNECT_PORT_DATA) & pRequest->Data; - NTSTATUS Status; - HANDLE hConnectedPort; - ULONG ulPortIdentifier; - - debug_print (L"PSXSS: ->%s", __FUNCTION__); - /* Check if the caller is a process */ - Status = PsxCheckConnectionRequest ( - pConnectData, - PSX_CONNECTION_TYPE_PROCESS - ); - if (!NT_SUCCESS(Status)) - { - Status = NtAcceptConnectPort ( - & hConnectedPort, - NULL, - & pRequest->Header, - FALSE, /* reject connection request */ - NULL, - NULL - ); - if (!NT_SUCCESS(Status)) - { - debug_print( - L"PSXSS: %s: NtAcceptConnectPort failed with status=%08x", - __FUNCTION__, - Status - ); - } - return STATUS_UNSUCCESSFUL; - } - /* OK, accept the connection */ - Status = NtAcceptConnectPort ( - & hConnectedPort, - & ulPortIdentifier, - & pRequest->Header, - TRUE, /* accept connection request */ - NULL, - NULL - ); - if (!NT_SUCCESS(Status)) - { - debug_print(L"PSXSS: %s: NtAcceptConnectPort failed with status=%08x", __FUNCTION__, Status); - return Status; - } - Status = PsxCreateProcess (pRequest,hConnectedPort,ulPortIdentifier); - if (!NT_SUCCESS(Status)) - { - debug_print(L"PSXSS: %s: PsxCreateProcess failed with status=%08x", __FUNCTION__, Status); - return Status; - } - Status = NtCompleteConnectPort (hConnectedPort); - if (!NT_SUCCESS(Status)) - { - debug_print(L"PSXSS: %s: NtCompleteConnectPort failed with status=%08x", __FUNCTION__, Status); - return Status; - } - debug_print (L"PSXSS: <-%s", __FUNCTION__); - return STATUS_SUCCESS; -} -/********************************************************************** - * ProcessRequest/ PRIVATE - * - * DESCRIPTION - * This is the actual POSIX system calls dispatcher. - */ -PRIVATE NTSTATUS STDCALL -ProcessRequest (PPSX_MAX_MESSAGE pRequest) -{ - debug_print (L"PSXSS: ->%s", __FUNCTION__); - - if (pRequest->PsxHeader.Procedure < PSX_SYSCALL_APIPORT_COUNT) - { - pRequest->PsxHeader.Status = - SystemCall [pRequest->PsxHeader.Procedure] (pRequest); - } - else - { - pRequest->PsxHeader.Status = STATUS_INVALID_SYSTEM_SERVICE; - } - return STATUS_SUCCESS; -} -/********************************************************************** - * ApiPortListener/1 - * - * DESCRIPTION - * The thread to process messages from the \POSIX+\ApiPort - * LPC port. Mostly used by PSXDLL.DLL. - */ -VOID STDCALL -ApiPortListener (PVOID pArg) -{ - ULONG ulIndex = (ULONG) pArg; - NTSTATUS Status; - LPC_TYPE RequestType; - ULONG PortIdentifier; - PSX_MAX_MESSAGE Request; - PPSX_MAX_MESSAGE Reply = NULL; - BOOL NullReply = FALSE; - - debug_print (L"PSXSS: ->%s pArg=%d", __FUNCTION__, ulIndex); - - while (TRUE) - { - Reply = NULL; - NullReply = FALSE; - while (!NullReply) - { - Status = NtReplyWaitReceivePort ( - Server.Port[ulIndex].hObject, - 0, - (PLPC_MESSAGE) Reply, - (PLPC_MESSAGE) & Request - ); - if (!NT_SUCCESS(Status)) - { - break; - } - RequestType = PORT_MESSAGE_TYPE(Request); - switch (RequestType) - { - case LPC_CONNECTION_REQUEST: - ProcessConnectionRequest ((PLPC_MAX_MESSAGE) & Request); - NullReply = TRUE; - continue; - case LPC_CLIENT_DIED: - case LPC_PORT_CLOSED: - case LPC_DEBUG_EVENT: - case LPC_ERROR_EVENT: - case LPC_EXCEPTION: - NullReply = TRUE; - continue; - default: - if (RequestType != LPC_REQUEST) - { - NullReply = TRUE; - continue; - } - } - Reply = & Request; - Reply->PsxHeader.Status = ProcessRequest (& Request); - NullReply = FALSE; - } - if ((STATUS_INVALID_HANDLE == Status) || - (STATUS_OBJECT_TYPE_MISMATCH == Status)) - { - break; - } - } -#ifdef __PSXSS_ON_W32__ - TerminateThread(GetCurrentThread(),Status); -#else - NtTerminateThread(NtCurrentThread(),Status); -#endif -} -/* EOF */ diff --git a/posix/server/port/sbapi.c b/posix/server/port/sbapi.c deleted file mode 100644 index c29ee14fded..00000000000 --- a/posix/server/port/sbapi.c +++ /dev/null @@ -1,76 +0,0 @@ -/* $Id: sbapi.c,v 1.4 2003/12/21 20:11:46 ea Exp $ - * - * PROJECT : ReactOS / POSIX+ Environment Subsystem Server - * FILE : reactos/subsys/psx/server/port/sbapi.c - * DESCRIPTION: \POSIX+\SbApiPort LPC logic. - * DATE : 2001-03-23 - * AUTHOR : Emanuele Aliberti - * - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write - * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, - * MA 02139, USA. - * - * -------------------------------------------------------------------- - */ -#include -#include "utils.h" - - -/********************************************************************** - * ProcessConnectionRequest/ PRIVATE - */ -PRIVATE NTSTATUS STDCALL -ProcessConnectionRequest (PPSX_MESSAGE pRequest) -{ - return STATUS_NOT_IMPLEMENTED; -} -/********************************************************************** - * ProcessRequest/ PRIVATE - */ -PRIVATE NTSTATUS STDCALL -ProcessRequest (PPSX_MESSAGE pRequest) -{ - return STATUS_NOT_IMPLEMENTED; -} -/********************************************************************** - * SbApiPortListener/1 - * - * DESCRIPTION - * The \POSIX+\SbApiPort LPC port message dispatcher. - * - * NOTE - * what is this port for? Is "Sb" for "shared block"? - */ -VOID STDCALL -SbApiPortListener (PVOID pArg) -{ - NTSTATUS Status; - ULONG PortIdentifier; - PSX_MAX_MESSAGE Request; - PPSX_MAX_MESSAGE Reply = NULL; - - debug_print (L"PSXSS: ->%s pArg=%d", TEXT(__FUNCTION__), (ULONG) pArg); - - RtlZeroMemory (& Request, sizeof Request); - /* TODO */ -#ifdef __PSXSS_ON_W32__ - Sleep(30000); - TerminateThread(GetCurrentThread(),Status); -#else - NtTerminateThread(NtCurrentThread(),Status); -#endif -} -/* EOF */ diff --git a/posix/server/port/session.c b/posix/server/port/session.c deleted file mode 100644 index abd0889521d..00000000000 --- a/posix/server/port/session.c +++ /dev/null @@ -1,195 +0,0 @@ -/* $Id: session.c,v 1.4 2003/12/21 20:11:46 ea Exp $ - * - * PROJECT : ReactOS / POSIX+ Environment Subsystem Server - * FILE : reactos/subsys/psx/server/port/session.c - * DESCRIPTION: \POSIX+\SessionPort LPC port logic. - * DATE : 2002-04-04 - * AUTHOR : Emanuele Aliberti - * - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write - * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, - * MA 02139, USA. - * - * -------------------------------------------------------------------- - */ -#include -#include -#include "utils.h" - -/********************************************************************** - * ProcessConnectionRequest/ PRIVATE - */ -PRIVATE NTSTATUS STDCALL -ProcessConnectionRequest (PLPC_MAX_MESSAGE pRequest) -{ - PPSX_CONNECT_PORT_DATA pConnectData = (PPSX_CONNECT_PORT_DATA) & pRequest->Data; - NTSTATUS Status; - HANDLE hConnectedPort; - ULONG ulPortIdentifier; - - debug_print (L"PSXSS: ->%s", TEXT(__FUNCTION__)); - - /* Check if the caller is a terminal */ - Status = PsxCheckConnectionRequest ( - pConnectData, - PSX_CONNECTION_TYPE_TERMINAL - ); - if (!NT_SUCCESS(Status)) - { - Status = NtAcceptConnectPort ( - & hConnectedPort, - NULL, - & pRequest->Header, - FALSE, /* reject connection request */ - NULL, - NULL - ); - if (!NT_SUCCESS(Status)) - { - debug_print( - L"PSXSS: %s: NtAcceptConnectPort failed with status=%08x", - TEXT(__FUNCTION__), - Status - ); - } - return STATUS_UNSUCCESSFUL; - } - /* OK, accept the connection */ - Status = NtAcceptConnectPort ( - & hConnectedPort, - & ulPortIdentifier, - & pRequest->Header, - TRUE, /* accept connection request */ - NULL, - NULL - ); - if (!NT_SUCCESS(Status)) - { - debug_print(L"PSXSS: %s: NtAcceptConnectPort failed with status=%08x", TEXT(__FUNCTION__), Status); - return Status; - } - /* OK, now create a new PSX_SESSION object */ - Status = PsxCreateSession ( - pRequest, - hConnectedPort, - ulPortIdentifier - ); - if (!NT_SUCCESS(Status)) - { - debug_print(L"PSXSS: %s: PsxCreateSession failed with status=%08x", TEXT(__FUNCTION__), Status); - return Status; - } - Status = NtCompleteConnectPort (hConnectedPort); - if (!NT_SUCCESS(Status)) - { - debug_print(L"PSXSS: %s: NtCompleteConnectPort failed with status=%08x", TEXT(__FUNCTION__), Status); - return Status; - } - debug_print (L"PSXSS: <-%s", TEXT(__FUNCTION__)); - return STATUS_SUCCESS; -} -/********************************************************************** - * ProcessRequest/ PRIVATE - */ -PRIVATE NTSTATUS STDCALL -ProcessRequest (PPSX_MAX_MESSAGE pRequest) -{ - debug_print (L"PSXSS: ->%s", TEXT(__FUNCTION__)); - /* TODO: Read data from the section */ - /* TODO: send data to the process */ - debug_print (L"PSXSS: <-%s", TEXT(__FUNCTION__)); - return STATUS_NOT_IMPLEMENTED; -} -/********************************************************************** - * SessionPortListener/1 - * - * DESCRIPTION - * Listen on port \POSIX+\SessionPort and create new sessions - * when a new terminal emulator calls. - * - * ARGUMENTS - * \POSIX+\SessionPort handle. - * - * RETURN VALUE - * None. - */ -VOID STDCALL -SessionPortListener (PVOID pArg) -{ - ULONG ulIndex = (ULONG) pArg; - NTSTATUS Status; - LPC_TYPE RequestType; - ULONG PortIdentifier; - PSX_MAX_MESSAGE Request; - PPSX_MAX_MESSAGE Reply = NULL; - BOOL NullReply = FALSE; - - debug_print (L"PSXSS: ->%s pArg=%d", TEXT(__FUNCTION__), ulIndex); - - while (TRUE) - { - Reply = NULL; - NullReply = FALSE; - while (!NullReply) - { - Status = NtReplyWaitReceivePort ( - Server.Port[ulIndex].hObject, - 0, - (PLPC_MESSAGE) Reply, - (PLPC_MESSAGE) & Request - ); - if (!NT_SUCCESS(Status)) - { - break; - } - RequestType = PORT_MESSAGE_TYPE(Request); - switch (RequestType) - { - case LPC_CONNECTION_REQUEST: - ProcessConnectionRequest ((PLPC_MAX_MESSAGE) & Request); - NullReply = TRUE; - continue; - case LPC_CLIENT_DIED: - case LPC_PORT_CLOSED: - case LPC_DEBUG_EVENT: - case LPC_ERROR_EVENT: - case LPC_EXCEPTION: - NullReply = TRUE; - continue; - default: - if (RequestType != LPC_REQUEST) - { - NullReply = TRUE; - continue; - } - } - Reply = & Request; - Reply->PsxHeader.Status = ProcessRequest (& Request); - NullReply = FALSE; - } - if ((STATUS_INVALID_HANDLE == Status) || - (STATUS_OBJECT_TYPE_MISMATCH == Status)) - { - break; - } - } -#ifdef __PSXSS_ON_W32__ - TerminateThread(GetCurrentThread(),Status); -#else - NtTerminateThread(NtCurrentThread(),Status); -#endif -} -/* EOF */ diff --git a/posix/server/port/utils.c b/posix/server/port/utils.c deleted file mode 100644 index 6e3c16e0d81..00000000000 --- a/posix/server/port/utils.c +++ /dev/null @@ -1,69 +0,0 @@ -/* $Id: utils.c,v 1.4 2003/12/21 20:11:46 ea Exp $ - * - * PROJECT : ReactOS / POSIX+ Environment Subsystem Server - * FILE : reactos/subsys/psx/server/port/utils.c - * DESCRIPTION: LPC port utilities. - * DATE : 2002-04-07 - * AUTHOR : Emanuele Aliberti - * - * -------------------------------------------------------------------- - * - * This software is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this software; see the file COPYING. If not, write - * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, - * MA 02139, USA. - * - * -------------------------------------------------------------------- - */ -#include -#include "utils.h" - -/********************************************************************** - * PsxCheckConnectionRequest/2 - * - * DESCRIPTION - * Check if we can accept the connection request sent to - * an LPC port. Protocol version and ConnectionType MUST match. - */ -NTSTATUS STDCALL -PsxCheckConnectionRequest ( - IN OUT PPSX_CONNECT_PORT_DATA pConnectData, - IN PSX_CONNECTION_TYPE ConnectionType - ) -{ - /* Check if the caller is ConnectionType */ - if (ConnectionType != pConnectData->ConnectionType) - { - debug_print( - L"PSXSS: %s: ConnectionType=%d, expected %d", - TEXT(__FUNCTION__), - pConnectData->ConnectionType, - ConnectionType - ); - return STATUS_UNSUCCESSFUL; - } - /* Check if the LPC protocol version matches */ - if (PSX_LPC_PROTOCOL_VERSION != pConnectData->Version) - { - debug_print( - L"PSXSS: %s: Version=%d, expected %d", - TEXT(__FUNCTION__), - pConnectData->Version, - PSX_LPC_PROTOCOL_VERSION - ); - pConnectData->Version = PSX_LPC_PROTOCOL_VERSION; - return STATUS_UNSUCCESSFUL; - } - return STATUS_SUCCESS; -} -/* EOF */ diff --git a/posix/server/port/utils.h b/posix/server/port/utils.h deleted file mode 100644 index fe17468cd23..00000000000 --- a/posix/server/port/utils.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef _UTILS_H -#define _UTILS_H -NTSTATUS STDCALL PsxCheckConnectionRequest (PPSX_CONNECT_PORT_DATA,PSX_CONNECTION_TYPE); -#endif diff --git a/posix/tools/mksystab/.cvsignore b/posix/tools/mksystab/.cvsignore deleted file mode 100644 index bd4f908d5e0..00000000000 --- a/posix/tools/mksystab/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -*.o -*.d -*.exe -*.coff -*.sym -mksystab.map \ No newline at end of file diff --git a/posix/tools/mksystab/Makefile b/posix/tools/mksystab/Makefile deleted file mode 100644 index 87fa226a82a..00000000000 --- a/posix/tools/mksystab/Makefile +++ /dev/null @@ -1,54 +0,0 @@ -# $Id: Makefile,v 1.1 2003/01/05 18:08:11 robd Exp $ -# -# Tool to generate the POSIX+ server system calls table -# and other auxiliary C files. -# - -PATH_TO_TOP = ../../../reactos - -PATH_TO_PSX_TOP = ../.. - -TARGET_TYPE = program - -TARGET_NAME = mksystab - -TARGET_APPTYPE = console - -TARGET_NORC = yes - -SYSCALL_DB=syscall.db -SYSTAB_C=$(PATH_TO_PSX_TOP)/server/call/syscall.c -SYSTAB_H=$(PATH_TO_PSX_TOP)/server/include/syscall.h -SYSCALL_H=$(PATH_TO_PSX_TOP)/include/psx/syscall.h -STUBS_C=$(PATH_TO_PSX_TOP)/server/call/stubs.c - -TARGET_OBJECTS = \ - $(TARGET_NAME).o - - -#all: systab - -#$(TARGET_NAME)$(EXE_POSTFIX): $(TARGET_NAME).c -# $(CC) $(CFLAGS) -o $(TARGET_NAME)$(EXE_POSTFIX) $(TARGET_NAME).c - -#systab: $(TARGET_NAME)$(EXE_POSTFIX) -# $(TARGET_NAME)$(EXE_POSTFIX) \ -# $(SYSCALL_DB) \ -# $(SYSTAB_C) \ -# $(SYSTAB_H) \ -# $(SYSCALL_H) \ -# $(STUBS_C) - -#clean: -# - $(RM) $(TARGET_NAME)$(EXE_POSTFIX) -# - $(RM) *.o -# - $(RM) $(SYSTAB_C) -# - $(RM) $(SYSTAB_H) -# - $(RM) $(SYSCALL_H) -# - $(RM) $(STUBS_C) - -include $(PATH_TO_TOP)/rules.mak - -include $(TOOLS_PATH)/helper.mk - -# EOF diff --git a/posix/tools/mksystab/mksystab.c b/posix/tools/mksystab/mksystab.c deleted file mode 100644 index 4f998ee9eed..00000000000 --- a/posix/tools/mksystab/mksystab.c +++ /dev/null @@ -1,379 +0,0 @@ -/* $Id: mksystab.c,v 1.2 2003/12/21 20:11:46 ea Exp $ - * - * PROJECT : ReactOS / POSIX+ Subsystem - * DESCRIPTION: Build the system calls table for - * DESCRIPTION: the POSIX+ LPC server process. - * NOTE : this code is supposed to be portable. - * AUTHOR : Emanuele Aliberti - * DATE : 2001-05-26 - * REVISIONS - * 2002-03-19 EA added stub file generation - * 2002-04-06 EA added to the CVS repository - */ -#include -#include -#include -#include - -#define PARSER_CONTEXT_LINE_SIZE 1024 -#define PARSER_CONTEXT_INTERFACE_SIZE 64 - -const char * myname = "mksystab"; - -const char * syscall_name_prefix = "syscall_"; -const char * proxy_name_prefix = "psxss_"; - -typedef enum { - METHOD_SUCCESS, - METHOD_EOF, - METHOD_FAILURE -} METHOD_TYPE; - -typedef struct _PARSER_CONTEXT -{ - int line_number; - int id; - char line [PARSER_CONTEXT_LINE_SIZE]; - char status; - char interface [PARSER_CONTEXT_INTERFACE_SIZE]; - int argc; - -} PARSER_CONTEXT, * PPARSER_CONTEXT; - -typedef struct _MFILE -{ - char * name; - FILE * fp; - char * fopen_mode; - METHOD_TYPE (*prologue)(int,PPARSER_CONTEXT); - METHOD_TYPE (*iter)(int,PPARSER_CONTEXT); - METHOD_TYPE (*epilog)(int,PPARSER_CONTEXT); - -} MFILE, * PMFILE; - -/* MFILE file table */ - -METHOD_TYPE db_prologue (int self, PPARSER_CONTEXT context); -METHOD_TYPE db_iter (int self, PPARSER_CONTEXT context); -METHOD_TYPE db_epilog (int self, PPARSER_CONTEXT context); - -METHOD_TYPE systab_prologue (int self, PPARSER_CONTEXT context); -METHOD_TYPE systab_iter (int self, PPARSER_CONTEXT context); -METHOD_TYPE systab_epilog (int self, PPARSER_CONTEXT context); - -METHOD_TYPE psx_include_prologue (int self, PPARSER_CONTEXT context); -METHOD_TYPE psx_include_iter (int self, PPARSER_CONTEXT context); -METHOD_TYPE psx_include_epilog (int self, PPARSER_CONTEXT context); - -METHOD_TYPE server_include_prologue (int self, PPARSER_CONTEXT context); -METHOD_TYPE server_include_iter (int self, PPARSER_CONTEXT context); -METHOD_TYPE server_include_epilog (int self, PPARSER_CONTEXT context); - -METHOD_TYPE stubs_prologue (int self, PPARSER_CONTEXT context); -METHOD_TYPE stubs_iter (int self, PPARSER_CONTEXT context); -METHOD_TYPE stubs_epilog (int self, PPARSER_CONTEXT context); - - -MFILE mf [] = -{ - { NULL, NULL, "r", db_prologue, db_iter, db_epilog }, /* it must be 1st */ - { NULL, NULL, "w", systab_prologue, systab_iter, systab_epilog }, - { NULL, NULL, "w", server_include_prologue, server_include_iter, server_include_epilog }, - { NULL, NULL, "w", psx_include_prologue, psx_include_iter, psx_include_epilog }, - { NULL, NULL, "w", stubs_prologue, stubs_iter, stubs_epilog } -}; - - -/* mf objects methods */ - -int mf_open (int index) -{ - mf [index].fp = fopen (mf [index].name, mf [index].fopen_mode); - if (NULL == mf [index].fp) - { - fprintf (stderr, "%s: error %d while opening \"%s\".", myname, errno, mf [index].name); - return METHOD_FAILURE; - } - return METHOD_SUCCESS; -} - -void mf_close (int index) -{ - fclose (mf[index].fp); -} - -/* db file methods */ - -METHOD_TYPE db_prologue (int self, PPARSER_CONTEXT context) -{ - if (METHOD_FAILURE == mf_open (self)) - { - return METHOD_FAILURE; - } - fprintf (stderr, "Processing \"%s\"...\n", mf [self].name); - return METHOD_SUCCESS; -} - -METHOD_TYPE db_iter (int self, PPARSER_CONTEXT context) -{ - char * eol; - - do - { - if (feof(mf [self].fp)) - { - return METHOD_EOF; - } - if (NULL == fgets (context->line, PARSER_CONTEXT_LINE_SIZE, mf [self].fp)) - { - return METHOD_EOF; - } - ++ context->line_number; - eol = strchr(context->line, '\n'); - if (eol) - { - *eol = '\0'; - } - /* Is line empty or a comment? */ - } while (0 == strlen (context->line) || context->line[0] == '#'); - /* Line is not a comment nor an empty line */ - if (3 != sscanf (context->line, "%c%s%d", & context->status, context->interface, & context->argc)) - { - fprintf (stderr, "Syntax error at line %d.\n", context->line_number); - return METHOD_FAILURE; - } - return METHOD_SUCCESS; -} - -METHOD_TYPE db_epilog (int self, PPARSER_CONTEXT context) -{ - mf_close (self); - return METHOD_SUCCESS; -} - -/* systab file methods */ - -METHOD_TYPE systab_prologue (int self, PPARSER_CONTEXT context) -{ - if (METHOD_FAILURE == mf_open (self)) - { - return METHOD_FAILURE; - } - fprintf (mf[self].fp, "/* POSIX+ system calls (machine generated: do not edit!) */\n"); - fprintf (mf[self].fp, "#include \n"); - fprintf (mf[self].fp, "#include \n"); - fprintf (mf[self].fp, "PSX_SYSTEM_CALL SystemCall [] =\n"); - fprintf (mf[self].fp, "{\n"); - return METHOD_SUCCESS; -} - -METHOD_TYPE systab_iter (int self, PPARSER_CONTEXT context) -{ - switch (context->status) - { - case '+': - case '-': /* unimplemented interface */ - fprintf (mf[self].fp, "(void*)%s%s,\n", syscall_name_prefix, context->interface); - break; - default: - fprintf (stderr, "%s: unknown interface status \"%c\" at line %d.\n", - myname, context->status, context->line_number); - return METHOD_FAILURE; - } - return METHOD_SUCCESS; -} - -METHOD_TYPE systab_epilog (int self, PPARSER_CONTEXT context) -{ - fprintf (mf[self].fp, "0\n};\n"); - fprintf (mf[self].fp, "/* EOF */\n"); - return METHOD_SUCCESS; -} - - -/* server/include file methods */ - -METHOD_TYPE server_include_prologue (int self, PPARSER_CONTEXT context) -{ - if (METHOD_FAILURE == mf_open (self)) - { - return METHOD_FAILURE; - } - fprintf (mf[self].fp, "/* POSIX+ system calls (machine generated: do not edit!) */\n"); - fprintf (mf[self].fp, "#ifndef _SERVER_SYSCALL_H\n"); - fprintf (mf[self].fp, "#define _SERVER_SYSCALL_H\n"); - return METHOD_SUCCESS; -} - -METHOD_TYPE server_include_iter (int self, PPARSER_CONTEXT context) -{ - char interface [PARSER_CONTEXT_INTERFACE_SIZE*2]; - - sprintf (interface, "%s%s", syscall_name_prefix, context->interface); - fprintf (mf[self].fp, "NTSTATUS STDCALL %s (PPSX_MAX_MESSAGE);\n", interface); - - return METHOD_SUCCESS; -} - -METHOD_TYPE server_include_epilog (int self, PPARSER_CONTEXT context) -{ - fprintf (mf[self].fp, "#endif /* ndef _SERVER_SYSCALL_H */\n"); - fprintf (mf[self].fp, "/* EOF */\n"); - return METHOD_SUCCESS; -} - - -/* psx/include file methods */ - -METHOD_TYPE psx_include_prologue (int self, PPARSER_CONTEXT context) -{ - if (METHOD_FAILURE == mf_open (self)) - { - return METHOD_FAILURE; - } - fprintf (mf[self].fp, "/* POSIX+ system calls (machine generated: do not edit!) */\n"); - fprintf (mf[self].fp, "#ifndef _PSX_SYSCALL_H\n"); - fprintf (mf[self].fp, "#define _PSX_SYSCALL_H\n"); - return METHOD_SUCCESS; -} - -METHOD_TYPE psx_include_iter (int self, PPARSER_CONTEXT context) -{ - char interface [PARSER_CONTEXT_INTERFACE_SIZE*2]; - - sprintf (interface, "%s%s", proxy_name_prefix, context->interface); - fprintf (mf[self].fp, "#define %s %d\n", strupr(interface), context->id ++); - - return METHOD_SUCCESS; -} - -METHOD_TYPE psx_include_epilog (int self, PPARSER_CONTEXT context) -{ - fprintf (mf[self].fp, "#define PSX_SYSCALL_APIPORT_COUNT %d\n", context->id ++); - fprintf (mf[self].fp, "#endif /* ndef _PSX_SYSCALL_H */\n"); - fprintf (mf[self].fp, "/* EOF */\n"); - return METHOD_SUCCESS; -} - - -/* stubs file methods */ - -METHOD_TYPE stubs_prologue (int self, PPARSER_CONTEXT context) -{ - if (METHOD_FAILURE == mf_open (self)) - { - return METHOD_FAILURE; - } - fprintf( mf[self].fp, - "/* POSIX+ system calls not yet implemented */\n" - "/* (machine generated: do not edit!) */\n" - "#include \n"); - return METHOD_SUCCESS; -} - -METHOD_TYPE stubs_iter (int self, PPARSER_CONTEXT context) -{ - if ('-' == context->status) - { - fprintf ( - mf[self].fp, - "NTSTATUS STDCALL %s%s(PPSX_MAX_MESSAGE Msg){Msg->PsxHeader.Status=STATUS_NOT_IMPLEMENTED;return(STATUS_SUCCESS);}\n", - syscall_name_prefix, - context->interface - ); - } - return METHOD_SUCCESS; -} - -METHOD_TYPE stubs_epilog (int self, PPARSER_CONTEXT context) -{ - fprintf (mf[self].fp, "/* EOF */\n"); - return METHOD_SUCCESS; -} - - -/* main loop */ - -METHOD_TYPE mksystab () -{ - int index; - int index_top = (sizeof mf / sizeof mf[0]); - int iterate = 1; - PARSER_CONTEXT context; - METHOD_TYPE mt; - - /* initialize the parser's context */ - context.line_number = 0; - context.id = 0; - - /* prologue */ - for (index = 0; index < index_top; index ++) - { - if (METHOD_FAILURE == mf[index].prologue (index, & context)) - { - return METHOD_FAILURE; - } - } - /* iter */ - while (iterate) - { - for (index = 0; index < index_top; index ++) - { - mt = mf[index].iter (index, & context); - if (METHOD_EOF == mt) - { - if (0 == index) /* input MUST be 1st MFILE */ - { - iterate = 0; - break; /* input reached EOF */ - } - return METHOD_FAILURE; - } - else if (METHOD_FAILURE == mt) - { - return METHOD_FAILURE; - } - } - } - /* epilog */ - for (index = 0; index < index_top; index ++) - { - if (METHOD_FAILURE == mf[index].epilog (index, & context)) - { - return METHOD_FAILURE; - } - } - - /* done */ - return METHOD_SUCCESS; -} - -/* entry point */ - -int main (int argc, char **argv) -{ - int status = 0; - int index; - - /* Check user parameters */ - if ((1 + (sizeof mf / sizeof (MFILE))) != argc) - { - printf ("ReactOS Operating System - POSIX+ Environment Subsystem\n"); - printf ("Build the system calls table of the POSIX+ server.\n\n"); - printf ("usage: %s syscall.db syscall.c syscall.h syscall.h stubs.c\n", argv[0]); - exit (METHOD_FAILURE); - } - /* initialize descriptors */ - for (index = 0; index < (sizeof mf / sizeof mf[0]); index ++) - { - mf [index].name = argv [index + 1]; - } - - /* do process them */ - status = mksystab (); - - return (status); -} - - -/* EOF */ diff --git a/posix/tools/mksystab/postbuild.cmd b/posix/tools/mksystab/postbuild.cmd deleted file mode 100644 index 998c134eedc..00000000000 --- a/posix/tools/mksystab/postbuild.cmd +++ /dev/null @@ -1,20 +0,0 @@ -@echo off - -setlocal - -set PATH_TO_TOP=..\..\..\reactos - -set PATH_TO_PSX_TOP=..\.. - -set TARGET_NAME=mksystab - -set SYSCALL_DB=syscall.db -set SYSTAB_C=%PATH_TO_PSX_TOP%\server\call\syscall.c -set SYSTAB_H=%PATH_TO_PSX_TOP%\server\include\syscall.h -set SYSCALL_H=%PATH_TO_PSX_TOP%\include\psx\syscall.h -set STUBS_C=%PATH_TO_PSX_TOP%\server\call\stubs.c - - -mksystab %SYSCALL_DB% %SYSTAB_C% %SYSTAB_H% %SYSCALL_H% %STUBS_C% - -endlocal diff --git a/posix/tools/mksystab/syscall.db b/posix/tools/mksystab/syscall.db deleted file mode 100644 index 3e9e5ccd90f..00000000000 --- a/posix/tools/mksystab/syscall.db +++ /dev/null @@ -1,130 +0,0 @@ -# $Id: syscall.db,v 1.1 2003/01/05 18:08:11 robd Exp $ -# -# ReactOS - Operating System -# Symbolic system calls table for the POSIX+ server. -# -# NOTE: the PSXSS server implements only the system calls -# that can NOT be implemented in full/correctly in the -# PSXDLL library. -# -# ENTRY SYNTAX -# status interface_name argc -# -# status = + | - -# -# LEGENDA -# + means the system call is implemented in the server; -# - means "{errno=ENOSYS;return -1;}". -# -+ null 0 -- fork 0 -- authenticateuser 0 -- waitpid 3 -+ _exit 1 -- kill 2 -- sigaction 3 -- sigprocmask 3 -- sigpending 1 -- sigsuspend 1 -- alarm 1 -- getpsids 0 -- syscall12 0 -- syscall13 0 -- getgroups 2 -- syscall15 0 -- syscall16 0 -- setsid 0 -- setpgid 2 -- syscall19 0 -- syscall20 0 -- times 1 -- ttyname 3 -- isatty 1 -- sysconf 1 -- open 2 -- umask 1 -- link 2 -- mkdir 2 -- mkfifo 2 -- rmdir 1 -- rename 2 -- stat 2 -- fstat 2 -- access 2 -- chmod 2 -- chown 3 -- utime 2 -- pathconf 2 -- fpathconf 2 -- pipe 1 -- syscall41 0 -- dup2 2 -- close 1 -- read 3 -- write 3 -- fcntl 3 -- lseek 3 -- tcgetattr 2 -- tcsetattr 3 -- tcsendbreak 2 -- tcdrain 1 -- tcflush 2 -- tcflow 2 -- tcgetpgrp 1 -- tcsetpgrp 2 -- getpwuid 1 -- getpwnam 1 -- getgrgid 1 -- getgrnam 1 -- unlink 1 -- readdir 1 -- ftruncate 2 -- syscall63 0 -- semctl 4 -- semget 3 -- semop 3 -- shmat 3 -- shmctl 3 -- shmdt 1 -- shmget 3 -- msgctl 3 -- msgget 2 -- msgrcv 5 -- msgsnd 4 -- socket 3 -- accept 3 -- bind 3 -- connect 3 -- getpeername 3 -- getsockname 3 -- getsockopt 5 -- listen 2 -- recv 4 -- recvfrom 6 -- send 4 -- sendto 6 -- setsockopt 5 -- shutdown 2 -- gethostbyname 1 -- gethostbyaddr 3 -- getprotobyname 1 -- getprotobynumber 1 -- getservbyname 2 -- getservbyport 2 -- select 5 -- statvfs 2 -- fstatvfs 2 -- ptsname 1 -- _fdptcheck 0 -- ioctl 2 -- mmap 6 -- syscall102 0 -- uidtontsid 1 -- gettzenv 0 -- pututxline 1 -- renamewtmpx 0 -- fsync 1 -- setgetitimer 0 -- setuser 0 -- ipcs 0 -# EOF