diff options
Diffstat (limited to 'drivers/isdn/hysdn/hysdn_boot.c')
| -rw-r--r-- | drivers/isdn/hysdn/hysdn_boot.c | 274 | 
1 files changed, 137 insertions, 137 deletions
diff --git a/drivers/isdn/hysdn/hysdn_boot.c b/drivers/isdn/hysdn/hysdn_boot.c index 4f541ef14f9..eda4741e3f2 100644 --- a/drivers/isdn/hysdn/hysdn_boot.c +++ b/drivers/isdn/hysdn/hysdn_boot.c @@ -82,7 +82,7 @@ DecryptBuf(struct boot_data *boot, int cnt)  /* id. If successful 0 is returned, a negative value shows an error.           */  /********************************************************************************/  static int -pof_handle_data(hysdn_card * card, int datlen) +pof_handle_data(hysdn_card *card, int datlen)  {  	struct boot_data *boot = card->boot;	/* pointer to boot specific data */  	long l; @@ -92,71 +92,71 @@ pof_handle_data(hysdn_card * card, int datlen)  	/* handle the different record types */  	switch (boot->pof_recid) { -		case TAG_TIMESTMP: -			if (card->debug_flags & LOG_POF_RECORD) -				hysdn_addlog(card, "POF created %s", boot->buf.PofTime.DateTimeText); -			break; +	case TAG_TIMESTMP: +		if (card->debug_flags & LOG_POF_RECORD) +			hysdn_addlog(card, "POF created %s", boot->buf.PofTime.DateTimeText); +		break; -		case TAG_CBOOTDTA: -			DecryptBuf(boot, datlen);	/* we need to encrypt the buffer */ -		case TAG_BOOTDTA: -			if (card->debug_flags & LOG_POF_RECORD) -				hysdn_addlog(card, "POF got %s len=%d offs=0x%lx", -					     (boot->pof_recid == TAG_CBOOTDTA) ? "CBOOTDATA" : "BOOTDTA", -					     datlen, boot->pof_recoffset); +	case TAG_CBOOTDTA: +		DecryptBuf(boot, datlen);	/* we need to encrypt the buffer */ +	case TAG_BOOTDTA: +		if (card->debug_flags & LOG_POF_RECORD) +			hysdn_addlog(card, "POF got %s len=%d offs=0x%lx", +				     (boot->pof_recid == TAG_CBOOTDTA) ? "CBOOTDATA" : "BOOTDTA", +				     datlen, boot->pof_recoffset); -			if (boot->pof_reclen != POF_BOOT_LOADER_TOTAL_SIZE) { -				boot->last_error = EPOF_BAD_IMG_SIZE;	/* invalid length */ -				return (boot->last_error); -			} -			imgp = boot->buf.BootBuf;	/* start of buffer */ -			img_len = datlen;	/* maximum length to transfer */ +		if (boot->pof_reclen != POF_BOOT_LOADER_TOTAL_SIZE) { +			boot->last_error = EPOF_BAD_IMG_SIZE;	/* invalid length */ +			return (boot->last_error); +		} +		imgp = boot->buf.BootBuf;	/* start of buffer */ +		img_len = datlen;	/* maximum length to transfer */ -			l = POF_BOOT_LOADER_OFF_IN_PAGE - -			    (boot->pof_recoffset & (POF_BOOT_LOADER_PAGE_SIZE - 1)); -			if (l > 0) { -				/* buffer needs to be truncated */ -				imgp += l;	/* advance pointer */ -				img_len -= l;	/* adjust len */ -			} -			/* at this point no special handling for data wrapping over buffer */ -			/* is necessary, because the boot image always will be adjusted to */ -			/* match a page boundary inside the buffer.                        */ -			/* The buffer for the boot image on the card is filled in 2 cycles */ -			/* first the 1024 hi-words are put in the buffer, then the low 1024 */ -			/* word are handled in the same way with different offset.         */ +		l = POF_BOOT_LOADER_OFF_IN_PAGE - +			(boot->pof_recoffset & (POF_BOOT_LOADER_PAGE_SIZE - 1)); +		if (l > 0) { +			/* buffer needs to be truncated */ +			imgp += l;	/* advance pointer */ +			img_len -= l;	/* adjust len */ +		} +		/* at this point no special handling for data wrapping over buffer */ +		/* is necessary, because the boot image always will be adjusted to */ +		/* match a page boundary inside the buffer.                        */ +		/* The buffer for the boot image on the card is filled in 2 cycles */ +		/* first the 1024 hi-words are put in the buffer, then the low 1024 */ +		/* word are handled in the same way with different offset.         */ -			if (img_len > 0) { -				/* data available for copy */ -				if ((boot->last_error = -				     card->writebootimg(card, imgp, -							(boot->pof_recoffset > POF_BOOT_LOADER_PAGE_SIZE) ? 2 : 0)) < 0) -					return (boot->last_error); -			} -			break;	/* end of case boot image hi/lo */ +		if (img_len > 0) { +			/* data available for copy */ +			if ((boot->last_error = +			     card->writebootimg(card, imgp, +						(boot->pof_recoffset > POF_BOOT_LOADER_PAGE_SIZE) ? 2 : 0)) < 0) +				return (boot->last_error); +		} +		break;	/* end of case boot image hi/lo */ -		case TAG_CABSDATA: -			DecryptBuf(boot, datlen);	/* we need to encrypt the buffer */ -		case TAG_ABSDATA: -			if (card->debug_flags & LOG_POF_RECORD) -				hysdn_addlog(card, "POF got %s len=%d offs=0x%lx", -					     (boot->pof_recid == TAG_CABSDATA) ? "CABSDATA" : "ABSDATA", -					     datlen, boot->pof_recoffset); +	case TAG_CABSDATA: +		DecryptBuf(boot, datlen);	/* we need to encrypt the buffer */ +	case TAG_ABSDATA: +		if (card->debug_flags & LOG_POF_RECORD) +			hysdn_addlog(card, "POF got %s len=%d offs=0x%lx", +				     (boot->pof_recid == TAG_CABSDATA) ? "CABSDATA" : "ABSDATA", +				     datlen, boot->pof_recoffset); -			if ((boot->last_error = card->writebootseq(card, boot->buf.BootBuf, datlen)) < 0) -				return (boot->last_error);	/* error writing data */ +		if ((boot->last_error = card->writebootseq(card, boot->buf.BootBuf, datlen)) < 0) +			return (boot->last_error);	/* error writing data */ -			if (boot->pof_recoffset + datlen >= boot->pof_reclen) -				return (card->waitpofready(card));	/* data completely spooled, wait for ready */ +		if (boot->pof_recoffset + datlen >= boot->pof_reclen) +			return (card->waitpofready(card));	/* data completely spooled, wait for ready */ -			break;	/* end of case boot seq data */ +		break;	/* end of case boot seq data */ -		default: -			if (card->debug_flags & LOG_POF_RECORD) -				hysdn_addlog(card, "POF got data(id=0x%lx) len=%d offs=0x%lx", boot->pof_recid, -					     datlen, boot->pof_recoffset); +	default: +		if (card->debug_flags & LOG_POF_RECORD) +			hysdn_addlog(card, "POF got data(id=0x%lx) len=%d offs=0x%lx", boot->pof_recid, +				     datlen, boot->pof_recoffset); -			break;	/* simply skip record */ +		break;	/* simply skip record */  	}			/* switch boot->pof_recid */  	return (0); @@ -171,7 +171,7 @@ pof_handle_data(hysdn_card * card, int datlen)  /* occurred and booting must be aborted.                                       */  /******************************************************************************/  int -pof_write_buffer(hysdn_card * card, int datlen) +pof_write_buffer(hysdn_card *card, int datlen)  {  	struct boot_data *boot = card->boot;	/* pointer to boot specific data */ @@ -184,77 +184,77 @@ pof_write_buffer(hysdn_card * card, int datlen)  		hysdn_addlog(card, "POF write: got %d bytes ", datlen);  	switch (boot->pof_state) { -		case POF_READ_FILE_HEAD: -			if (card->debug_flags & LOG_POF_WRITE) -				hysdn_addlog(card, "POF write: checking file header"); +	case POF_READ_FILE_HEAD: +		if (card->debug_flags & LOG_POF_WRITE) +			hysdn_addlog(card, "POF write: checking file header"); -			if (datlen != sizeof(tPofFileHdr)) { -				boot->last_error = -EPOF_INTERNAL; -				break; -			} -			if (boot->buf.PofFileHdr.Magic != TAGFILEMAGIC) { -				boot->last_error = -EPOF_BAD_MAGIC; -				break; -			} -			/* Setup the new state and vars */ -			boot->Nrecs = (unsigned short)(boot->buf.PofFileHdr.N_PofRecs);	/* limited to 65535 */ -			boot->pof_state = POF_READ_TAG_HEAD;	/* now start with single tags */ -			boot->last_error = sizeof(tPofRecHdr);	/* new length */ +		if (datlen != sizeof(tPofFileHdr)) { +			boot->last_error = -EPOF_INTERNAL;  			break; +		} +		if (boot->buf.PofFileHdr.Magic != TAGFILEMAGIC) { +			boot->last_error = -EPOF_BAD_MAGIC; +			break; +		} +		/* Setup the new state and vars */ +		boot->Nrecs = (unsigned short)(boot->buf.PofFileHdr.N_PofRecs);	/* limited to 65535 */ +		boot->pof_state = POF_READ_TAG_HEAD;	/* now start with single tags */ +		boot->last_error = sizeof(tPofRecHdr);	/* new length */ +		break; -		case POF_READ_TAG_HEAD: -			if (card->debug_flags & LOG_POF_WRITE) -				hysdn_addlog(card, "POF write: checking tag header"); +	case POF_READ_TAG_HEAD: +		if (card->debug_flags & LOG_POF_WRITE) +			hysdn_addlog(card, "POF write: checking tag header"); -			if (datlen != sizeof(tPofRecHdr)) { -				boot->last_error = -EPOF_INTERNAL; -				break; -			} -			boot->pof_recid = boot->buf.PofRecHdr.PofRecId;		/* actual pof recid */ -			boot->pof_reclen = boot->buf.PofRecHdr.PofRecDataLen;	/* total length */ -			boot->pof_recoffset = 0;	/* no starting offset */ +		if (datlen != sizeof(tPofRecHdr)) { +			boot->last_error = -EPOF_INTERNAL; +			break; +		} +		boot->pof_recid = boot->buf.PofRecHdr.PofRecId;		/* actual pof recid */ +		boot->pof_reclen = boot->buf.PofRecHdr.PofRecDataLen;	/* total length */ +		boot->pof_recoffset = 0;	/* no starting offset */ -			if (card->debug_flags & LOG_POF_RECORD) -				hysdn_addlog(card, "POF: got record id=0x%lx length=%ld ", -				      boot->pof_recid, boot->pof_reclen); +		if (card->debug_flags & LOG_POF_RECORD) +			hysdn_addlog(card, "POF: got record id=0x%lx length=%ld ", +				     boot->pof_recid, boot->pof_reclen); -			boot->pof_state = POF_READ_TAG_DATA;	/* now start with tag data */ -			if (boot->pof_reclen < BOOT_BUF_SIZE) -				boot->last_error = boot->pof_reclen;	/* limit size */ -			else -				boot->last_error = BOOT_BUF_SIZE;	/* maximum */ +		boot->pof_state = POF_READ_TAG_DATA;	/* now start with tag data */ +		if (boot->pof_reclen < BOOT_BUF_SIZE) +			boot->last_error = boot->pof_reclen;	/* limit size */ +		else +			boot->last_error = BOOT_BUF_SIZE;	/* maximum */ -			if (!boot->last_error) {	/* no data inside record */ -				boot->pof_state = POF_READ_TAG_HEAD;	/* now start with single tags */ -				boot->last_error = sizeof(tPofRecHdr);	/* new length */ -			} -			break; +		if (!boot->last_error) {	/* no data inside record */ +			boot->pof_state = POF_READ_TAG_HEAD;	/* now start with single tags */ +			boot->last_error = sizeof(tPofRecHdr);	/* new length */ +		} +		break; -		case POF_READ_TAG_DATA: -			if (card->debug_flags & LOG_POF_WRITE) -				hysdn_addlog(card, "POF write: getting tag data"); +	case POF_READ_TAG_DATA: +		if (card->debug_flags & LOG_POF_WRITE) +			hysdn_addlog(card, "POF write: getting tag data"); -			if (datlen != boot->last_error) { -				boot->last_error = -EPOF_INTERNAL; -				break; -			} -			if ((boot->last_error = pof_handle_data(card, datlen)) < 0) -				return (boot->last_error);	/* an error occurred */ -			boot->pof_recoffset += datlen; -			if (boot->pof_recoffset >= boot->pof_reclen) { -				boot->pof_state = POF_READ_TAG_HEAD;	/* now start with single tags */ -				boot->last_error = sizeof(tPofRecHdr);	/* new length */ -			} else { -				if (boot->pof_reclen - boot->pof_recoffset < BOOT_BUF_SIZE) -					boot->last_error = boot->pof_reclen - boot->pof_recoffset;	/* limit size */ -				else -					boot->last_error = BOOT_BUF_SIZE;	/* maximum */ -			} +		if (datlen != boot->last_error) { +			boot->last_error = -EPOF_INTERNAL;  			break; +		} +		if ((boot->last_error = pof_handle_data(card, datlen)) < 0) +			return (boot->last_error);	/* an error occurred */ +		boot->pof_recoffset += datlen; +		if (boot->pof_recoffset >= boot->pof_reclen) { +			boot->pof_state = POF_READ_TAG_HEAD;	/* now start with single tags */ +			boot->last_error = sizeof(tPofRecHdr);	/* new length */ +		} else { +			if (boot->pof_reclen - boot->pof_recoffset < BOOT_BUF_SIZE) +				boot->last_error = boot->pof_reclen - boot->pof_recoffset;	/* limit size */ +			else +				boot->last_error = BOOT_BUF_SIZE;	/* maximum */ +		} +		break; -		default: -			boot->last_error = -EPOF_INTERNAL;	/* unknown state */ -			break; +	default: +		boot->last_error = -EPOF_INTERNAL;	/* unknown state */ +		break;  	}			/* switch (boot->pof_state) */  	return (boot->last_error); @@ -268,7 +268,7 @@ pof_write_buffer(hysdn_card * card, int datlen)  /* occurred. Additionally the pointer to the buffer data area is set on success */  /*******************************************************************************/  int -pof_write_open(hysdn_card * card, unsigned char **bufp) +pof_write_open(hysdn_card *card, unsigned char **bufp)  {  	struct boot_data *boot;	/* pointer to boot specific data */ @@ -310,7 +310,7 @@ pof_write_open(hysdn_card * card, unsigned char **bufp)  /* The return value must be 0 if everything has happened as desired.            */  /********************************************************************************/  int -pof_write_close(hysdn_card * card) +pof_write_close(hysdn_card *card)  {  	struct boot_data *boot = card->boot;	/* pointer to boot specific data */ @@ -367,27 +367,27 @@ EvalSysrTokData(hysdn_card *card, unsigned char *cp, int len)  			return (1);  		}  		switch (*cp) { -			case SYSR_TOK_B_CHAN:	/* 1 */ -				if (*(cp + 1) != 1) -					return (1);	/* length invalid */ -				card->bchans = *(cp + 2); -				break; +		case SYSR_TOK_B_CHAN:	/* 1 */ +			if (*(cp + 1) != 1) +				return (1);	/* length invalid */ +			card->bchans = *(cp + 2); +			break; -			case SYSR_TOK_FAX_CHAN:	/* 2 */ -				if (*(cp + 1) != 1) -					return (1);	/* length invalid */ -				card->faxchans = *(cp + 2); -				break; +		case SYSR_TOK_FAX_CHAN:	/* 2 */ +			if (*(cp + 1) != 1) +				return (1);	/* length invalid */ +			card->faxchans = *(cp + 2); +			break; -			case SYSR_TOK_MAC_ADDR:	/* 3 */ -				if (*(cp + 1) != 6) -					return (1);	/* length invalid */ -				memcpy(card->mac_addr, cp + 2, 6); -				break; +		case SYSR_TOK_MAC_ADDR:	/* 3 */ +			if (*(cp + 1) != 6) +				return (1);	/* length invalid */ +			memcpy(card->mac_addr, cp + 2, 6); +			break; -			default: -				hysdn_addlog(card, "unknown token 0x%02x length %d", *cp, *(cp + 1)); -				break; +		default: +			hysdn_addlog(card, "unknown token 0x%02x length %d", *cp, *(cp + 1)); +			break;  		}  		len -= (*(cp + 1) + 2);		/* adjust len */  		cp += (*(cp + 1) + 2);	/* and pointer */  |