aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/patchkey.h
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2009-05-28 18:35:10 -0400
committerDavid S. Miller <davem@davemloft.net>2009-05-29 04:46:29 -0400
commit108bfa895cacd1a7c1767e85be105b213e5dce50 (patch)
tree4e1aebbe9ad638f36539278b98342edaab5f46df /include/linux/patchkey.h
parenta489e51c1a69c3aa7e7aea925f71c92be5cedbb1 (diff)
net: unset IFF_XMIT_DST_RELEASE in ipgre_tunnel_setup()
ipgre_tunnel_xmit() might need skb->dst, so tell dev_hard_start_xmit() to no release it. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/patchkey.h')
0 files changed, 0 insertions, 0 deletions
self.fname = fname self.xcol = xcol self.ycol = ycol self.error = error self.title = title self.style = style def __str__(self): return self.get_command() def get_command(self, default_style=None): if self.error: using_txt = "%s:%s:%s" % (self.xcol, self.ycol, self.error) style = self.style if self.style else "errorbars" else: using_txt = "%s:%s" % (self.xcol, self.ycol) style = self.style if self.style else default_style style_txt = " with %s" % style if style else "" title_txt = " title '%s'" % self.title if self.title else "" return "'%s' using %s%s%s" % \ (self.fname, using_txt, title_txt, style_txt) def gnuplot_cmd(graphs, title=None, ylabel=None, xlabel=None, format='show', term_opts=None, style='linespoints', xrange=None, yrange=None, xticks=None, yticks=None, key='below', logscale=None, fname=None): g = CommandBuffer() if format == 'png': terminal = 'png' if term_opts is None: term_opts = 'size 1024,768 large' elif format == 'eps': terminal = 'postscript eps' if term_opts is None: term_opts = 'color blacktext solid linewidth 1.0' elif format == 'pdf': terminal = 'pdf' if term_opts is None: term_opts = 'color enhanced' if format != 'show': g('set terminal %s %s' % (terminal, term_opts)) g("set out '/dev/null'") if xlabel: g("set xlabel '%s'" % xlabel) if ylabel: g("set ylabel '%s'" % ylabel) if title: g("set title '%s'" % title) if xrange: g("set xrange [%s:%s]" % xrange) if yrange: g("set yrange [%s:%s]" % yrange) if xticks: g("set xtics %s, %s" % xticks) if yticks: g("set ytics %s, %s" % yticks) if logscale: if type(logscale) == tuple: for x in logscale: g("set logscale %s" % x) else: g("set logscale %s" % logscale) g('set key %s' % key) plot = [] for gr in graphs: if type(gr) == str: # literal plot command plot.append(str(gr)) elif type(gr) == FileGraph: # formatter object plot.append(gr.get_command(style)) elif len(gr) == 4: par = (gr[0], gr[1], gr[2], gr[3], style) plot += ["'%s' using %s:%s title '%s' with %s" % par] elif len(gr) == 5: plot += ["'%s' using %s:%s title '%s' with %s" % gr] elif len(gr) == 3: plot += ["%s title '%s' with %s" % gr] if plot: g('plot ' + ', '.join(plot)) if format != 'show' and fname: g("set out '%s.%s'" % (fname, format)) if plot: g('replot') if format != 'show' and fname: g('set out') return g def pipe2gnuplot(cmds): proc = Popen(['gnuplot'], stdin=PIPE) proc.stdin.write(str(cmds)) proc.stdin.close() proc.wait() def gnuplot(*args, **kargs): cmd = gnuplot_cmd(*args, **kargs) pipe2gnuplot(cmd) def eps2pdf(file): Popen(['ps2pdf', '-dEPSCrop', '%s.eps' % file]).wait() options = [ o('-f', '--format', action='store', dest='format', type='choice', choices=FORMATS, help='output format'), o('-o', '--output', action='store', dest='out', help='Output file name.'), o('-s', '--style', action='store', dest='style', type='choice', choices=STYLES, help='line style'), o('-t', '--title', action='store', dest='title'), o(None, '--xlabel', action='store', dest='xlabel'), o(None, '--ylabel', action='store', dest='ylabel'), o(None, '--xrange', action='store', dest='xrange', nargs=2, type='float'), o(None, '--yrange', action='store', dest='yrange', nargs=2, type='float'), o(None, '--xticks', action='store', dest='xticks', nargs=2, type='float'), o(None, '--yticks', action='store', dest='yticks', nargs=2, type='float'), o(None, '--term-opts', action='store', dest='term_opts'), ] defaults = { 'out' : 'graph', 'format' : 'show', 'style' : 'linespoints', 'title' : None, 'xlabel' : None, 'ylabel' : None, 'xrange' : None, 'yrange' : None, 'xticks' : None, 'yticks' : None, 'term_opts' : None, } class GnuPlotter(defapp.App): def __init__(self): defapp.App.__init__(self, options, defaults, no_std_opts=True) def get_cmd(self, args): graphs = [] while len(args) >= 4: g = args[0:4] graphs += [g] args = args[4:] if args: self.err("Warning: Ignoring trailing args. Args:", *args) return gnuplot_cmd(graphs, title=self.options.title, format=self.options.format, style=self.options.style, xlabel=self.options.xlabel, ylabel=self.options.ylabel, xrange=self.options.xrange, yrange=self.options.yrange, xticks=self.options.xticks, yticks=self.options.yticks, fname=self.options.out, term_opts=self.options.term_opts) def default(self, _): cmd = self.get_cmd(list(self.args)) pipe2gnuplot(cmd) def do_cmd(self, _): cmd = self.get_cmd(self.args[1:]) self.out(cmd) if __name__ == "__main__": GnuPlotter().launch()