Message ID | 20231118033859.726692-2-apatel@ventanamicro.com |
---|---|
State | Superseded |
Headers | show |
Series | RISC-V SBI debug console extension support | expand |
Hi Anup, On 2023-11-17 9:38 PM, Anup Patel wrote: > The functions sbi_console_putchar() and sbi_console_getchar() are > not defined when CONFIG_RISCV_SBI_V01 is disabled so let us add > stub of these functions to avoid "#ifdef" on user side. > > Signed-off-by: Anup Patel <apatel@ventanamicro.com> > Reviewed-by: Andrew Jones <ajones@ventanamicro.com> > --- > arch/riscv/include/asm/sbi.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/arch/riscv/include/asm/sbi.h b/arch/riscv/include/asm/sbi.h > index 0892f4421bc4..66f3933c14f6 100644 > --- a/arch/riscv/include/asm/sbi.h > +++ b/arch/riscv/include/asm/sbi.h > @@ -271,8 +271,13 @@ struct sbiret sbi_ecall(int ext, int fid, unsigned long arg0, > unsigned long arg3, unsigned long arg4, > unsigned long arg5); > > +#ifdef CONFIG_RISCV_SBI_V01 > void sbi_console_putchar(int ch); > int sbi_console_getchar(void); > +#else > +static inline void sbi_console_putchar(int ch) { } > +static inline int sbi_console_getchar(void) { return -ENOENT; } "The SBI call returns the byte on success, or -1 for failure." So -ENOENT is not really an appropriate value to return here. Regards, Samuel > +#endif > long sbi_get_mvendorid(void); > long sbi_get_marchid(void); > long sbi_get_mimpid(void);
On Wed, Nov 22, 2023 at 4:06 AM Samuel Holland <samuel.holland@sifive.com> wrote: > > Hi Anup, > > On 2023-11-17 9:38 PM, Anup Patel wrote: > > The functions sbi_console_putchar() and sbi_console_getchar() are > > not defined when CONFIG_RISCV_SBI_V01 is disabled so let us add > > stub of these functions to avoid "#ifdef" on user side. > > > > Signed-off-by: Anup Patel <apatel@ventanamicro.com> > > Reviewed-by: Andrew Jones <ajones@ventanamicro.com> > > --- > > arch/riscv/include/asm/sbi.h | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/arch/riscv/include/asm/sbi.h b/arch/riscv/include/asm/sbi.h > > index 0892f4421bc4..66f3933c14f6 100644 > > --- a/arch/riscv/include/asm/sbi.h > > +++ b/arch/riscv/include/asm/sbi.h > > @@ -271,8 +271,13 @@ struct sbiret sbi_ecall(int ext, int fid, unsigned long arg0, > > unsigned long arg3, unsigned long arg4, > > unsigned long arg5); > > > > +#ifdef CONFIG_RISCV_SBI_V01 > > void sbi_console_putchar(int ch); > > int sbi_console_getchar(void); > > +#else > > +static inline void sbi_console_putchar(int ch) { } > > +static inline int sbi_console_getchar(void) { return -ENOENT; } > > "The SBI call returns the byte on success, or -1 for failure." > > So -ENOENT is not really an appropriate value to return here. Actually, I had -1 over here previously but based on GregKH's suggestion, we are now returning proper Linux error code here. Also, all users of sbi_console_getchar() onlyl expect a negative value upon error so better to return proper Linux error code. > > Regards, > Samuel > > > +#endif > > long sbi_get_mvendorid(void); > > long sbi_get_marchid(void); > > long sbi_get_mimpid(void); > Regards, Anup
Hi Anup, On 2023-11-23 4:38 AM, Anup Patel wrote: > On Wed, Nov 22, 2023 at 4:06 AM Samuel Holland > <samuel.holland@sifive.com> wrote: >> On 2023-11-17 9:38 PM, Anup Patel wrote: >>> The functions sbi_console_putchar() and sbi_console_getchar() are >>> not defined when CONFIG_RISCV_SBI_V01 is disabled so let us add >>> stub of these functions to avoid "#ifdef" on user side. >>> >>> Signed-off-by: Anup Patel <apatel@ventanamicro.com> >>> Reviewed-by: Andrew Jones <ajones@ventanamicro.com> >>> --- >>> arch/riscv/include/asm/sbi.h | 5 +++++ >>> 1 file changed, 5 insertions(+) >>> >>> diff --git a/arch/riscv/include/asm/sbi.h b/arch/riscv/include/asm/sbi.h >>> index 0892f4421bc4..66f3933c14f6 100644 >>> --- a/arch/riscv/include/asm/sbi.h >>> +++ b/arch/riscv/include/asm/sbi.h >>> @@ -271,8 +271,13 @@ struct sbiret sbi_ecall(int ext, int fid, unsigned long arg0, >>> unsigned long arg3, unsigned long arg4, >>> unsigned long arg5); >>> >>> +#ifdef CONFIG_RISCV_SBI_V01 >>> void sbi_console_putchar(int ch); >>> int sbi_console_getchar(void); >>> +#else >>> +static inline void sbi_console_putchar(int ch) { } >>> +static inline int sbi_console_getchar(void) { return -ENOENT; } >> >> "The SBI call returns the byte on success, or -1 for failure." >> >> So -ENOENT is not really an appropriate value to return here. > > Actually, I had -1 over here previously but based on GregKH's > suggestion, we are now returning proper Linux error code here. > > Also, all users of sbi_console_getchar() onlyl expect a negative > value upon error so better to return proper Linux error code. Alright, makes sense to me. Regards, Samuel
diff --git a/arch/riscv/include/asm/sbi.h b/arch/riscv/include/asm/sbi.h index 0892f4421bc4..66f3933c14f6 100644 --- a/arch/riscv/include/asm/sbi.h +++ b/arch/riscv/include/asm/sbi.h @@ -271,8 +271,13 @@ struct sbiret sbi_ecall(int ext, int fid, unsigned long arg0, unsigned long arg3, unsigned long arg4, unsigned long arg5); +#ifdef CONFIG_RISCV_SBI_V01 void sbi_console_putchar(int ch); int sbi_console_getchar(void); +#else +static inline void sbi_console_putchar(int ch) { } +static inline int sbi_console_getchar(void) { return -ENOENT; } +#endif long sbi_get_mvendorid(void); long sbi_get_marchid(void); long sbi_get_mimpid(void);