-
大小: 87.3MB文件类型: .zip金币: 1下载: 0 次发布日期: 2023-03-02
- 语言: 其他
- 标签: otp_src_21.3 Erlang erl
资源简介
在编译emq过程中需要编译Erlang,故下载了该源码,本资源适用于linux系统下,如果有需要请下载
代码片段和文件信息
/*
* %CopyrightBegin%
*
* Copyright Ericsson AB 1996-2018. All Rights Reserved.
*
* Licensed under the Apache License Version 2.0 (the “License“);
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing software
* distributed under the License is distributed on an “AS IS“ BASIS
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* %CopyrightEnd%
*/
#ifdef HAVE_CONFIG_H
# include “config.h“
#endif
#include “sys.h“
#include “erl_sys_driver.h“
#include “erl_vm.h“
#include “global.h“
#include “hash.h“
#include “atom.h“
#define ATOM_SIZE 3000
IndexTable erts_atom_table; /* The index table */
static erts_rwmtx_t atom_table_lock;
#define atom_read_lock() erts_rwmtx_rlock(&atom_table_lock)
#define atom_read_unlock() erts_rwmtx_runlock(&atom_table_lock)
#define atom_write_lock() erts_rwmtx_rwlock(&atom_table_lock)
#define atom_write_unlock() erts_rwmtx_rwunlock(&atom_table_lock)
#if 0
#define ERTS_ATOM_PUT_OPS_STAT
#endif
#ifdef ERTS_ATOM_PUT_OPS_STAT
static erts_atomic_t atom_put_ops;
#endif
/* Functions for allocating space for the ext of atoms. We do not
* use malloc for each atom to prevent excessive memory fragmentation
*/
typedef struct _atom_text {
struct _atom_text* next;
unsigned char text[ATOM_TEXT_SIZE];
} AtomText;
static AtomText* text_list; /* List of text buffers */
static byte *atom_text_pos;
static byte *atom_text_end;
static Uint reserved_atom_space; /* Total amount of atom text space */
static Uint atom_space; /* Amount of atom text space used */
/*
* Print info about atom tables
*/
void atom_info(fmtfn_t to void *to_arg)
{
int lock = !ERTS_IS_CRASH_DUMPING;
if (lock)
atom_read_lock();
index_info(to to_arg &erts_atom_table);
#ifdef ERTS_ATOM_PUT_OPS_STAT
erts_print(to to_arg “atom_put_ops: %ld\n“
erts_atomic_read_nob(&atom_put_ops));
#endif
if (lock)
atom_read_unlock();
}
/*
* Allocate an atom text segment.
*/
static void
more_atom_space(void)
{
AtomText* ptr;
ptr = (AtomText*) erts_alloc(ERTS_ALC_T_ATOM_TXT sizeof(AtomText));
ptr->next = text_list;
text_list = ptr;
atom_text_pos = ptr->text;
atom_text_end = atom_text_pos + ATOM_TEXT_SIZE;
reserved_atom_space += sizeof(AtomText);
VERBOSE(DEBUG_SYSTEM(“Allocated %d atom space\n“ATOM_TEXT_SIZE));
}
/*
* Allocate string space within an atom text segment.
*/
static byte*
atom_text_alloc(int bytes)
{
byte *res;
ASSERT(bytes <= MAX_ATOM_SZ_LIMIT);
if (atom_text_pos + bytes >= atom_text_end) {
more_atom_space();
}
res = atom_text_pos;
atom_text_pos += bytes;
atom_space += bytes;
return res;
}
/*
* Calculate atom hash value (using the hash
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-07-08 14:49 ErlangOTP 21.3\
文件 409 2019-03-12 04:10 ErlangOTP 21.3\.dir-locals.el
文件 128 2019-03-12 04:10 ErlangOTP 21.3\.mailmap
文件 2992 2019-03-12 04:10 ErlangOTP 21.3\.travis.yml
文件 92913 2019-03-12 04:10 ErlangOTP 21.3\aclocal.m4
文件 601 2019-03-12 04:10 ErlangOTP 21.3\AUTHORS
目录 0 2020-07-08 14:49 ErlangOTP 21.3\bin\
目录 0 2020-07-08 14:49 ErlangOTP 21.3\bootstrap\
目录 0 2020-07-08 14:49 ErlangOTP 21.3\bootstrap\bin\
文件 6486 2019-03-12 04:10 ErlangOTP 21.3\bootstrap\bin\no_dot_erlang.boot
文件 6486 2019-03-12 04:10 ErlangOTP 21.3\bootstrap\bin\start.boot
文件 6486 2019-03-12 04:10 ErlangOTP 21.3\bootstrap\bin\start_clean.boot
文件 156648 2019-03-12 04:10 ErlangOTP 21.3\configure
文件 15420 2019-03-12 04:10 ErlangOTP 21.3\configure.in
文件 5869 2019-03-12 04:10 ErlangOTP 21.3\CONTRIBUTING.md
文件 1146 2019-03-12 04:10 ErlangOTP 21.3\erl-build-tool-vars.sh
目录 0 2020-07-08 14:49 ErlangOTP 21.3\erts\
文件 92913 2019-03-12 04:10 ErlangOTP 21.3\erts\aclocal.m4
文件 4902 2019-03-12 04:10 ErlangOTP 21.3\erts\AUTHORS
目录 0 2020-07-08 14:49 ErlangOTP 21.3\erts\autoconf\
文件 43423 2019-03-12 04:10 ErlangOTP 21.3\erts\autoconf\config.guess
文件 36087 2019-03-12 04:10 ErlangOTP 21.3\erts\autoconf\config.sub
文件 4154 2019-03-12 04:10 ErlangOTP 21.3\erts\autoconf\configure.vxworks
文件 13620 2019-03-12 04:10 ErlangOTP 21.3\erts\autoconf\install-sh
目录 0 2020-07-08 14:49 ErlangOTP 21.3\erts\autoconf\vxworks\
文件 3649 2019-03-12 04:10 ErlangOTP 21.3\erts\autoconf\vxworks\sed.general
文件 1789 2019-03-12 04:10 ErlangOTP 21.3\erts\autoconf\vxworks\sed.vxworks_cpu32
文件 2870 2019-03-12 04:10 ErlangOTP 21.3\erts\autoconf\vxworks\sed.vxworks_ppc32
文件 1947 2019-03-12 04:10 ErlangOTP 21.3\erts\autoconf\vxworks\sed.vxworks_ppc603
文件 1910 2019-03-12 04:10 ErlangOTP 21.3\erts\autoconf\vxworks\sed.vxworks_ppc603_nolongcall
文件 2000 2019-03-12 04:10 ErlangOTP 21.3\erts\autoconf\vxworks\sed.vxworks_ppc860
............此处省略13111个文件信息
相关资源
- otp_win64_21.3.exe
- strawberry-perl-5.28.0.1-64bitwindow 64位安装
- erlang 20.3
-
me
tal by Tutorials: Beginning game engine d - ios-animations by tutorails
- otp_win64_20.3
- Ribbon For DELPHI 10.1 BERLIN.7z
- otp_src_19.1.tar.gz
- watchOS by Tutorials v3.0 swift4
- Machine.Learning.by.Tutorials.pdf
- strawberry-perl-5.30.1.1-64bit.msi
- RabbitMQ+erlang
- erlang_win_64位安装包
- erlang64位win安装20.3
- Machine_Learning_by_Tutorials_v0.2 (Ray wend
- Erlang21.2安装包 Linux版
- 《HyperLedger Fabric开发实战-快速掌握区
- otp_win64_20.2.exe
- Erlang趣学指南
- otp_win64_22.0.zip
- HyperLynx仿真与PCB设计306页.pdf
- Raywenderlich_Advanced_iOS_App_Architecture_v0
- CYK算法实现句法分析perl
- PathfinderLogoTools
- perl-Convert-ASN1-0.20-1.1.noarch.rpm
- VIVADO DDS IP核设置
- erlang高性能集群
- Superor老师高清Perl视频教程
- Arduino主板烧录器---avrdudess.rar
- countlet变换,可以运行的,高手交流
评论
共有 条评论