Hi! - code optimization.
--- Begin Message ---diff -ruNp old/kernel/dsk.c new/kernel/dsk.c --- old/kernel/dsk.c 2004-05-29 02:51:30.000000000 +0000 +++ new/kernel/dsk.c 2004-05-31 06:07:48.000000000 +0000 @@ -92,7 +92,7 @@ extern struct DynS ASM Dyn; /*TE - array access functions */ ddt *getddt(int dev) { - return &(((ddt *) Dyn.Buffer)[dev]); + return (ddt*)Dyn.Buffer + dev; } STATIC VOID tmark(ddt *pddt) @@ -360,9 +360,7 @@ STATIC WORD blk_Media(rqptr rp, ddt * pd STATIC WORD getbpb(ddt * pddt) { - ULONG count; bpb *pbpbarray = &pddt->ddt_bpb; - unsigned secs_per_cyl; WORD ret; /* pddt->ddt_descflags |= DF_NOACCESS; @@ -427,19 +425,20 @@ STATIC WORD getbpb(ddt * pddt) printf("BPB_NFSECT = %04x\n", pbpbarray->bpb_nfsect); #endif - count = - pbpbarray->bpb_nsize == 0 ? - pbpbarray->bpb_huge : pbpbarray->bpb_nsize; - secs_per_cyl = pbpbarray->bpb_nheads * pbpbarray->bpb_nsecs; - - if (secs_per_cyl == 0) { - tmark(pddt); - return failure(E_FAILURE); + unsigned secs_per_cyl = pbpbarray->bpb_nheads * pbpbarray->bpb_nsecs; + + if (secs_per_cyl == 0) + { + tmark(pddt); + return failure(E_FAILURE); + } + /* this field is problematic for partitions > 65535 cylinders, + in general > 512 GiB. However: we are not using it ourselves. */ + pddt->ddt_ncyl = (UWORD)(((pbpbarray->bpb_nsize == 0 ? + pbpbarray->bpb_huge : pbpbarray->bpb_nsize) + - 1) / secs_per_cyl) + 1; } - /* this field is problematic for partitions > 65535 cylinders, - in general > 512 GiB. However: we are not using it ourselves. */ - pddt->ddt_ncyl = (UWORD)((count + (secs_per_cyl - 1)) / secs_per_cyl); tmark(pddt); @@ -1064,15 +1063,8 @@ STATIC int LBA_Transfer(ddt * pddt, UWOR LBA_address += count; totaltodo -= count; - buffer = adjust_far((char FAR *)buffer + count * 512); + buffer = adjust_far((char FAR *)buffer + count * 512u); } - return (error_code); + return error_code; } - -/* - * Revision 1.17 2001/05/13 tomehlert - * Added full support for LBA hard drives - * initcode moved (mostly) to initdisk.c - * lower interface partly redesigned - */
--- End Message ---
