Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2f7cf8d1 authored by Roel Van Nyen's avatar Roel Van Nyen Committed by Greg Kroah-Hartman
Browse files

staging: keucr: Change the custom counting functions to hweight8 and hweight16



Change the custom counting functions to hweight8 and hweight16

Signed-off-by: default avatarRoel Van Nyen <roel.vannyen@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 0e83f46d
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -25,8 +25,6 @@ Define Difinetion
#define ERR_NoSmartMedia    0x003A /* Medium Not Present */

/***************************************************************************/
char Bit_D_Count(BYTE);
char Bit_D_CountWord(WORD);
void StringCopy(char *, char *, int);
int  StringCmp(char *, char *, int);

+6 −31
Original line number Diff line number Diff line
@@ -79,7 +79,7 @@ int Check_D_FailBlock(BYTE *redundant)
		return(SUCCESS);
	if (!*redundant)
		return(ERROR);
	if (Bit_D_Count(*redundant)<7)
	if (hweight8(*redundant)<7)
		return(ERROR);

	return(SUCCESS);
@@ -100,7 +100,7 @@ int Check_D_DataStatus(BYTE *redundant)
	else
		ErrXDCode = NO_ERROR;

	if (Bit_D_Count(*redundant)<5)
	if (hweight8(*redundant)<5)
		return(ERROR);

	return(SUCCESS);
@@ -120,14 +120,14 @@ int Load_D_LogBlockAddr(BYTE *redundant)
		if ((addr1 &0xF000)==0x1000)
		{ Media.LogBlock=(addr1 &0x0FFF)/2; return(SUCCESS); }

	if (Bit_D_CountWord((WORD)(addr1^addr2))!=0x01) return(ERROR);
	if (hweight16((WORD)(addr1^addr2))!=0x01) return(ERROR);

	if ((addr1 &0xF000)==0x1000)
		if (!(Bit_D_CountWord(addr1) &0x01))
		if (!(hweight16(addr1) &0x01))
		{ Media.LogBlock=(addr1 &0x0FFF)/2; return(SUCCESS); }

	if ((addr2 &0xF000)==0x1000)
		if (!(Bit_D_CountWord(addr2) &0x01))
		if (!(hweight16(addr2) &0x01))
		{ Media.LogBlock=(addr2 &0x0FFF)/2; return(SUCCESS); }

	return(ERROR);
@@ -151,7 +151,7 @@ void Set_D_LogBlockAddr(BYTE *redundant)
	*(redundant+REDT_DATA) =0xFF;
	addr=Media.LogBlock*2+0x1000;

	if ((Bit_D_CountWord(addr)%2))
	if ((hweight16(addr)%2))
		addr++;

	*(redundant+REDT_ADDR1H)=*(redundant+REDT_ADDR2H)=(BYTE)(addr/0x0100);
@@ -1549,31 +1549,6 @@ void Set_D_RightECC(BYTE *redundant)
//    StringCopy((char *)(redundant+0x08),(char *)(EccBuf+0x03),3);
//}
*/
//Common Subroutine
char Bit_D_Count(BYTE cdata)
{
    WORD bitcount=0;

    while(cdata) {
        bitcount+=(WORD)(cdata &0x01);
        cdata /=2;
    }

    return((char)bitcount);
}

//-----
char Bit_D_CountWord(WORD cdata)
{
    WORD bitcount=0;

    while(cdata) {
        bitcount+=(cdata &0x01);
        cdata /=2;
    }

    return((char)bitcount);
}

/*
//----- SM_ReadBlock() ---------------------------------------------