Lines Matching +full:self +full:- +full:describing

1 /*-
46 * Copy module-related data into the load area, where it can be
49 * Module data is presented in a self-describing format. Each datum
50 * is preceded by a 32-bit identifier and a 32-bit size field.
59 * MOD_METADATA (variable) type-specific metadata
96 COPY32(MODINFO_METADATA | mm->md_type, a, c);\
97 COPY32(mm->md_size, a, c); \
99 archsw.arch_copyin(mm->md_data, a, mm->md_size);\
100 mm->md_addr = a; \
102 a += MOD_ALIGN(mm->md_size); \
130 for (fp = file_findfile(NULL, NULL); fp != NULL; fp = fp->f_next) { in md_copymodules()
132 MOD_NAME(addr, fp->f_name, c); /* this field must come first */ in md_copymodules()
133 MOD_TYPE(addr, fp->f_type, c); in md_copymodules()
134 if (fp->f_args) in md_copymodules()
135 MOD_ARGS(addr, fp->f_args, c); in md_copymodules()
137 scratch64 = fp->f_addr; in md_copymodules()
139 scratch64 = fp->f_size; in md_copymodules()
142 scratch32 = fp->f_addr; in md_copymodules()
144 scratch32 -= __elfN(relocation_offset); in md_copymodules()
147 MOD_SIZE(addr, fp->f_size, c); in md_copymodules()
149 for (md = fp->f_metadata; md != NULL; md = md->md_next) { in md_copymodules()
150 if (!(md->md_type & MODINFOMD_NOCOPY)) { in md_copymodules()
174 for (ep = environ; ep != NULL; ep = ep->ev_next) { in md_copyenv()
175 if ((ep->ev_flags & EV_NOKENV) != 0) in md_copyenv()
177 len = strlen(ep->ev_name); in md_copyenv()
178 if ((size_t)archsw.arch_copyin(ep->ev_name, addr, len) != len) in md_copyenv()
184 if (ep->ev_value != NULL) { in md_copyenv()
185 len = strlen(ep->ev_value); in md_copyenv()
186 if ((size_t)archsw.arch_copyin(ep->ev_value, addr, len) != len) in md_copyenv()
207 * but needs to hook-in the replacement of arch_loadaddr.