Geert Stappers
2010-May-14 17:38 UTC
[syslinux] [syslinux:pathbased] comboot: fix comapi_open
Op 20100514 om 10:03 schreef syslinux-bot for Sebastian Herbszt:> Gitweb: http://syslinux.zytor.com/commit/7d7b2bc2cdb8d99eee9ef41c21612a60728a7713 > > Fix breakage introduced by commit e375515ddc712f1f69ee21337db2a3267caa5d49 > (Add 32-bit versions of open file/close file). > > --- a/core/comboot.inc > +++ b/core/comboot.inc > @@ -517,7 +517,12 @@ comapi_textmode: > ; INT 22h AX=0006h Open file > ; > comapi_open: > + mov es,P_ES > + mov si,P_SI > pm_call pm_open_file > + mov P_EAX,eax > + mov P_CX,cx > + mov P_SI,si > ret > > ; >That looks like ( ( } } ) Stappers expecting something like> ; INT 22h AX=0006h Open file > ; > comapi_open: > + mov es,P_ES > + mov si,P_SI* + mov cx,P_CX * + mov eax,P_EAX> pm_call pm_open_file > + mov P_EAX,eax > + mov P_CX,cx > + mov P_SI,si* + mov P_ES,es> ret > > ; >
Sebastian Herbszt
2010-May-14 18:07 UTC
[syslinux] [syslinux:pathbased] comboot: fix comapi_open
Geert Stappers wrote:> Op 20100514 om 10:03 schreef syslinux-bot for Sebastian Herbszt: >> Gitweb: http://syslinux.zytor.com/commit/7d7b2bc2cdb8d99eee9ef41c21612a60728a7713 >> >> Fix breakage introduced by commit e375515ddc712f1f69ee21337db2a3267caa5d49 >> (Add 32-bit versions of open file/close file). >> >> --- a/core/comboot.inc >> +++ b/core/comboot.inc >> @@ -517,7 +517,12 @@ comapi_textmode: >> ; INT 22h AX=0006h Open file >> ; >> comapi_open: >> + mov es,P_ES >> + mov si,P_SI >> pm_call pm_open_file >> + mov P_EAX,eax >> + mov P_CX,cx >> + mov P_SI,si >> ret >> >> ; >> > > That looks like ( ( } } ) > > > > Stappers > expecting something like >> ; INT 22h AX=0006h Open file >> ; >> comapi_open: >> + mov es,P_ES >> + mov si,P_SI > * + mov cx,P_CX > * + mov eax,P_EAX >> pm_call pm_open_file >> + mov P_EAX,eax >> + mov P_CX,cx >> + mov P_SI,si > * + mov P_ES,es >> ret >> >> ;>From doc/comboot.txtAX=0006h [2.08] Open file Input: AX 0006h ES:SI null-terminated filename Output: SI file handle EAX length of file in bytes, or -1 CX file block size My patch only cares about the output registers (EAX, CX and SI) and only ES and SI are used inside pm_open_file(). So there is no need to pass (correct) EAX and CX register values to pm_open_file() nor restore ES; P_ES should still contain the correct input value on exit. Sebastian
Geert Stappers
2010-May-14 19:02 UTC
[syslinux] [syslinux:pathbased] comboot: fix comapi_open
Op 20100514 om 20:07 schreef Sebastian Herbszt:> Geert Stappers wrote: >> expecting something like >>> ; INT 22h AX=0006h Open file >>> ; >>> comapi_open: >>> + mov es,P_ES >>> + mov si,P_SI >>* + mov cx,P_CX >>* + mov eax,P_EAX >>> pm_call pm_open_file >>> + mov P_EAX,eax >>> + mov P_CX,cx >>> + mov P_SI,si >>* + mov P_ES,es >>> ret >>> ; > >> From doc/comboot.txt > > AX=0006h [2.08] Open file > > Input: AX 0006h > ES:SI null-terminated filename > Output: SI file handle > EAX length of file in bytes, or -1 > CX file block size > > My patch only cares about the output registers (EAX, CX and SI) and only ES and SI > are used inside pm_open_file(). So there is no need to pass (correct) EAX and CX > register values to pm_open_file() nor restore ES; P_ES should still contain the correct > input value on exit.Thanks for the clarification. Stappers