> BTW, I note that "extern struct pstore_info *psinfo" locates in
> fs/pstore/internal.h. So users out of directory "fs/pstore/" can not use
> pstore to
> record messages. We do not want other kernel users to use pstore, right? And
> can we
> break this?
Yes we can make some interface visible to the rest of the kernel ... probably
not the raw "*psinfo" though. Perhaps the pstore_alloc_ring_buffer() and
pstore_write_ring_buffer() functions should be the ones exported to the
rest of the kernel.
> ditoo.. Since other backends like efi and erst may can not privide such ring
> buffer.
> So pstore_alloc_ring_buffer should be a funciton pointer of pstore_info
> struct.
Yes - that allows less capable backend like ERST and efivars to not provide the
service. Since it becomes internal, you can drop the "pstore_" prefix. E.g.
something like:
int pstore_alloc_ring_buffer(char *name, int size)
{
return psinfo->alloc_ring_buffer(name, size);
}
EXPORT_SYMBOL_GPL(pstore_alloc_ring_buffer);
... and you have to find/make some global header for the "extern" declaration.
-Tony