mirror of https://github.com/FDOS/kernel.git
Fix prototypes and cleanup support functions a little bit.
git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@401 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
parent
0bd919fdd4
commit
00258e0fb0
|
@ -36,40 +36,47 @@ static BYTE *miscRcsId =
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
#ifndef I86
|
#ifndef I86
|
||||||
|
|
||||||
VOID strcpy(REG BYTE * d, REG BYTE * s)
|
char *strcpy(REG BYTE * d, REG CONST BYTE * s)
|
||||||
|
{
|
||||||
|
char *tmp = d;
|
||||||
|
|
||||||
|
while ((*d++ = *s++) != '\0')
|
||||||
|
;
|
||||||
|
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID fstrcpy(REG BYTE FAR * d, REG CONST BYTE FAR * s)
|
||||||
{
|
{
|
||||||
while (*s)
|
while (*s)
|
||||||
*d++ = *s++;
|
*d++ = *s++;
|
||||||
*d = '\0';
|
*d = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID fstrcpy(REG BYTE FAR * d, REG BYTE FAR * s)
|
VOID fstrncpy(BYTE FAR * d, BYTE CONST FAR * s, REG size_t n)
|
||||||
{
|
|
||||||
while (*s)
|
|
||||||
*d++ = *s++;
|
|
||||||
*d = '\0';
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID fstrncpy(BYTE FAR * d, BYTE FAR * s, REG COUNT n)
|
|
||||||
{
|
{
|
||||||
while (*s && n--)
|
while (*s && n--)
|
||||||
*d++ = *s++;
|
*d++ = *s++;
|
||||||
*d = '\0';
|
*d = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID memcpy(REG VOID * d, REG VOID * s, REG COUNT n)
|
VOID * memcpy(REG VOID * d, REG CONST VOID * s, REG size_t n)
|
||||||
{
|
{
|
||||||
|
char *cd = d;
|
||||||
|
CONST char *cs = s;
|
||||||
|
|
||||||
while (n--)
|
while (n--)
|
||||||
*d++ = *s++;
|
*cd++ = *cs++;
|
||||||
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID fmemcpy(REG VOID FAR * d, REG VOID FAR * s, REG COUNT n)
|
VOID fmemcpy(REG VOID FAR * d, REG CONST VOID FAR * s, REG size_t n)
|
||||||
{
|
{
|
||||||
while (n--)
|
while (n--)
|
||||||
*((BYTE FAR *) d)++ = *((BYTE FAR *) s)++;
|
*((BYTE FAR *) d)++ = *((BYTE FAR *) s)++;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID fmemset(REG VOID FAR * s, REG int ch, REG COUNT n)
|
VOID fmemset(REG VOID FAR * s, REG int ch, REG size_t n)
|
||||||
{
|
{
|
||||||
while (n--)
|
while (n--)
|
||||||
*((BYTE FAR *) s)++ = ch;
|
*((BYTE FAR *) s)++ = ch;
|
||||||
|
|
|
@ -586,7 +586,7 @@ COUNT DosSetCountry(UWORD cntry)
|
||||||
/*
|
/*
|
||||||
* Called for DOS-66-01 get CP
|
* Called for DOS-66-01 get CP
|
||||||
*/
|
*/
|
||||||
COUNT DosGetCodepage(UWORD FAR * actCP, UWORD FAR * sysCP)
|
COUNT DosGetCodepage(UWORD * actCP, UWORD * sysCP)
|
||||||
{
|
{
|
||||||
*sysCP = nlsInfo.sysCodePage;
|
*sysCP = nlsInfo.sysCodePage;
|
||||||
*actCP = nlsInfo.actPkg->cp;
|
*actCP = nlsInfo.actPkg->cp;
|
||||||
|
|
|
@ -29,9 +29,8 @@
|
||||||
/****************************************************************/
|
/****************************************************************/
|
||||||
|
|
||||||
#include "portab.h"
|
#include "portab.h"
|
||||||
#include "globals.h"
|
#include "init-mod.h"
|
||||||
//#include "pcb.h"
|
//#include "pcb.h"
|
||||||
#include <nls.h>
|
|
||||||
|
|
||||||
#ifdef VERSION_STRINGS
|
#ifdef VERSION_STRINGS
|
||||||
static BYTE *RcsId =
|
static BYTE *RcsId =
|
||||||
|
@ -49,9 +48,9 @@ STATIC int err(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
#define readStruct(s) readStructure(&(s), sizeof(s), fd)
|
#define readStruct(s) readStructure(&(s), sizeof(s), fd)
|
||||||
STATIC int readStructure(void *buf, int size, COUNT fd)
|
STATIC int readStructure(void *buf, unsigned size, COUNT fd)
|
||||||
{
|
{
|
||||||
if (DosRead(fd, buf, size) == size)
|
if (read(fd, buf, size) == size)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return err();
|
return err();
|
||||||
|
@ -61,15 +60,15 @@ STATIC int readStructure(void *buf, int size, COUNT fd)
|
||||||
#define readFct(p,f) readFct_((p), (f), fd)
|
#define readFct(p,f) readFct_((p), (f), fd)
|
||||||
int readFct_(void *buf, struct csys_function *fct, COUNT fd)
|
int readFct_(void *buf, struct csys_function *fct, COUNT fd)
|
||||||
{
|
{
|
||||||
if (DosLseek(fd, fct->csys_rpos, 0) >= 0)
|
if (lseek(fd, fct->csys_rpos, 0) >= 0)
|
||||||
return readStructure(buf, fct->csys_length, fd);
|
return readStructure(buf, fct->csys_length, fd);
|
||||||
return err();
|
return err();
|
||||||
}
|
}
|
||||||
|
|
||||||
#define seek(n) rseek((LONG)(n), fd)
|
#define seek(n) rseek((LONG)(n), fd)
|
||||||
static rseek(LONG rpos, COUNT fd)
|
static int rseek(LONG rpos, COUNT fd)
|
||||||
{
|
{
|
||||||
if (DosLseek(fd, rpos, 1) >= 0)
|
if (lseek(fd, rpos, 1) >= 0)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return err();
|
return err();
|
||||||
|
@ -80,20 +79,20 @@ COUNT csysOpen(void)
|
||||||
COUNT fd;
|
COUNT fd;
|
||||||
struct nlsCSys_fileHeader header;
|
struct nlsCSys_fileHeader header;
|
||||||
|
|
||||||
if ((fd = DosOpen((BYTE FAR *) filename, 0)) < 0)
|
if ((fd = open(filename, 0)) < 0)
|
||||||
{
|
{
|
||||||
printf("Cannot open: \"%s\"\n", filename);
|
printf("Cannot open: \"%s\"\n", filename);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DosRead(fd, &header, sizeof(header)) != sizeof(header);
|
if ((read(fd, &header, sizeof(header)) != sizeof(header))
|
||||||
||strcmp(header.csys_idstring, CSYS_FD_IDSTRING) != 0
|
||strcmp(header.csys_idstring, CSYS_FD_IDSTRING) != 0
|
||||||
|| DosLseek(fd, (LONG) sizeof(csys_completeFileHeader), 0)
|
|| lseek(fd, (LONG) sizeof(struct csys_completeFileHeader), 0)
|
||||||
!= (LONG) sizeof(csys_completeFileHeader))
|
!= (LONG) sizeof(struct csys_completeFileHeader))
|
||||||
{
|
{
|
||||||
printf("No valid COUNTRY.SYS: \"%s\"\n\nTry NLSFUNC /i %s\n", filename,
|
printf("No valid COUNTRY.SYS: \"%s\"\n\nTry NLSFUNC /i %s\n", filename,
|
||||||
filename);
|
filename);
|
||||||
DosClose(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,9 +114,9 @@ STATIC int chkTable(int idx, int fctID, struct csys_function *fcts,
|
||||||
if (i == idx) /* already best place */
|
if (i == idx) /* already best place */
|
||||||
return 1;
|
return 1;
|
||||||
/* Swap both places */
|
/* Swap both places */
|
||||||
memcpy(&hfct, fct, sizeof(hfct));
|
fmemcpy(&hfct, fct, sizeof(hfct));
|
||||||
memcpy(fct, &fcts[idx], sizeof(hfct));
|
fmemcpy(fct, &fcts[idx], sizeof(hfct));
|
||||||
memcpy(&fcts[idx], &hfct, sizeof(hfct));
|
fmemcpy(&fcts[idx], &hfct, sizeof(hfct));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -266,7 +265,7 @@ int csysLoadPackage(COUNT fd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Search if the subfunction is already there */
|
/* Search if the subfunction is already there */
|
||||||
for (j = 0; j < numFcts && fcts[j].csys_fctID != fct.csys_fctID;
|
for (j = 0; j < numFct && fcts[j].csys_fctID != fct.csys_fctID;
|
||||||
++j) ;
|
++j) ;
|
||||||
if (j != numFct)
|
if (j != numFct)
|
||||||
{
|
{
|
||||||
|
@ -304,7 +303,7 @@ int csysLoadPackage(COUNT fd)
|
||||||
one additional byte is required by table 1, but which is
|
one additional byte is required by table 1, but which is
|
||||||
already within totalSize as the length of pseudo-table
|
already within totalSize as the length of pseudo-table
|
||||||
0x23 has been counted. */
|
0x23 has been counted. */
|
||||||
nls = KernelAlloc((data = sizeof(nlsPackage)
|
nls = KernelAlloc((data = sizeof(struct nlsPackage)
|
||||||
+ (numFct - 3) * sizeof(struct nlsPointer)) +
|
+ (numFct - 3) * sizeof(struct nlsPointer)) +
|
||||||
totalSize);
|
totalSize);
|
||||||
/* data := first byte not used by the control area of
|
/* data := first byte not used by the control area of
|
||||||
|
@ -388,7 +387,7 @@ int csysLoadPackage(COUNT fd)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
INIT BOOL LoadCountryInfo(char *fnam)
|
BOOL LoadCountryInfo(char *fnam)
|
||||||
{
|
{
|
||||||
COUNT fd;
|
COUNT fd;
|
||||||
int rc;
|
int rc;
|
||||||
|
@ -399,7 +398,7 @@ INIT BOOL LoadCountryInfo(char *fnam)
|
||||||
if ((fd = csysOpen()) >= 0)
|
if ((fd = csysOpen()) >= 0)
|
||||||
{
|
{
|
||||||
rc = csysLoadPackage(fd);
|
rc = csysLoadPackage(fd);
|
||||||
DosClose(fd);
|
close(fd);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,18 +34,18 @@ static BYTE *stringsRcsId =
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef I86
|
#ifndef I86
|
||||||
COUNT strlen(REG BYTE * s)
|
size_t strlen(REG CONST BYTE * s)
|
||||||
{
|
{
|
||||||
REG WORD cnt = 0;
|
REG size_t cnt = 0;
|
||||||
|
|
||||||
while (*s++ != 0)
|
while (*s++ != 0)
|
||||||
++cnt;
|
++cnt;
|
||||||
return cnt;
|
return cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
COUNT fstrlen(REG BYTE FAR * s)
|
size_t fstrlen(REG CONST BYTE FAR * s)
|
||||||
{
|
{
|
||||||
REG WORD cnt = 0;
|
REG size_t cnt = 0;
|
||||||
|
|
||||||
while (*s++ != 0)
|
while (*s++ != 0)
|
||||||
++cnt;
|
++cnt;
|
||||||
|
@ -59,15 +59,17 @@ VOID _fstrcpy(REG BYTE FAR * d, REG BYTE FAR * s)
|
||||||
*d = 0;
|
*d = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID strncpy(REG BYTE * d, REG BYTE * s, COUNT l)
|
char *strncpy(register char *d, register const char *s, size_t l)
|
||||||
{
|
{
|
||||||
COUNT idx = 1;
|
size_t idx = 1;
|
||||||
|
char *tmp = d;
|
||||||
while (*s != 0 && idx++ <= l)
|
while (*s != 0 && idx++ <= l)
|
||||||
*d++ = *s++;
|
*d++ = *s++;
|
||||||
*d = 0;
|
*d = 0;
|
||||||
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
COUNT strcmp(REG BYTE * d, REG BYTE * s)
|
int strcmp(REG CONST BYTE * d, REG CONST BYTE * s)
|
||||||
{
|
{
|
||||||
while (*s != '\0' && *d != '\0')
|
while (*s != '\0' && *d != '\0')
|
||||||
{
|
{
|
||||||
|
@ -91,9 +93,9 @@ COUNT fstrcmp(REG BYTE FAR * d, REG BYTE FAR * s)
|
||||||
return *d - *s;
|
return *d - *s;
|
||||||
}
|
}
|
||||||
|
|
||||||
COUNT strncmp(REG BYTE * d, REG BYTE * s, COUNT l)
|
int strncmp(register const char *d, register const char *s, size_t l)
|
||||||
{
|
{
|
||||||
COUNT index = 1;
|
size_t index = 1;
|
||||||
while (*s != '\0' && *d != '\0' && index++ <= l)
|
while (*s != '\0' && *d != '\0' && index++ <= l)
|
||||||
{
|
{
|
||||||
if (*d == *s)
|
if (*d == *s)
|
||||||
|
@ -125,14 +127,27 @@ VOID fstrncpy(REG BYTE FAR * d, REG BYTE FAR * s, COUNT l)
|
||||||
*d = 0;
|
*d = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
BYTE *strchr(BYTE * s, BYTE c)
|
char *strchr(const char * s, int c)
|
||||||
{
|
{
|
||||||
REG BYTE *p;
|
REG CONST BYTE *p;
|
||||||
p = s - 1;
|
p = s - 1;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (*++p == c)
|
if (*++p == (char)c)
|
||||||
return p;
|
return (char *)p;
|
||||||
|
}
|
||||||
|
while (*p);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void *memchr(const void * s, int c)
|
||||||
|
{
|
||||||
|
REG unsigned char *p;
|
||||||
|
p = (unsigned char *)s - 1;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
if (*++p == (unsigned char)c)
|
||||||
|
return (void *)p;
|
||||||
}
|
}
|
||||||
while (*p);
|
while (*p);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -97,8 +97,7 @@ VOID fputbyte(VOID FAR * vp, UBYTE b)
|
||||||
|
|
||||||
VOID getdirent(UBYTE FAR * vp, struct dirent FAR * dp)
|
VOID getdirent(UBYTE FAR * vp, struct dirent FAR * dp)
|
||||||
{
|
{
|
||||||
fmemcpy(dp->dir_name, &vp[DIR_NAME], FNAME_SIZE);
|
fmemcpy(dp->dir_name, &vp[DIR_NAME], FNAME_SIZE + FEXT_SIZE);
|
||||||
fmemcpy(dp->dir_ext, &vp[DIR_EXT], FEXT_SIZE);
|
|
||||||
dp->dir_attrib = fgetbyte(&vp[DIR_ATTRIB]);
|
dp->dir_attrib = fgetbyte(&vp[DIR_ATTRIB]);
|
||||||
dp->dir_time = fgetword(&vp[DIR_TIME]);
|
dp->dir_time = fgetword(&vp[DIR_TIME]);
|
||||||
dp->dir_date = fgetword(&vp[DIR_DATE]);
|
dp->dir_date = fgetword(&vp[DIR_DATE]);
|
||||||
|
@ -111,8 +110,7 @@ VOID putdirent(struct dirent FAR * dp, UBYTE FAR * vp)
|
||||||
REG COUNT i;
|
REG COUNT i;
|
||||||
REG BYTE FAR *p;
|
REG BYTE FAR *p;
|
||||||
|
|
||||||
fmemcpy(&vp[DIR_NAME], dp->dir_name, FNAME_SIZE);
|
fmemcpy(&vp[DIR_NAME], dp->dir_name, FNAME_SIZE + FEXT_SIZE);
|
||||||
fmemcpy(&vp[DIR_EXT], dp->dir_ext, FEXT_SIZE);
|
|
||||||
fputbyte(&vp[DIR_ATTRIB], dp->dir_attrib);
|
fputbyte(&vp[DIR_ATTRIB], dp->dir_attrib);
|
||||||
fputword(&vp[DIR_TIME], dp->dir_time);
|
fputword(&vp[DIR_TIME], dp->dir_time);
|
||||||
fputword(&vp[DIR_DATE], dp->dir_date);
|
fputword(&vp[DIR_DATE], dp->dir_date);
|
||||||
|
|
Loading…
Reference in New Issue