Make kobj_methods constant.
These structures hold no information that is modified during runtime. By
marking this constant, we see approximately 600 symbols become
read-only (amd64 GENERIC). While there, also mark the kobj_method
structures generated by makeobjops.awk static. They are only referenced
by the kobjop_desc structures within the same file.
Before:
$ ls -l kernel
-rwxr-xr-x 1 ed wheel 15937309 Nov 8 16:29 kernel*
$ size kernel
text data bss dec hex filename
12260854 1358468 2848832 16468154 fb48ba kernel
$ nm kernel | fgrep -c ' r '
8240
After:
$ ls -l kernel
-rwxr-xr-x 1 ed wheel 15922469 Nov 8 16:25 kernel*
$ size kernel
text data bss dec hex filename
12302869 1302660
2848704 16454233 fb1259 kernel
$ nm kernel | fgrep -c ' r '
8838
This commit is contained in:
parent
6f6924e5a6
commit
3f3f6bc302
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=227343
@ -92,7 +92,7 @@ SYSINIT(kobj, SI_SUB_LOCK, SI_ORDER_ANY, kobj_init_mutex, NULL);
|
||||
* desc pointer is NULL, it is guaranteed never to match any read
|
||||
* descriptors.
|
||||
*/
|
||||
static struct kobj_method null_method = {
|
||||
static const struct kobj_method null_method = {
|
||||
0, 0,
|
||||
};
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
||||
*/
|
||||
typedef struct kobj *kobj_t;
|
||||
typedef struct kobj_class *kobj_class_t;
|
||||
typedef struct kobj_method kobj_method_t;
|
||||
typedef const struct kobj_method kobj_method_t;
|
||||
typedef int (*kobjop_t)(void);
|
||||
typedef struct kobj_ops *kobj_ops_t;
|
||||
typedef struct kobjop_desc *kobjop_desc_t;
|
||||
|
@ -307,7 +307,7 @@ function handle_method (static, doc)
|
||||
line_width, length(prototype)));
|
||||
|
||||
# Print out the method desc
|
||||
printc("struct kobj_method " mname "_method_default = {");
|
||||
printc("static const struct kobj_method " mname "_method_default = {");
|
||||
printc("\t&" mname "_desc, (kobjop_t) " default_function);
|
||||
printc("};\n");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user