> 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