Lines Matching full:n

123 	printf("	struct %s__%s {\n", obj_name, sec_ident);  in codegen_datasec_def()
140 p_err("Something is wrong for %s's variable #%d: need offset %d, already at %d.\n", in codegen_datasec_def()
168 printf("\t\tchar __pad%d[%d];\n", in codegen_datasec_def()
185 printf(";\n"); in codegen_datasec_def()
189 printf(" } *%s;\n", sec_ident); in codegen_datasec_def()
196 int n = btf__get_nr_types(btf); in codegen_datasecs() local
204 for (i = 1; i <= n; i++) { in codegen_datasecs()
222 int skip_tabs = 0, n; in codegen() local
227 n = strlen(template); in codegen()
228 s = malloc(n + 1); in codegen()
238 } else if (c == '\n') { in codegen()
250 for (n = skip_tabs; n > 0; n--, src++) { in codegen()
259 end = strchrnul(src, '\n'); in codegen()
260 for (n = end - src; n > 0 && isspace(src[n - 1]); n--) in codegen()
262 memcpy(dst, src, n); in codegen()
263 dst += n; in codegen()
265 *dst++ = '\n'; in codegen()
272 n = vprintf(s, args); in codegen()
287 printf("\\\n"); in print_hex()
315 \n\ in codegen_attach_detach()
316 \n\ in codegen_attach_detach()
317 static inline int \n\ in codegen_attach_detach()
318 %1$s__%2$s__attach(struct %1$s *skel) \n\ in codegen_attach_detach()
319 { \n\ in codegen_attach_detach()
320 int prog_fd = skel->progs.%2$s.prog_fd; \n\ in codegen_attach_detach()
326 printf("\tint fd = bpf_raw_tracepoint_open(\"%s\", prog_fd);\n", tp_name); in codegen_attach_detach()
329 printf("\tint fd = bpf_raw_tracepoint_open(NULL, prog_fd);\n"); in codegen_attach_detach()
332 printf("\tint fd = ((void)prog_fd, 0); /* auto-attach not supported */\n"); in codegen_attach_detach()
336 \n\ in codegen_attach_detach()
337 \n\ in codegen_attach_detach()
338 if (fd > 0) \n\ in codegen_attach_detach()
339 skel->links.%1$s_fd = fd; \n\ in codegen_attach_detach()
340 return fd; \n\ in codegen_attach_detach()
341 } \n\ in codegen_attach_detach()
346 \n\ in codegen_attach_detach()
347 \n\ in codegen_attach_detach()
348 static inline int \n\ in codegen_attach_detach()
349 %1$s__attach(struct %1$s *skel) \n\ in codegen_attach_detach()
350 { \n\ in codegen_attach_detach()
351 int ret = 0; \n\ in codegen_attach_detach()
352 \n\ in codegen_attach_detach()
357 \n\ in codegen_attach_detach()
358 ret = ret < 0 ? ret : %1$s__%2$s__attach(skel); \n\ in codegen_attach_detach()
363 \n\ in codegen_attach_detach()
364 return ret < 0 ? ret : 0; \n\ in codegen_attach_detach()
365 } \n\ in codegen_attach_detach()
366 \n\ in codegen_attach_detach()
367 static inline void \n\ in codegen_attach_detach()
368 %1$s__detach(struct %1$s *skel) \n\ in codegen_attach_detach()
369 { \n\ in codegen_attach_detach()
374 \n\ in codegen_attach_detach()
375 skel_closenz(skel->links.%1$s_fd); \n\ in codegen_attach_detach()
380 \n\ in codegen_attach_detach()
381 } \n\ in codegen_attach_detach()
391 \n\ in codegen_destroy()
392 static void \n\ in codegen_destroy()
393 %1$s__destroy(struct %1$s *skel) \n\ in codegen_destroy()
394 { \n\ in codegen_destroy()
395 if (!skel) \n\ in codegen_destroy()
396 return; \n\ in codegen_destroy()
397 %1$s__detach(skel); \n\ in codegen_destroy()
403 \n\ in codegen_destroy()
404 skel_closenz(skel->progs.%1$s.prog_fd); \n\ in codegen_destroy()
416 printf("\tmunmap(skel->%1$s, %2$zd);\n", in codegen_destroy()
419 \n\ in codegen_destroy()
420 skel_closenz(skel->maps.%1$s.map_fd); \n\ in codegen_destroy()
424 \n\ in codegen_destroy()
425 free(skel); \n\ in codegen_destroy()
426 } \n\ in codegen_destroy()
458 \n\ in gen_trace()
459 }; \n\ in gen_trace()
468 \n\ in gen_trace()
469 static inline struct %1$s * \n\ in gen_trace()
470 %1$s__open(void) \n\ in gen_trace()
471 { \n\ in gen_trace()
472 struct %1$s *skel; \n\ in gen_trace()
473 \n\ in gen_trace()
474 skel = calloc(sizeof(*skel), 1); \n\ in gen_trace()
475 if (!skel) \n\ in gen_trace()
476 goto cleanup; \n\ in gen_trace()
477 skel->ctx.sz = (void *)&skel->links - (void *)skel; \n\ in gen_trace()
494 \n\ in gen_trace()
495 skel->%1$s = \n\ in gen_trace()
496 mmap(NULL, %2$zd, PROT_READ | PROT_WRITE,\n\ in gen_trace()
497 MAP_SHARED | MAP_ANONYMOUS, -1, 0); \n\ in gen_trace()
498 if (skel->%1$s == (void *) -1) \n\ in gen_trace()
499 goto cleanup; \n\ in gen_trace()
500 memcpy(skel->%1$s, (void *)\"\\ \n\ in gen_trace()
504 printf("\", %2$zd);\n" in gen_trace()
505 "\tskel->maps.%1$s.initial_value = (__u64)(long)skel->%1$s;\n", in gen_trace()
509 \n\ in gen_trace()
510 return skel; \n\ in gen_trace()
511 cleanup: \n\ in gen_trace()
512 %1$s__destroy(skel); \n\ in gen_trace()
513 return NULL; \n\ in gen_trace()
514 } \n\ in gen_trace()
515 \n\ in gen_trace()
516 static inline int \n\ in gen_trace()
517 %1$s__load(struct %1$s *skel) \n\ in gen_trace()
518 { \n\ in gen_trace()
519 struct bpf_load_and_run_opts opts = {}; \n\ in gen_trace()
520 int err; \n\ in gen_trace()
521 \n\ in gen_trace()
522 opts.ctx = (struct bpf_loader_ctx *)skel; \n\ in gen_trace()
523 opts.data_sz = %2$d; \n\ in gen_trace()
524 opts.data = (void *)\"\\ \n\ in gen_trace()
529 \n\ in gen_trace()
530 \"; \n\ in gen_trace()
534 \n\ in gen_trace()
535 opts.insns_sz = %d; \n\ in gen_trace()
536 opts.insns = (void *)\"\\ \n\ in gen_trace()
541 \n\ in gen_trace()
542 \"; \n\ in gen_trace()
543 err = bpf_load_and_run(&opts); \n\ in gen_trace()
544 if (err < 0) \n\ in gen_trace()
545 return err; \n\ in gen_trace()
562 printf("\tskel->%1$s =\n" in gen_trace()
563 "\t\tmmap(skel->%1$s, %2$zd, %3$s, MAP_SHARED | MAP_FIXED,\n" in gen_trace()
564 "\t\t\tskel->maps.%1$s.map_fd, 0);\n", in gen_trace()
568 \n\ in gen_trace()
569 return 0; \n\ in gen_trace()
570 } \n\ in gen_trace()
571 \n\ in gen_trace()
572 static inline struct %1$s * \n\ in gen_trace()
573 %1$s__open_and_load(void) \n\ in gen_trace()
574 { \n\ in gen_trace()
575 struct %1$s *skel; \n\ in gen_trace()
576 \n\ in gen_trace()
577 skel = %1$s__open(); \n\ in gen_trace()
578 if (!skel) \n\ in gen_trace()
579 return NULL; \n\ in gen_trace()
580 if (%1$s__load(skel)) { \n\ in gen_trace()
581 %1$s__destroy(skel); \n\ in gen_trace()
582 return NULL; \n\ in gen_trace()
583 } \n\ in gen_trace()
584 return skel; \n\ in gen_trace()
585 } \n\ in gen_trace()
589 \n\ in gen_trace()
590 \n\ in gen_trace()
591 #endif /* %s */ \n\ in gen_trace()
692 \n\ in do_skeleton()
693 /* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ \n\ in do_skeleton()
694 /* THIS FILE IS AUTOGENERATED! */ \n\ in do_skeleton()
695 #ifndef %2$s \n\ in do_skeleton()
696 #define %2$s \n\ in do_skeleton()
697 \n\ in do_skeleton()
698 #include <stdlib.h> \n\ in do_skeleton()
699 #include <bpf/bpf.h> \n\ in do_skeleton()
700 #include <bpf/skel_internal.h> \n\ in do_skeleton()
701 \n\ in do_skeleton()
702 struct %1$s { \n\ in do_skeleton()
703 struct bpf_loader_ctx ctx; \n\ in do_skeleton()
709 \n\ in do_skeleton()
710 /* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ \n\ in do_skeleton()
711 \n\ in do_skeleton()
712 /* THIS FILE IS AUTOGENERATED! */ \n\ in do_skeleton()
713 #ifndef %2$s \n\ in do_skeleton()
714 #define %2$s \n\ in do_skeleton()
715 \n\ in do_skeleton()
716 #include <errno.h> \n\ in do_skeleton()
717 #include <stdlib.h> \n\ in do_skeleton()
718 #include <bpf/libbpf.h> \n\ in do_skeleton()
719 \n\ in do_skeleton()
720 struct %1$s { \n\ in do_skeleton()
721 struct bpf_object_skeleton *skeleton; \n\ in do_skeleton()
722 struct bpf_object *obj; \n\ in do_skeleton()
729 printf("\tstruct {\n"); in do_skeleton()
735 printf("\t\tstruct bpf_map_desc %s;\n", ident); in do_skeleton()
737 printf("\t\tstruct bpf_map *%s;\n", ident); in do_skeleton()
739 printf("\t} maps;\n"); in do_skeleton()
743 printf("\tstruct {\n"); in do_skeleton()
746 printf("\t\tstruct bpf_prog_desc %s;\n", in do_skeleton()
749 printf("\t\tstruct bpf_program *%s;\n", in do_skeleton()
752 printf("\t} progs;\n"); in do_skeleton()
753 printf("\tstruct {\n"); in do_skeleton()
756 printf("\t\tint %s_fd;\n", in do_skeleton()
759 printf("\t\tstruct bpf_link *%s;\n", in do_skeleton()
762 printf("\t} links;\n"); in do_skeleton()
777 \n\ in do_skeleton()
778 }; \n\ in do_skeleton()
779 \n\ in do_skeleton()
780 static void \n\ in do_skeleton()
781 %1$s__destroy(struct %1$s *obj) \n\ in do_skeleton()
782 { \n\ in do_skeleton()
783 if (!obj) \n\ in do_skeleton()
784 return; \n\ in do_skeleton()
785 if (obj->skeleton) \n\ in do_skeleton()
786 bpf_object__destroy_skeleton(obj->skeleton);\n\ in do_skeleton()
787 free(obj); \n\ in do_skeleton()
788 } \n\ in do_skeleton()
789 \n\ in do_skeleton()
790 static inline int \n\ in do_skeleton()
791 %1$s__create_skeleton(struct %1$s *obj); \n\ in do_skeleton()
792 \n\ in do_skeleton()
793 static inline struct %1$s * \n\ in do_skeleton()
794 %1$s__open_opts(const struct bpf_object_open_opts *opts) \n\ in do_skeleton()
795 { \n\ in do_skeleton()
796 struct %1$s *obj; \n\ in do_skeleton()
797 int err; \n\ in do_skeleton()
798 \n\ in do_skeleton()
799 obj = (struct %1$s *)calloc(1, sizeof(*obj)); \n\ in do_skeleton()
800 if (!obj) { \n\ in do_skeleton()
801 errno = ENOMEM; \n\ in do_skeleton()
802 return NULL; \n\ in do_skeleton()
803 } \n\ in do_skeleton()
804 \n\ in do_skeleton()
805 err = %1$s__create_skeleton(obj); \n\ in do_skeleton()
806 err = err ?: bpf_object__open_skeleton(obj->skeleton, opts);\n\ in do_skeleton()
807 if (err) \n\ in do_skeleton()
808 goto err_out; \n\ in do_skeleton()
809 \n\ in do_skeleton()
810 return obj; \n\ in do_skeleton()
811 err_out: \n\ in do_skeleton()
812 %1$s__destroy(obj); \n\ in do_skeleton()
813 errno = -err; \n\ in do_skeleton()
814 return NULL; \n\ in do_skeleton()
815 } \n\ in do_skeleton()
816 \n\ in do_skeleton()
817 static inline struct %1$s * \n\ in do_skeleton()
818 %1$s__open(void) \n\ in do_skeleton()
819 { \n\ in do_skeleton()
820 return %1$s__open_opts(NULL); \n\ in do_skeleton()
821 } \n\ in do_skeleton()
822 \n\ in do_skeleton()
823 static inline int \n\ in do_skeleton()
824 %1$s__load(struct %1$s *obj) \n\ in do_skeleton()
825 { \n\ in do_skeleton()
826 return bpf_object__load_skeleton(obj->skeleton); \n\ in do_skeleton()
827 } \n\ in do_skeleton()
828 \n\ in do_skeleton()
829 static inline struct %1$s * \n\ in do_skeleton()
830 %1$s__open_and_load(void) \n\ in do_skeleton()
831 { \n\ in do_skeleton()
832 struct %1$s *obj; \n\ in do_skeleton()
833 int err; \n\ in do_skeleton()
834 \n\ in do_skeleton()
835 obj = %1$s__open(); \n\ in do_skeleton()
836 if (!obj) \n\ in do_skeleton()
837 return NULL; \n\ in do_skeleton()
838 err = %1$s__load(obj); \n\ in do_skeleton()
839 if (err) { \n\ in do_skeleton()
840 %1$s__destroy(obj); \n\ in do_skeleton()
841 errno = -err; \n\ in do_skeleton()
842 return NULL; \n\ in do_skeleton()
843 } \n\ in do_skeleton()
844 return obj; \n\ in do_skeleton()
845 } \n\ in do_skeleton()
846 \n\ in do_skeleton()
847 static inline int \n\ in do_skeleton()
848 %1$s__attach(struct %1$s *obj) \n\ in do_skeleton()
849 { \n\ in do_skeleton()
850 return bpf_object__attach_skeleton(obj->skeleton); \n\ in do_skeleton()
851 } \n\ in do_skeleton()
852 \n\ in do_skeleton()
853 static inline void \n\ in do_skeleton()
854 %1$s__detach(struct %1$s *obj) \n\ in do_skeleton()
855 { \n\ in do_skeleton()
856 return bpf_object__detach_skeleton(obj->skeleton); \n\ in do_skeleton()
857 } \n\ in do_skeleton()
863 \n\ in do_skeleton()
864 \n\ in do_skeleton()
865 static inline int \n\ in do_skeleton()
866 %1$s__create_skeleton(struct %1$s *obj) \n\ in do_skeleton()
867 { \n\ in do_skeleton()
868 struct bpf_object_skeleton *s; \n\ in do_skeleton()
869 \n\ in do_skeleton()
870 s = (struct bpf_object_skeleton *)calloc(1, sizeof(*s));\n\ in do_skeleton()
871 if (!s) \n\ in do_skeleton()
872 goto err; \n\ in do_skeleton()
873 obj->skeleton = s; \n\ in do_skeleton()
874 \n\ in do_skeleton()
875 s->sz = sizeof(*s); \n\ in do_skeleton()
876 s->name = \"%1$s\"; \n\ in do_skeleton()
877 s->obj = &obj->obj; \n\ in do_skeleton()
883 \n\ in do_skeleton()
884 \n\ in do_skeleton()
885 /* maps */ \n\ in do_skeleton()
886 s->map_cnt = %zu; \n\ in do_skeleton()
887 s->map_skel_sz = sizeof(*s->maps); \n\ in do_skeleton()
888 s->maps = (struct bpf_map_skeleton *)calloc(s->map_cnt, s->map_skel_sz);\n\ in do_skeleton()
889 if (!s->maps) \n\ in do_skeleton()
890 goto err; \n\ in do_skeleton()
902 \n\ in do_skeleton()
903 \n\ in do_skeleton()
904 s->maps[%zu].name = \"%s\"; \n\ in do_skeleton()
905 s->maps[%zu].map = &obj->maps.%s; \n\ in do_skeleton()
911 printf("\ts->maps[%zu].mmaped = (void **)&obj->%s;\n", in do_skeleton()
919 \n\ in do_skeleton()
920 \n\ in do_skeleton()
921 /* programs */ \n\ in do_skeleton()
922 s->prog_cnt = %zu; \n\ in do_skeleton()
923 s->prog_skel_sz = sizeof(*s->progs); \n\ in do_skeleton()
924 s->progs = (struct bpf_prog_skeleton *)calloc(s->prog_cnt, s->prog_skel_sz);\n\ in do_skeleton()
925 if (!s->progs) \n\ in do_skeleton()
926 goto err; \n\ in do_skeleton()
933 \n\ in do_skeleton()
934 \n\ in do_skeleton()
935 s->progs[%1$zu].name = \"%2$s\"; \n\ in do_skeleton()
936 s->progs[%1$zu].prog = &obj->progs.%2$s;\n\ in do_skeleton()
937 s->progs[%1$zu].link = &obj->links.%2$s;\n\ in do_skeleton()
944 \n\ in do_skeleton()
945 \n\ in do_skeleton()
946 s->data_sz = %d; \n\ in do_skeleton()
947 s->data = (void *)\"\\ \n\ in do_skeleton()
955 \n\ in do_skeleton()
956 \"; \n\ in do_skeleton()
957 \n\ in do_skeleton()
958 return 0; \n\ in do_skeleton()
959 err: \n\ in do_skeleton()
960 bpf_object__destroy_skeleton(s); \n\ in do_skeleton()
961 return -ENOMEM; \n\ in do_skeleton()
962 } \n\ in do_skeleton()
963 \n\ in do_skeleton()
964 #endif /* %s */ \n\ in do_skeleton()
1025 "Usage: %1$s %2$s object OUTPUT_FILE INPUT_FILE [INPUT_FILE...]\n" in do_help()
1026 " %1$s %2$s skeleton FILE [name OBJECT_NAME]\n" in do_help()
1027 " %1$s %2$s help\n" in do_help()
1028 "\n" in do_help()
1029 " " HELP_SPEC_OPTIONS " |\n" in do_help()
1030 " {-L|--use-loader} }\n" in do_help()