a code reduction function addition to cam_xpt
Brooks Davis
brooks at one-eyed-alien.net
Mon Nov 20 22:12:24 UTC 2006
On Mon, Nov 20, 2006 at 01:31:01AM +0100, Attilio Rao wrote:
> 2006/11/20, mjacob at freebsd.org <mjacob at freebsd.org>:
> >There are *far* too many:
> >
> > xpt_print_path(path);
> > printf("foo\n");
> >
> >constructs. How about we just join them?
> >
> >==== //depot/projects/newisp/cam/cam_xpt.c#12 -
> >/home/FreeBSD/p4/newisp/cam/cam_xpt.c ====
> >@@ -63,6 +63,7 @@
> > #include <cam/scsi/scsi_all.h>
> > #include <cam/scsi/scsi_message.h>
> > #include <cam/scsi/scsi_pass.h>
> >+#include <machine/stdarg.h> /* for xpt_print below */
> > #include "opt_cam.h"
> >
> > /* Datastructures internal to the xpt layer */
> >@@ -4160,6 +4161,16 @@
> > }
> > }
> >
> >+void
> >+xpt_print(struct cam_path *path, const char *fmt, ...)
> >+{
> >+ va_list ap;
> >+ xpt_print_path(path);
> >+ va_start(ap, fmt);
> >+ vprintf(fmt, ap);
> >+ va_end(ap);
> >+}
> >+
> >==== //depot/projects/newisp/cam/cam_xpt.h#1 -
> >/home/FreeBSD/p4/newisp/cam/cam_xpt.h ====
> >@@ -62,6 +62,7 @@
> > int xpt_path_comp(struct cam_path *path1,
> > struct cam_path *path2);
> > void xpt_print_path(struct cam_path *path);
> >+void xpt_print(struct cam_path *path, const char *fmt,
> >...);
> > int xpt_path_string(struct cam_path *path, char *str,
> > size_t str_len);
> > path_id_t xpt_path_path_id(struct cam_path *path);
>
> Would not be better a preprocessing stub?
>
> something like:
>
> #define XPT_PRINT(path, fmt, ...) do {
> \
> xpt_print_path(path);
> \
> printf(fmt, __VA_ARGS__);
> \
> } while (0)
Why? What is gained? FWIW, when I added if_printif it reduced kernel
size by several KB. If there's a similar effect here we should take
advantage of it.
-- Brooks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-scsi/attachments/20061120/e60a606d/attachment.pgp
More information about the freebsd-scsi
mailing list