summaryrefslogtreecommitdiff
path: root/sys/kern/init_main.c
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2001-02-23 19:44:25 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2001-02-23 19:44:25 +0000
commit0b1d79321180990ffe6318f5814c7fbb5b12ed4a (patch)
treefcbecf3e05d810769398bcc7db59cade4b043906 /sys/kern/init_main.c
parent31e712239705b2db63b80edc788a98813ecd5e1e (diff)
Notes
Diffstat (limited to 'sys/kern/init_main.c')
-rw-r--r--sys/kern/init_main.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c
index 8eca076c9b35..3b68410a65ec 100644
--- a/sys/kern/init_main.c
+++ b/sys/kern/init_main.c
@@ -238,6 +238,30 @@ print_caddr_t(void *data __unused)
}
SYSINIT(announce, SI_SUB_COPYRIGHT, SI_ORDER_FIRST, print_caddr_t, copyright)
+static void
+print_bday(void *data __unused)
+{
+ struct timeval tv;
+ int day;
+
+ getmicrotime(&tv);
+
+ /*
+ * We modulus by 126230400 (4*365.25*24*60*60) and then check each
+ * valid day in the four years covered by that interval to account
+ * for leap years. Note that this will break in 2100 AD.
+ */
+ day = (tv.tv_sec % 126230400) / (24*60*60);
+
+ /*
+ * Day 0 is Jan 1, so day 22 of Feb is Feb 23. Leap year was '72,
+ * so the third year in each set is a leap year.
+ */
+ if ((day == (31+22)) || (day == (31+22+365)) ||
+ (day == (31+22+365+365)) || (day == (31+22+365+365+366)))
+ printf("\t---===> Happy Birthday Peter!!! <===---\n");
+}
+SYSINIT(bday, SI_SUB_KTHREAD_IDLE, SI_ORDER_ANY, print_bday, NULL)
/*
***************************************************************************