/*
- * Copyright (C) 2012 - Simon Marchi <simon.marchi@polymtl.ca>
+ * Copyright (C) 2012 Simon Marchi <simon.marchi@polymtl.ca>
*
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License, version 2 only, as
- * published by the Free Software Foundation.
+ * SPDX-License-Identifier: GPL-2.0-only
*
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 51
- * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#define _LGPL_SOURCE
#include "defaults.h"
#include "macros.h"
-#include "align.h"
#include "error.h"
static int pthread_attr_init_done;
static pthread_attr_t tattr;
-LTTNG_HIDDEN
+static size_t get_page_size(void)
+{
+ const long ret = sysconf(_SC_PAGE_SIZE);
+
+ if (ret < 0) {
+ /*
+ * Fatal error since there is no safe way to recover from this.
+ */
+ PERROR("Failed to get system page size using sysconf(_SC_PAGE_SIZE)");
+ abort();
+ }
+
+ return (size_t) ret;
+}
+
size_t default_get_channel_subbuf_size(void)
{
- return max(_DEFAULT_CHANNEL_SUBBUF_SIZE, PAGE_SIZE);
+ return max(_DEFAULT_CHANNEL_SUBBUF_SIZE, get_page_size());
}
-LTTNG_HIDDEN
size_t default_get_metadata_subbuf_size(void)
{
- return max(DEFAULT_METADATA_SUBBUF_SIZE, PAGE_SIZE);
+ return max(DEFAULT_METADATA_SUBBUF_SIZE, get_page_size());
}
-LTTNG_HIDDEN
size_t default_get_kernel_channel_subbuf_size(void)
{
- return max(DEFAULT_KERNEL_CHANNEL_SUBBUF_SIZE, PAGE_SIZE);
+ return max(DEFAULT_KERNEL_CHANNEL_SUBBUF_SIZE, get_page_size());
}
-LTTNG_HIDDEN
size_t default_get_ust_pid_channel_subbuf_size(void)
{
- return max(DEFAULT_UST_PID_CHANNEL_SUBBUF_SIZE, PAGE_SIZE);
+ return max(DEFAULT_UST_PID_CHANNEL_SUBBUF_SIZE, get_page_size());
}
-LTTNG_HIDDEN
size_t default_get_ust_uid_channel_subbuf_size(void)
{
- return max(DEFAULT_UST_UID_CHANNEL_SUBBUF_SIZE, PAGE_SIZE);
+ return max(DEFAULT_UST_UID_CHANNEL_SUBBUF_SIZE, get_page_size());
}
-LTTNG_HIDDEN
pthread_attr_t *default_pthread_attr(void)
{
if (pthread_attr_init_done) {