I just wanted to tell which functions of the TCP/IP stack I placed into BRAM with that pattern:
#include <linux/autoconf.h>
#include <asm/sections.h>
__bram_code__
Those functions are:
1) static int xenet_FifoSend(struct sk_buff *orig_skb, struct net_device *dev) (./drivers/net/xilinx_emac/adapter.c)
2) int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) (./net/core/dev.c)
3) struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask, int fclone, int node) (./net/core/skbuff.c)
4) static void skb_release_data(struct sk_buff *skb) (-"-)
5) void kfree_skbmem(struct sk_buff *skb) (-"-)
6) void __kfree_skb(struct sk_buff *skb) (-"-)
7) int ip_output(struct sk_buff *skb) (./net/ipv4/ip_output.c)
8) static inline int qdisc_restart(struct net_device *dev) (./net/sched/sch_generic.c)
9) void __qdisc_run(struct net_device *dev) (-"-)
Maybe this should become another checkbox in the kernel .config file section "Processor type and features", likely called CONFIG_TCP_IN_BRAM.